TToolBar: Welches Image-Format?

Rund um die LCL und andere Komponenten

TToolBar: Welches Image-Format?

Beitragvon Timm Thaler » 29. Dez 2018, 22:54 TToolBar: Welches Image-Format?

Ich habe mit dem Formulareditor ein Fenster mit Menubar und Toolbar erstellt. Dem Fenster eine ImageList zugewiesen, in dieser einige 16x16 Icons im PNG-Format. Die Icons direkt als Datei einigen Menupunkten zugewiesen, und aus der ImageList den Toolbar-Buttons. Im Formulareditor werden die Icons sowohl in den Menus als auch auf der Toolbar angezeigt.

Starte ich das Programm - in dem selbst noch nichts passiert - werden die Menus mit Icons angezeigt, die Toolbar aber ohne. Ich sehe nur die leeren Toolbar-Buttons.

Ich nehme an, die Icons für die Toolbar müssen ein spezielles Format haben, damit sie angezeigt werden. Nur finde ich keine Info darüber, welches. Aktuell sind es PNGs mit 16x16 Pixeln, 32bit, Hintergrund transparent.

Windows 7, Lazarus 1.9, FPC 3.1.1
Timm Thaler
 
Beiträge: 871
Registriert: 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
Nach oben

Beitragvon wp_xyz » 29. Dez 2018, 23:10 Re: TToolBar: Welches Image-Format?

Die Bitmap-Eigenscahft der einzelnen Menü-Items würde ich unangetastet lassen. Stattdessen würde ich dem Menü eine ImageListe zuweisen (Property Images), in der die einzelnen Bilder gespeichert sind. Jeder MenuItem erhält dann das betreffende Bild über den ImageIndex. Genauso bei der Toolbar: Weise dieselbe ImageListe auch der Eigenschaft Images der ToolbarBar zu und gib jedem Toolbutton den entsprechenden ImageIndex. Das spart die doppelte Speicherung der Bilder für Menü und Toolbuttons.

PNG-Format ist in Ordnung. Alle in ImageList gesammtelten Bilder müssen dieselbe Größe haben, sonst werden sie auf die in ImageList.Width und .Height angegebene Größe zuerschnitten bzw. bei Laz 2.0 heruntergerechnet.
wp_xyz
 
Beiträge: 2838
Registriert: 8. Apr 2011, 08:01

Beitragvon Timm Thaler » 29. Dez 2018, 23:42 Re: TToolBar: Welches Image-Format?

wp_xyz hat geschrieben:Genauso bei der Toolbar: Weise dieselbe ImageListe auch der Eigenschaft Images der ToolbarBar zu und gib jedem Toolbutton den entsprechenden ImageIndex.


Hab ich gemacht, aber die ToolButtons bleiben leer.

Nach dem Neustart von Lazarus und Neuladen des Projektes sind auch die ToolButtons im Editor leer, der ImageIndex ist wieder auf -1. Ich kann aber einen höheren ImageIndex zuweisen und dann erscheint mein Icon wieder auf dem ToolButton. Aber nur im Editor, nicht im ausgeführten Programm.

Kann es sein, dass das mit dem Überarbeiten von ImageList in der Version 1.9 zu tun hat? Ist da eventuell noch ein Bug?
Timm Thaler
 
Beiträge: 871
Registriert: 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
Nach oben

Beitragvon wp_xyz » 30. Dez 2018, 00:39 Re: TToolBar: Welches Image-Format?

Es kann natürlich sein, dass die neue ImageList irgendwann einmal Probleme hatte, aber dass du ausgerechnet während dieser paar Tage deine Version gezogen hast, kann ich mir nicht vorstellen. Das beigefügte Demo funktioniert bei mir einwandfrei (Laz trunk / fpc3.0.4, Laz trunk / fpc trunk, Laz 1.8.4 / fpc3.0.4, Laz 2.0RC2 / fpc 3.0.4). Probier's aus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2838
Registriert: 8. Apr 2011, 08:01

Beitragvon Timm Thaler » 30. Dez 2018, 01:39 Re: TToolBar: Welches Image-Format?

Witzig, ich hab jetzt die direkten Images in den Menus rausgeschmissen und greife auch dort auf die ImageList zu - und damit werden die Icons sowohl in den Menus als auch in den ToolButtons angezeigt.

Warum ist das so? Was mache ich, wenn ich ein Programm nur mit Toolbar, ohne Menus habe?
Timm Thaler
 
Beiträge: 871
Registriert: 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
Nach oben

Beitragvon Ally » 30. Dez 2018, 10:45 Re: TToolBar: Welches Image-Format?

Hallo Timm Thaler,

in so einem Fall bietet es sich an eine ActionList zu verwenden.
Ihr kannst du eine ImageList zuweisen, die die Icons aller Menüpunkte enthält (seit 1.9/2.0 auch in allen benötigten Auflösungen).

ImageList.jpg

Den Menüpunkten, Popuomenüs oder Toolbuttens musst du dann nur noch die entsprechende Action zuordnen.
Alle Eigenschaften, wie z.B. Caption, Hint oder ImageIndex stehen dann auch dort zur Verfügung (und natürlich der Code der ausgeführt werden soll).

Gruß Roland
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ally
 
Beiträge: 92
Registriert: 11. Jun 2009, 08:25

Beitragvon wp_xyz » 30. Dez 2018, 11:05 Re: TToolBar: Welches Image-Format?

Timm Thaler hat geschrieben:Witzig, ich hab jetzt die direkten Images in den Menus rausgeschmissen und greife auch dort auf die ImageList zu - und damit werden die Icons sowohl in den Menus als auch in den ToolButtons angezeigt.

Warum ist das so?

Keine Ahnung, wahrscheinlich ein Bug, den niemand bemerkt hat, weil du der erste bist, der so mit Menüs arbeitet.

Timm Thaler hat geschrieben:Was mache ich, wenn ich ein Programm nur mit Toolbar, ohne Menus habe?

Versteh ich nicht. Hast du meinen Beitrag nicht gelesen? Klicke eine ImageList aufs Formular, fülle sie mit den Bildern und weise sie der Toolbar zu. Es ist egal, ob es ein Menü gibt oder nicht.
wp_xyz
 
Beiträge: 2838
Registriert: 8. Apr 2011, 08:01

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried