![]() |
Hints für nicht-Enabled-te Komponenten
Hi!
Ist es irgendwie möglich Hinweise (Hints) für Elemente anzuzeigen (z.B. Edits, Checkboxen, etc) die nicht aktiv (also enabled := false) sind? |
Re: Hints für nicht-Enabled-te Komponenten
Nicht das ich wüsste. :?
|
Re: Hints für nicht-Enabled-te Komponenten
Nicht das ich wüsste. :?
Kompos mit Enabled := false sind, wie du geagt hast, nicht aktiv. Brauchen unaktive Komponenten denn Hilfe? Glaub ich nicht.. |
Re: Hints für nicht-Enabled-te Komponenten
Zitat:
Aber Scherz beiseite: Ich kenne leider auch keine Möglichkeit dafür, aber vielleicht kannst du das ganze ja per Hand machen. Also mit einem Timer und den Mouse Events. (Wenn Maus im Control ist und sich länger als x Sekunden nicht bewegt, ein Panel etc. an der Mausposition anzeigen und nach x Sekunden wieder unsichtbar machen...oder so :wink:) Man liest sich, Stanlay :hi: |
Re: Hints für nicht-Enabled-te Komponenten
Hi!
Ja, meine inaktiven Komponenten brauchen Hints. Das soll aber auch hier nicht weiter diskutiert werden. Danke, Kinimod8, für die Idee. Allerdings ist das ziemlich aufwendig für mehrere Komponenten, denn ich müsste ja dann mit THintWindow ein eigenes Hint-Fenster erzeugen, damit es auch identisch mit den anderen Hints ist. Falls jemand doch noch eine Lösung kennt, bin ich selbstverständlich sehr offen dafür :) |
Re: Hints für nicht-Enabled-te Komponenten
@mbs: Ich hatte die Idee nicht, das war Stanlay :)
|
Re: Hints für nicht-Enabled-te Komponenten
Zitat:
1. Ein Timer überprüft in bestimmten Intervallen, über welchem Control die Maus ist und speichert diese Komponente, oder besser, deren Namen in einer Variablen. 2. Bei jedem Timer Event wird überprüft, ob es sich bei der Komponente, über der sich die Maus befindet, um die gleiche, wie beim letzten Durchlauf handelt. Wenn ja, so wird eine Zählvariable um eins erhöht. Wenn nicht, wird der Zähler (Die Zählvariable) wieder auf Null gesetzt. 3. Bei jedem Timer Event wird verglichen, ob die Zählvariable eine so hohe Marke erreicht hat, dass ein Hint angezeigt werden muss. Ist dies der Fall, wird die Zählvariable auf Null gesetzt und ein anderer Timer für die Anzeige des Hints aktiviert. 4. Der zweite Timer erhält als Ausgangsinterval 1 msek und erhält beim ersten Durchlauf als Interval die Zeit, für die der Hint angezeigt werden soll. 5. Bei ersten Durchlauf den zweiten Timers wird das Form/Label/Panel mit dem Hinttext angezeigt. Beim zweiten Durchlauf, der nach der im ersten Durchlauf festgelegten Zeit stattfindet, wird der Hint ausgeblendet, der zweite Timer deaktiviert. 6. Als Ergänzung: Wird während der zweite Timer aktiv ist, die Maus bewegt, deaktiviert der erste Timer den zweiten Timer, so dass alles wieder von vorne anfängt. Ich hoffe a) dass irgendwer versteht, was ich meine und b) dass ich keinen absoluten Müll geschrieben habe. c) Sollte irgendwer mit einer einfacheren Lösung kommen, drehe ich durch :mrgreen: :freak: Man liest sich, Stanlay :hi: |
Re: Hints für nicht-Enabled-te Komponenten
Hi!
Ja, das kostet zwar n bissl Rechenleistung aber es ist durchaus eine allgemeine Lösung. Danke also dafür. werd mal versuchen, das testweise umzusetzen... |
Re: Hints für nicht-Enabled-te Komponenten
hi,
warum so kompliziert?? versuche es mal in etwa so:
Delphi-Quellcode:
[..]
public form1hint: string; edit1left, edit1top: integer; end; [..] procedure TForm1.FormCreate(Sender: TObject); begin edit1left:= edit1.left; edit1top:= edit1.top; edit1.enabled := false; edit1.showhint : true; edit1.hint := 'edit1hint'; showhint := true; form1hint := 'form1hint' end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var rec: trect; begin rec := rect(edit1left, edit1top, edit1left + edit1.width, edit1top + edit1.height); if (ptinrect(rec, point(x, y))) and (not edit1.enabled) and (edit1.showhint) then hint := edit1.hint else hint := form1hint end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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-2025 by Thomas Breitkreuz