Breite Toolbarbuttons?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Timm Thaler
Beiträge: 1224
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

Breite Toolbarbuttons?

Beitrag von Timm Thaler »

Gibt es eine Möglichkeit die Breite der Toolbarbuttons zu ändern?

Ich möchte nur einige Buttons breiter haben, und habe es jetzt mit normalen GUI-Buttons gelöst - das sieht aber unschön aus.

tb.png
tb.png (1.74 KiB) 1646 mal betrachtet

Setzen der Breite im Form Designer bewirkt nichts. Setzen der Breite mit Form1.ToolButton1.Width in FormCreate bewirkt auch nichts.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2639
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: Breite Toolbarbuttons?

Beitrag von m.fuchs »

Du kannst die Breite der Toolbar-Buttons in der Toolbar direkt ändern.

Code: Alles auswählen

Form1.ToolBar1.ButtonWidth := 100;
Die Property ist auch im Designer verfügbar.

ABER: Das ist die Breite aller ToolButtons, einzeln kannst du sie nicht ändern.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Breite Toolbarbuttons?

Beitrag von wp_xyz »

Wenn du zulässt, dass die Toolbar-Captions angezeigt werden (Toolbar.Showcaptions := true), dann wird die Toolbar-Breite durch die Länge der Caption bestimmt, so dass durchaus unterschiedlich breite ToolButtons vorkommen können. Durch Vorstellen und Anhängen von Spaces kannst du die Breite zusätzlich vergrößern - exakt kontrollierbar ist das aber nicht.

Ansonsten würde ich statt einer TToolbar ein Panel mit Speedbuttons nehmen; diese kann man einzeln designen.

Timm Thaler
Beiträge: 1224
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: Breite Toolbarbuttons?

Beitrag von Timm Thaler »

m.fuchs hat geschrieben:
Do 25. Feb 2021, 17:40
ABER: Das ist die Breite aller ToolButtons, einzeln kannst du sie nicht ändern.
Ja leider.

ABER: Man kann eine Toolbar auf einer Toolbar erstellen. Und dann für diese zweite Toolbar eine andere Breite setzen. ;-)

Bug oder Feature?
wp_xyz hat geschrieben:
Do 25. Feb 2021, 18:19
Wenn du zulässt, dass die Toolbar-Captions angezeigt werden (Toolbar.Showcaptions := true), dann wird die Toolbar-Breite durch die Länge der Caption bestimmt
Das Fetzige ist, dass er mir dann bei allen Buttons Text drunterpappt, auch bei denen wo ich die Caption wieder gelöscht habe.

Und ich muss leider die Toolbar dann höher machen.
wp_xyz hat geschrieben:
Do 25. Feb 2021, 18:19
Ansonsten würde ich statt einer TToolbar ein Panel mit Speedbuttons nehmen; diese kann man einzeln designen.
DAS ist der Plan. Ich hab mich immer schon gewundert, wozu diese Speedbuttons gut sind.

Und die Speedbuttons gleich die Toolbar zwischen die normalen Toolbuttons pappen. Muss ich nur die Klasse meiner vorhandenen Bitbuttons ändern.

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

Re: Breite Toolbarbuttons?

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:
Do 25. Feb 2021, 19:27
Und die Speedbuttons gleich die Toolbar zwischen die normalen Toolbuttons pappen.
Ich würde nicht TToolbuttons und TSpeedButtons mischen. Es könnte sein, dass die beiden Arten unterschiedlich aussehen, wenn nicht jetzt, dann vielleicht in einer späteren Version des OS, oder in einem anderen Theme. Wahrscheinlich musst du SpeedButton.Flat auf true setzen, damit es ähnlich aussieht wie eine Toolbar.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Breite Toolbarbuttons?

Beitrag von Soner »

Timm Thaler hat geschrieben:
Do 25. Feb 2021, 19:27
Das Fetzige ist, dass er mir dann bei allen Buttons Text drunterpappt, auch bei denen wo ich die Caption wieder gelöscht habe.

Und ich muss leider die Toolbar dann höher machen.
Du kannst den Titel bei Toolbuttons einzeln abschalten, siehe TToolButton.ShowCaption. Mit TToolBar.List-Eigenschaft kann man Titel rechts vom Bild anzeigen lassen, dann haben alle gleiche Höhe.

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

Re: Breite Toolbarbuttons?

Beitrag von wp_xyz »

Soner hat geschrieben:
Sa 27. Feb 2021, 12:06
Du kannst den Titel bei Toolbuttons einzeln abschalten, siehe TToolButton.ShowCaption.
Wie machst du das? Ich hab's gestern probiert und nicht gefunden, wie man die Caption einzelner Buttons ausblenden kann, auch nicht bei älterenen Laz-Versionen. Ich hätte schwören können, dass ich das verifiziert hatte, als ich das Kapitel im Lazarus-Handbook schrieb.
Zuletzt geändert von wp_xyz am Sa 27. Feb 2021, 21:20, insgesamt 1-mal geändert.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Breite Toolbarbuttons?

Beitrag von Soner »

wp_xyz hat geschrieben:
Sa 27. Feb 2021, 16:07
Soner hat geschrieben:
Sa 27. Feb 2021, 12:06
Du kannst den Titel bei Toolbuttons einzeln abschalten, siehe TToolButton.ShowCaption.
Wie machst du das? Ich hab's gestern probiert und nicht gefunden, wie man die Caption einzelner Buttons ausblenden kann, auch nicht bei älterenen Laz-Versionen. Ich hätte schwören können, dass ich das verifiziert hatte, als ich das Kapitel im Lazarus-Handbook schreib.
Wie ich sagte, setze ich ShowCaption-Eigenschaft von diesen Buttons auf "false".
Da du verwundert gefragt hast, habe ich jetzt nachgeprüft, es funktioniert nur wenn TToolbar.List auf "true" gesetzt.
Ich verwende bei Toolbars die List-Eigenschaft immer auf "True", deshalb ist es der Fehler mir bisher nie aufgefallen.
Vielleicht sollte es näher betrachtet und als Bug gemeldet verwenden.

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

Re: Breite Toolbarbuttons?

Beitrag von wp_xyz »

Soner hat geschrieben:
Sa 27. Feb 2021, 19:03
es funktioniert nur wenn TToolbar.List auf "true" gesetzt.
Ah! Das war es!

Antworten