Dann würde mir noch einfallen, einen Timer zu benutzen (ist nicht so schön, verhindert aber gleich generell ein Flackern) Damit schaffst du dir eine Art zeitliche Hysterese.
Delphi-Quellcode:
type ...
...
Timer:TTimer;
private
...
MsgMouseOnWork:Boolean; //mit false initialisieren
...
procedure VST_Expand;
procedure VST_Minimize;
procedure VST_StartTimer;
public
{ Public-Deklarationen }
end;
...
procedure TForm2.VST_StartTimer;
begin
MsgMouseOnWork:=true;
Timer.enabled:=true;
end;
procedure TForm2.TimeronTimer(...); //Timerereignis
begin
MsgMouseOnWork:=false;
Timer.enabled:=false;
end;
procedure TForm2.VST_Expand;
begin
if not MsgMouseOnWork then
begin
VST.Align := alNone;
VST.Width := 400;
VST.Height := Panel2.Height -10;
---> VST.Parent := Form2; <---
VST_startTimer;
end;
end;
procedure TForm2.VST_Minimize;
begin
if not MsgMouseOnWork then
begin
---> VST.Parent := Panel2; <---
VST.Align := alClient;
VST_starttimer;
end;
end;
Edit: Ahh, das ist auch noch nicht vollständig. Du musst dir trotzdem bei jeder MEssage merken, welcher Zustand gerade aktuell ist, und den dann im Timer-Ereignis schließlich einstellen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.