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]