![]() |
Delphi-Version: 2007
Text neben Cursor einblenden
Hallo,
ich habe folgendes Problem. Bei meinem Programm können Wartezeiten entstehen wenn Informationen vom Server geladen werden. Ich verändere daraufhin den Cursor auf Sanduhr mit
Delphi-Quellcode:
Zur Information würde ich jetzt gerne neben der Sanduhr einen Text einblenden, der auf die Wartezeit
Screen.Cursor := crHourGlass;
hinweist und quasi bei Mausbewegung mitwandert. Ist dies möglich? Was hätte ich dafür zu tun? Gruss Jonny |
AW: Text neben Cursor einblenden
Ich würde von TCustomForm ableiten und daraus eine entsprechende Komponente basteln. Klar, man kann behaupten, dass es etwas zu viel des Guten wäre, aber man hat so sehr viel Flexibilität, wie ich finde.
Eine Alternative wäre es mit einem Hint zu arbeiten, wobei ich da recht wenig Erfahrung habe. -- Edit: Oder du nutzt eine Overlay-Form, wie ich es mal programmiert hatte. Ich habe eine Form ohne Rahmen model eingeblendet, die so groß war, wie der ClientBereich der eigentlichen Form. Darauf lief dann ein Throbber, da ich die Zeit nicht abschätzen konnte, wie lange der Vorgang dauert. |
AW: Text neben Cursor einblenden
Falls es Hint-Lösungen sein können, würde ich 2 Möglichkeiten sehen:
Die AlphaControls bringen einen HintManager mit, der sehr flexibel einsetzbar ist (incl. zyklischem Refresh). Ansonsten habe ich mal eine Hint-Lösung gefunden, die für jedes Item einer aufgeklappten ComboBox ein individuelles Hint anzeigt. Vielleicht könnte man davon etwas ableiten. Könnte es bei Bedarf raussuchen. |
AW: Text neben Cursor einblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt eine recht nützliche Unit (mcHintbox,
![]() Diese Unit ist zwar leider nicht OpenSource, sondern kostet ca. 15 EUR, kann ich aber aus meiner Erfahrung mit ihr empfehlen. Wie diese Hintbox für den genannten Zweck eingesetzt werden kann, hier an einem eigenen Beispiel (und compiliert als Anhang):
Delphi-Quellcode:
uses mcHintbox;
var SwitchedOn: Boolean = false; procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var MousePt: TPoint; begin if (x <= 20) or (x >= panel1.Width - 20) or (y <= 20) or (y >= panel1.Height - 20) then // Abstand vom Panelrand halten, um die Hintbox durch simulierten Mausklick // rechtzeitig vor Verlassen des Panels auszuschalten with panel1 do begin mouse_event(MOUSEEVENTF_LEFTDOWN, left, width, top, height); mouse_event(MOUSEEVENTF_LEFTUP, left, width, top, height); end else if SwitchedOn then // Ein-/Ausschalten triggern, um Flackern der Hintbox bei der Bewegung zu vermeiden begin MousePt := ClientToScreen(Point(x, y)); HintBox(MousePt.x, MousePt.y, ' Yes, it is working', ' Helpfull Message'); end; SwitchedOn := not SwitchedOn; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz