Hallo,
mache den Umweg über Form1.onMouseMove (= FormMouseMove)
Du benötigst einen Button und eine
Statusbar, im Objektinspektor schreibst Du beim Button1 in der Eigenschaft "
Hint" den Text den Du in der
Statusbar einzeigen möchtest hinein.
Den Rest siehe unten
Delphi-Quellcode:
UNIT aUnit1;
INTERFACE
USES
Windows,
Messages,
SysUtils,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ComCtrls,
StdCtrls;
TYPE
TForm1 =
CLASS(TForm)
Button1: TButton;
StatusBar1: TStatusBar;
PROCEDURE FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
PRIVATE
{ Private-Deklarationen }
PUBLIC
{ Public-Deklarationen }
END;
VAR
Form1 : TForm1;
IMPLEMENTATION
{$R *.DFM}
PROCEDURE TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
// x,y = MousePos in Pixel
VAR
aRect : TRect;
BEGIN
aRect := Button1.BoundsRect;
// Größe des Buttons
IF (x >= aRect.Left)
AND
(x <= aRect.Right)
AND
(y >= aRect.Top)
AND
(y <= aRect.Bottom)
THEN
StatusBar1.SimpleText := Button1.Hint
// Hint in Statusbar zeigen
ELSE
StatusBar1.SimpleText := '
';
// Hint in Statusbar löschen
END;
END.
NACHTRAG:
GRRRRRRR, war wieder mal zu langsam, außerdem ist okis Lösung wohl eleganter
[EDIT] Bei meiner Lösung kannst Du immerhin die Hint Anzeige mit ShowHint := False ausschalten, falls dich die Hints stören und Du trotzdem in der Statusbar den Text haben möchtest...
[/EDIT]