Hint

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 188
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Hint

Beitrag von haderlump »

Hallo zusammen.
Ich habe wieder ein neues Problem, wahrscheinlich nur eine Kleinigkeit.

Ich möchte bei den Menüeinträgen gerne hints verwenden, (Das sind doch die Hinweise, die in kleinen Kästchen auftauchen wenn man mit der Maus kurz darauf verweilt ). Ich hab e bei Hint in der entsprechenden Zeile des Objektinspektors einen Text eingetragen. Im laufenden Programm erscheint aber nichts. Gibt es da irgend einen "Schalter" mit dem man diese Hints freigeben kann, oder mache ich da grundlegend etwas falsch ?

Gruß Fritz

baumina
Beiträge: 152
Registriert: Mo 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Hint

Beitrag von baumina »

Es gibt ParentShowHint und ShowHint. Diese beiden Eigenschaften haben sehr viele Controls.
.

Lion
Beiträge: 199
Registriert: Mo 24. Mär 2014, 09:58

Re: Hint

Beitrag von Lion »

ShowHint auf True setzen und schon läuft alles.

haderlump
Beiträge: 188
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Hint

Beitrag von haderlump »

Danke, das war schon mal was. Die Hints gehen. Was aber nicht geht sind die Hints im Menü. Obwohl das Menü Teil des Hauptformulars ist, bei dm Parent.schowhint aktiviert ist, zeigt es die Hints nicht an.

wp_xyz
Beiträge: 5174
Registriert: Fr 8. Apr 2011, 09:01

Re: Hint

Beitrag von wp_xyz »

Wenn ich mich nicht täusche, funktionieren die Popup-Hints (so wie sie über der Toolbar auftauchen) beim Menü nicht, sondern man muss die Hint-Texte in einem anderen Control anzeigen. Üblicherweise in der Statuszeile. Aber das ist etwas trickreich:
  • Statuszeile aufs Formular klicken
  • Falls nur 1 Bereich auf der Statuszeile benötigt wird, keine weiteren Maßnahmen erforderlich (d.h. Statusbar1.SimplePanel := true belassen), andernfalls über die 3 Punkte hinter "Panels" die gewünschten Bereiche definieren.
  • Eine ApplicationEvents-Komponente aufs Formular klicken und folgenden OnHint-Eventhandler schreiben:

    Code: Alles auswählen

     
    procedure TForm1.ApplicationEventsHint(Sender: TObject);
    abegin
      Statusbar1.SimpleText := Application.OnHint;
      // oder bei mehreren StatusPanels:
      //  Statusbar1.Panels[0].Text := Application.Hint;  // den Panels-Index ggfs anpassen
    end;
     
  • Die Eigenschaft "AutoHint" der Statuszeile, die das vereinfachen soll. ist m.E. ohne Funktion.
  • Auch muss man wissen, dass man zuerst ins Menü klicken muss, bevor die Hint-Texte erscheinen. Einfach "Mouse-Over" ist nicht...
  • Achja, TForm1.ShowHint muss TRUE sein, ParentShowHint aller Komponenten auf TRUE, damit man zentral über das Formular die Hints
    ein und ausschalten kann.
  • Es gibt zwei Hint-Texte, die man den Hint-Eigenschaften der Kompnenten zuweisen kann, die durch einen senkrechten Strich (|) getrennt werden. Der vordere Teil erscheint in den Popups über den Komponenten, der hintere wird über den OnHint-Event-Handler vermittelt. (Falls kein | vorhanden ist, gilt der Text für beide).
  • Der vordere Hint-Teil (für die Popups) kann mehrzeilig sein (Einfügen von #13 in den HintText im Quellcode, bzw. Verwenden des Hint-Editors im Object-Inspector).
Im Anhang eine kleine Demo
Dateianhänge
hint.zip
(2.27 KiB) 89-mal heruntergeladen
Zuletzt geändert von wp_xyz am Do 18. Sep 2014, 15:02, insgesamt 2-mal geändert.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Hint

Beitrag von m.fuchs »

Ein Menü kann keinen Hint anzeigen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

haderlump
Beiträge: 188
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Hint

Beitrag von haderlump »

Danke, alles klar

Antworten