TToolButton zeigt keinen Hint

Rund um die LCL und andere Komponenten
Antworten
Timm Thaler
Beiträge: 1144
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

TToolButton zeigt keinen Hint

Beitrag von Timm Thaler »

Obwohl im Formulareditor für ToolButtons ein Hinttext angegeben und ShowHint enabled ist, wird bei den ToolButtons kein Hint angegeben. Im Formular sind die Eigenschaften aber gesetzt:

Code: Alles auswählen

    object tIDsingle: TToolButton
      Left = 32
      Hint = 'Einzelmessung'
      Top = 2
      Caption = 'Einzel'
      ImageIndex = 1
      MenuItem = mIDsingle
      ParentShowHint = False
      ShowHint = True
    end

Es ist auch egal, ob ParentShowHint true oder false ist.

Setze ich aber später im Programm nochmal zum Test den Hinttext, wird er für diesen ToolButton angezeigt:

Code: Alles auswählen

    tIDsingle.Hint := 'Test Einzelmessung';

Was muss ich angeben, damit die im Formulareditor angegebenen Hints für alle ToolButtons angezeigt werden?

Michl
Beiträge: 2350
Registriert: Di 19. Jun 2012, 12:54

Re: TToolButton zeigt keinen Hint

Beitrag von Michl »

Hier geht es es auch, wenn man den Hint per ObjectInspektor setzt (Lazarus Trunk, Windows 7). Welche Lazarusversion nutzt du unter welchem OS/Widgetset? Kannst du ein Minimalbsp posten?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

sstvmaster
Beiträge: 385
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: Windows 10 | Lazarus: 2.0.10 und Trunk 32bit
CPU-Target: 32Bit
Wohnort: Dresden

Re: TToolButton zeigt keinen Hint

Beitrag von sstvmaster »

jein, sobald man MenuItem setzt geht der Hint nicht mehr, wenn man aber im zugeordneten MenuItem den Hint setzt erscheint der.

Laz 1.8.4
LG Maik

Michl
Beiträge: 2350
Registriert: Di 19. Jun 2012, 12:54

Re: TToolButton zeigt keinen Hint

Beitrag von Michl »

Stimmt, dann wird der Hint vom MenuItem genommen.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Timm Thaler
Beiträge: 1144
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: TToolButton zeigt keinen Hint

Beitrag von Timm Thaler »

Darauf muss man erstmal kommen: Einen Hint im Menuitem setzen, damit er in der Toolbar erscheint.

Wozu braucht man Hints im Menu? Bei mir wird da nichts angezeigt.

Ich bin mehr und mehr dran, den Formulareditor in die Tonne zu kloppen und die GUI im Programm aufzubauen.

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

Re: TToolButton zeigt keinen Hint

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:Obwohl im Formulareditor für ToolButtons ein Hinttext angegeben und ShowHint enabled ist, wird bei den ToolButtons kein Hint angegeben. Im Formular sind die Eigenschaften aber gesetzt:

Code: Alles auswählen

    object tIDsingle: TToolButton
      Left = 32
      Hint = 'Einzelmessung'
      Top = 2
      Caption = 'Einzel'
      ImageIndex = 1
      MenuItem = mIDsingle
      ParentShowHint = False
      ShowHint = True
    end

Es ist auch egal, ob ParentShowHint true oder false ist.

Setze ich aber später im Programm nochmal zum Test den Hinttext, wird er für diesen ToolButton angezeigt:

Code: Alles auswählen

    tIDsingle.Hint := 'Test Einzelmessung';

Was muss ich angeben, damit die im Formulareditor angegebenen Hints für alle ToolButtons angezeigt werden?

Sorry, was ist der "Formulareditor"? Editierst du Properties etwa im Quelltext der lfm-Datei? So ist das nicht gedacht. Das Risiko, etwas kaputt zu machen, ist hier viel zu groß!

Michl
Beiträge: 2350
Registriert: Di 19. Jun 2012, 12:54

Re: TToolButton zeigt keinen Hint

Beitrag von Michl »

Timm Thaler hat geschrieben:Darauf muss man erstmal kommen: Einen Hint im Menuitem setzen, damit er in der Toolbar erscheint.
Ehrlich gesagt würde ich keine MenuItems zuweisen. Wenn du bestimmte gleiche Aktionen für ein MenuItem oder ein ToolButton verwenden willst, nimm doch auch gleich die dafür gedachte Komponente TAction. Dort kannst du ebenfalls den Hint definieren, der dann entsprechend verwendet wird.

Timm Thaler hat geschrieben:Darauf muss man erstmal kommen: Einen Hint im Menuitem setzen, damit er in der Toolbar erscheint.
Ich bin mehr und mehr dran, den Formulareditor in die Tonne zu kloppen und die GUI im Programm aufzubauen.
Ja, wenn ich an größeren Projekten arbeite, mache ich die meisten Zuweisungen dynamisch. Das ist zwar am Anfang etwas mehr Schreibarbeit, später finde ich aber die Ursachen warum etwas wie funktioniert viel viel schneller (quasi auf einem Blick).

Gerade habe ich bei einem Projekt auf einem alten Frame einen zusätzlichen Button eingefügt. Da die Buttons je nach Zustand eines Datenbankeintrage variieren, habe ich einfach im Suchfenster nach einem sich ähnlich verhaltenden früher eingefügten Button gesucht und bin den Quelltext von unten nach oben durchgegangen und habe einfach alle Einträge für den neuen Button identisch gemacht. Eine Sache von einer Minute. Müsste ich alle Einstellungen im ObjektInspektor suchen, dauert das viel länger und die Gefahr etwas zu übersehen ist erheblich größer.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2350
Registriert: Di 19. Jun 2012, 12:54

Re: TToolButton zeigt keinen Hint

Beitrag von Michl »

wp_xyz hat geschrieben:Sorry, was ist der "Formulareditor"
Na ich denke der Editor für ein Formular bei Lazarus. Ein gedockter FormEditor ist z.B. der SpartaDockedFormEditor.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: TToolButton zeigt keinen Hint

Beitrag von wp_xyz »

Irgendwas stimmt mit den Hints der Toolbuttons trotzdem nicht. Die beigefügte Demo enthält eine Toolbar rechts mit drei Toolbuttons. Fährt man mit der Maus über die Buttons kommt ein Hint, aber es erscheint immer der Hint des 1. (obersten) Buttons, zumindest unter Windows. Das sollte so nicht sein, und ich habe es in anderen eigenen Programmen so auch noch nciht geseshen. (Aber da verwende ich immer Actions.)
Dateianhänge
Toolbutton_Hints.zip
(3.41 KiB) 41-mal heruntergeladen

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

Re: TToolButton zeigt keinen Hint

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:Was muss ich angeben, damit die im Formulareditor angegebenen Hints für alle ToolButtons angezeigt werden?

Hast du im Formular ShowHint gesetzt? Das ist der General-Schalter.

Michl
Beiträge: 2350
Registriert: Di 19. Jun 2012, 12:54

Re: TToolButton zeigt keinen Hint

Beitrag von Michl »

@wp: ich habe mir eben das Projekt angesehen. Warum sollte ein anderer Hint kommen, als der im Objektinspektor angegebene? Da steht drei mal "Hint Button 1" drin, MenuItems bwz. Actions sind nicht gesetzt. Wenn man diese Hints ändert, werden sie entsprechend angezeigt. Verstehe nicht, was genau du meinst?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Timm Thaler
Beiträge: 1144
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: TToolButton zeigt keinen Hint

Beitrag von Timm Thaler »

wp_xyz hat geschrieben:Sorry, was ist der "Formulareditor"?


Der "Designer", und die Eigenschaften geändert im "Objektinspektor" unter "Eigenschaften".

Den Code aus der lfm hab ich nur gepostet, weil man da die gesetzten Eigenschaften sieht.

wp_xyz hat geschrieben:Hast du im Formular ShowHint gesetzt?


Sowohl im Formular als auch für die ToolBar als auch für den ToolButton.

Der Hint wird ja auch gezeigt, wenn ich im Programm nochmal toolbutton.Hint zuweise, ohne ein extra ShowHint. Aber anscheinend wird bei ToolButton mit Verknüpfung auf MenuItem der Hint vom MenuItem verwendet, und da stand nix drin. Wobei ich immer noch nicht verstehe, wozu ein MenuItem einen Hint hat.

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

Re: TToolButton zeigt keinen Hint

Beitrag von wp_xyz »

Michl hat geschrieben:@wp: ich habe mir eben das Projekt angesehen. Warum sollte ein anderer Hint kommen, als der im Objektinspektor angegebene? Da steht drei mal "Hint Button 1" drin, MenuItems bwz. Actions sind nicht gesetzt. Wenn man diese Hints ändert, werden sie entsprechend angezeigt. Verstehe nicht, was genau du meinst?

:oops: Ich glaube, das war der alte Fehler: Wenn man im OI eine Eigenschaft ändert muss man unbedingt ENTER drücken, damit sie übernommen wird, und nicht nur eine andere Eigenschaft anklicken. Ich hatte, nach Eingabe des Hints für den 1.Butten, den Text in den Hint des 2.Buttons kopiert, die 1 gegen die 2 ausgetauscht und dann, um dasselbe zu wiederholen. den 3. Hint angeklickt, ohne ENTER zu drücken.

Antworten