Einzelnen Beitrag anzeigen

Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 12. Apr 2003, 22:12
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]
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat