Thema: Delphi Nochmal onMouseMove ???

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Nochmal onMouseMove ???

  Alt 22. Okt 2003, 07:26
Hai schniede,

hab das jetzt zum test mal so gelösste:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
  private
    { Private-Deklarationen }
  procedure CMMouseEnter(Var Message : TMessage); message CM_MOUSEENTER;
  procedure CMMouseLeave(Var Message : TMessage); message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CMMouseEnter(var Message: TMessage);
var
  ptWork : TPoint;
begin
  GetCursorPos(ptWork);
  if (WindowFromPoint(ptWork) = BitBtn1.Handle) then BitBtn1.Font.Color := clred;
  if (WindowFromPoint(ptWork) = BitBtn2.Handle) then BitBtn2.Font.Color := clred;
  if (WindowFromPoint(ptWork) = BitBtn3.Handle) then BitBtn3.Font.Color := clred;
  Application.ProcessMessages;
end;

procedure TForm1.CMMouseLeave(var Message: TMessage);
var
  ptWork : TPoint;
begin
  GetCursorPos(ptWork);
  if (WindowFromPoint(ptWork) <> BitBtn1.Handle) then BitBtn1.Font.Color := clblack;
  if (WindowFromPoint(ptWork) <> BitBtn2.Handle) then BitBtn2.Font.Color := clblack;
  if (WindowFromPoint(ptWork) <> BitBtn3.Handle) then BitBtn3.Font.Color := clblack;
  Application.ProcessMessages;
end;
Wenn Du das ganze öfters brauchst wäre es sicher am besten sich eine eigene Classe von TBitBtn abzuleiten, die Eigenschaften dort reinpacken und das ganze in eine Komponente zu packen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat