Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?

  Alt 25. Sep 2008, 09:22
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.
  Mit Zitat antworten Zitat