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
TToolBar: Welches Image-Format?
-
- 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: 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.
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.
-
- 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: TToolBar: Welches Image-Format?
Hab ich gemacht, aber die ToolButtons bleiben leer.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.
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?
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.
- Dateianhänge
-
menu_toolbar_imagelist.zip
- (6.44 KiB) 96-mal heruntergeladen
-
- 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: 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?
Warum ist das so? Was mache ich, wenn ich ein Programm nur mit Toolbar, ohne Menus habe?
- Ally
- Beiträge: 280
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
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).
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
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).
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
Re: TToolBar: Welches Image-Format?
Keine Ahnung, wahrscheinlich ein Bug, den niemand bemerkt hat, weil du der erste bist, der so mit Menüs arbeitet.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?
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.Timm Thaler hat geschrieben:Was mache ich, wenn ich ein Programm nur mit Toolbar, ohne Menus habe?