Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hints für nicht-Enabled-te Komponenten (https://www.delphipraxis.net/16177-hints-fuer-nicht-enabled-te-komponenten.html)

mbs 11. Feb 2004 23:38


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?

Kinimod8 12. Feb 2004 16:25

Re: Hints für nicht-Enabled-te Komponenten
 
Nicht das ich wüsste. :?

Kinimod8 12. Feb 2004 16:27

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..

Stanlay Hanks 12. Feb 2004 16:38

Re: Hints für nicht-Enabled-te Komponenten
 
Zitat:

Zitat von Kinimod8
Brauchen unaktive Komponenten denn Hilfe? Glaub ich nicht..

Ja brauchen sie! Helft den inaktiven Komponenten, wieder aktiv zu werden!! :dp:

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:

mbs 12. Feb 2004 18:13

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 :)

Kinimod8 12. Feb 2004 18:15

Re: Hints für nicht-Enabled-te Komponenten
 
@mbs: Ich hatte die Idee nicht, das war Stanlay :)

Stanlay Hanks 12. Feb 2004 18:30

Re: Hints für nicht-Enabled-te Komponenten
 
Zitat:

Zitat von mbs
Danke, Kinimod8, für die Idee. Allerdings ist das ziemlich aufwendig für mehrere Komponenten[...]

Nun ja, wenn du das ganze schön allgemein hälts, is es glaub ich gar nicht so umständlich. Hier ein Vorschlag:

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:

mbs 13. Feb 2004 00:24

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...

chris 13. Feb 2004 00:27

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 21:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz