Hallo,
mir ist kein richtiger Titel eingefallen.
Ich habe mal eine ganz neue Anwendung gemacht um alle Faktoren meines Projekts auszuschließen.
Also eine neue
VCL Anwendung.
1. Eine ListBox auf die Form und ein paar Items hinzufügen
2. ListBox mit Ereignis OnMouseMove verbinden und dort ein "Beep" rein.
2. Ein TPanel auf die Form
Folgender Code noch dazu:
Delphi-Quellcode:
type
TListBox =
class(
Vcl.StdCtrls.TListBox)
private
procedure CNCommand(
var AMessage: TWMCommand);
message CN_COMMAND;
end;
procedure TListBox.CNCommand(
var AMessage: TWMCommand);
begin
inherited;
if (AMessage.NotifyCode = LBN_SELCHANGE)
then
begin
form1.panel1.width := form1.panel1.width + 10;
end;
end;
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
beep;
end;
Wenn man nun die Maus auf die ListBox bewegt, dann Beep es. Logisch. Lasst mal die Maus auf der ListBox liegen und danach mit den Pfeiltasten andere Items auswählen. Hier wird dann CNCommand / LBN_SELCHANGE gefeuert. Soll ja auch. Dort wird dann das Panel in der Breite immer ein wenig breiter gemacht. Das komische ist nun, dass dadurch OnMouseMove von der TListBox auch ausgeführt wird. Das soll aber nicht und ich verstehe es nicht, wieso das passiert.
Gruß Mic