Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Hint des aktiven Controls in Statusbar (https://www.delphipraxis.net/31156-hint-des-aktiven-controls-statusbar.html)

mr_chrome 5. Okt 2004 10:26


Hint des aktiven Controls in Statusbar
 
Hallo,
hab' jetzt schon viel im Forum über Hints und der Statusbar gelesen, jedoch noch nicht die richtige Lösung für mein Problem gefunden, welches foglendes wäre:

Ich will, dass in der Statusbar meines Formulars, jeweils der Hint für das aktive Steuerelement
erscheint.
Ich erreiche den Effekt zwar, indem ich entsprechende Anweisungen bei OnEnter und OnExit der einzelnen
Steuerelemente ausführe, frage mich aber, ob es dafür nicht eine etwas elegantere Lösung gibt?

Viele Grüsse,
Thomas

alcaeus 5. Okt 2004 10:34

Re: Hint des aktiven Controls in Statusbar
 
Hi Thomas,

sieh dir mal die TApplicationEvents (Palette "Zusätzlich") an, diese kennt das Ereignis onHint. Vielleicht hilft dir das weiter.

Greetz
alcaeus

Muetze1 5. Okt 2004 11:14

Re: Hint des aktiven Controls in Statusbar
 
Moin!

Bei dem Formular mit der Statusbar im Public Bereich folgendes einfügen:
Delphi-Quellcode:
    Function   ExecuteAction(Action: TBasicAction): Boolean; Override;
Dann die Funktion vervollständigen lassen und dort dann folgenden Code hinein:
Delphi-Quellcode:
Function Tfrm_FBIIMainForm.ExecuteAction(Action: TBasicAction): Boolean;
Begin
  Result := False;

  If ( Action Is THintAction ) Then
  Begin
    Result  := True;
    If ( THintAction(Action).Hint <> '' ) Then
      StatusBar1.SimpleText := THintAction(Action).Hint;
  End;
End;
/EDIT:
Hinweis:

1. meine Funktion klappt auch bei Delphi 4, der noch keine öffentliche TApplication Komponente hat.
2. meine Funktion zeigt nur die Hints des Formulares an und z.B. nicht die eines modalen Dialoges auf der Form, wie es bei Application->OnHint der Fall ist.

MfG
Muetze1

FAlter 5. Okt 2004 11:20

Re: Hint des aktiven Controls in Statusbar
 
Ich würde mal sagen, das ist in der Delphi-Hilfe ganz genau erklärt.

Delphi-Referenz durchsuchenTApplication.OnHint und dann das Beispiel dazu.

mr_chrome 5. Okt 2004 13:09

Re: Hint des aktiven Controls in Statusbar
 
Hallo und Danke!
Leider funktioniert das was ich will immernoch nicht. Entweder stehe ich total auf dem Schlauch, oder ich habe es nicht richtig beschrieben.
Ich möchte nicht, dass eine Hilfe angezeigt wird, wenn ich mit der Maus über einem Steuerelement bin,
sondern wenn ein Steuerelement den Focus hat.

Die Sache mit dem Hint in der Statusbar, wenn die Maus über dem Steuerelement ist, bekomme ich hin, das ist kein Problem, nur eben, wenn ich z.B. Daten im Formular eingebe und nur mit der Tab-Taste von einem
Eingabefeld ins nächste hüpfe, hilft das nicht wirklich.

Thomas

jackie 5. Okt 2004 13:14

Re: Hint des aktiven Controls in Statusbar
 
Hi!
Wenn ich mich nicht irre gibt es bei der Statusbar so etwas wie 'AutoHint'. Setz es auf True.

FAlter 5. Okt 2004 13:17

Re: Hint des aktiven Controls in Statusbar
 
Mach es doch einfach über OnEnter:

Delphi-Quellcode:
{ Pseudocode }
procedure TMainForm.EnterEvent(Sender: TObject);
begin
  //Alle Komponenten haben das hier als OnEnter
 
  if Sender is TControl {oder ab wo es Hint gibt} then
    StatusBar.Panels[2].Text := TControl(Sender).Hint
  else
    StatusBar.Panels[2].Text := '';
end;

FAlter 5. Okt 2004 13:25

Re: Hint des aktiven Controls in Statusbar
 
So, jetzt ist es getestet!!!

Delphi-Quellcode:
procedure TForm1.EnterEvent(Sender: TObject);
begin
  if Sender is TControl then
    StatusBar.Panels[2].Text := TControl(Sender).Hint
  else
    StatusBar.Panels[2].Text := '';
end;

mr_chrome 5. Okt 2004 13:26

Re: Hint des aktiven Controls in Statusbar
 
Mit OnEnter ist es ja auch kein Problem (hab' ich ja im ersten Beitrag schon versucht zu erklären),
nur muss ich es dann eben, wie du ja auch schreibst, bei jedem Steuerelement im OnEnter-Ereignis ausführen - und ich dachte, dass es da vielleicht eine bessere Lösung gibt.
Alcaeus hat micht auf die TApplicatonEvents gebracht, da gibt es das Ereignis OnShortCut, mit dem
ich einen akzeptabeln Kompromiß hinbekommen würde.

Danke nochmal an alle,
Thomas

FAlter 5. Okt 2004 13:32

Re: Hint des aktiven Controls in Statusbar
 
Du hast gesagt, dass du OnEnter UND OnExit nimmst, ich denke, das OnExit ist nicht nötig.

Außerdem, aber man kann sich ja irren, dahcte ich, du hättest unzählige procedures verwendet für dein OnEnter, bei mir reicht eine.

Ansonsten weiß ich nicht, wozu man TApplicationEvents braucht, Das gibt es doch alles schon bei TApplication, und davon hat man sowieso schon eine Instanz. Noch eine von TApplicationEvents erstellen - wozu?

Und ob das OnEnter nun auf nil zeigt oder nicht ist doch egal :?:

Warum einfach, wenns auch kompliziert geht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Seite 1 von 2  1 2      

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