Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   FMX: Buttons mit größerem Bild - wie? (https://www.delphipraxis.net/208447-fmx-buttons-mit-groesserem-bild-wie.html)

Alter Mann 30. Jul 2021 07:23

FMX: Buttons mit größerem Bild - wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

Ich fange grade an erste Schritte in/mit FireMonkey zu versuchen.
Leider Scheiter ich schon an einfachen Sachen wie Buttons mit 'größeren' Bildern
auszustatten. Als Beispiel ein Screenshot mittels VCL realisierter Demo-App.

Soetwas würde ich gern auch in FireMonkey machen, aber wie?

Danke

Rollo62 30. Jul 2021 08:44

AW: FMX: Buttons mit größerem Bild - wie?
 
Du könntest mit
Delphi-Quellcode:
  fmxIcon := LBtn.FindStyleResource('icon');
oder so ähnlich die im Style enthaltenen Elemente rausholen, und dann wie normale FMX Controlls bearbeiten.

Oder mit den Styles die Elemente bearbeiten und verändern (global oder nur für das eine Control).
http://docwiki.embarcadero.com/RADSt...S_and_Android)

Das sieht dann aber auch unter jeder Platform anders aus, und geht unter Umständen nicht immer.

Weil mir das aber mit Abstand zu viel Frickelei für sowas Simples ist habe ich mir kurzerhand meine eigene "Buttons" gebaut,
als neue Komponente aus den Primitiven Shapes, mit
TRectangle, TGlyph und TText.

TRectangle behandelt die Clicks, und den Rest kann ich so arrangieren wie ich möchte.
Der Vorteil ist, dass es auch auf jeder Plattform gleich aussieht, und sich so verhält wie ich es möchte.

Das ist übrigens die Einzige neue Komponente die ich neu angelegt habe, den Rest passe ich über Interposer an meine Bedürfnisse an,
z.B. TListBox, TListView, TTabControl, TEdit.
Nur beim Button ging das nicht so gut.

Ich empfehle sowieso möglichst für Alles nur die primitiven Shapes zu nehmen, die sind 100% zuverlässig und daraus kann man sich Alles leicht aufbauen.
Alles was darüber ist hat so seine Ecken und Kanten.

blawen 30. Jul 2021 17:13

AW: FMX: Buttons mit größerem Bild - wie?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Der Unterschied in der Herangehensweise zwischen den zwei Bibliotheken ist doch relativ gross.
Neu sind Dinge möglich, die in der VCL gar nicht realisierbar sind und daher kommt man meist nicht auf das Naheliegende.

In diesem Fall habe ich normale TButtons, ein Rectangle und zwei Labels genommen und alles dem TButton zugewiesen.
Anhang 54218

Anhang 54219

Rollo62 30. Jul 2021 20:21

AW: FMX: Buttons mit größerem Bild - wie?
 
Ja das kann man auch machen, aber für so eine Standardfunktion ist das nicht wirklich befriedigend.
Ich packe mir auch viel Spezielles in Frames, die ich dann zur Laufzeit wunderbar wiederverwenden kann.

Alter Mann 31. Jul 2021 22:33

AW: FMX: Buttons mit größerem Bild - wie?
 
Hallo Leute,

ist das Euer Ernst?
Nix wie 'Glyph'-Property, Picture zuweisen;
oder Images zuweisen, Index festlegen: fertig?

Toll...

TurboMagic 1. Aug 2021 20:36

AW: FMX: Buttons mit größerem Bild - wie?
 
1. Es gibt vordefinierte Stile, die je nach Plattform
unterschiedliche Icons haben.

2. Es gibt inzwischen auch eine TImageList und somit
ImageIndex.

3. Und man kann auch eigene Stile definieren, da ist
mehr machbar. Das ist dann aber Plattform abhängig.

FMX kann also verschiedenes, wenn's auch nicht immer
perfekt oder bugfrei ist...

Grüße
TurboMagic

Harry Stahl 1. Aug 2021 23:15

AW: FMX: Buttons mit größerem Bild - wie?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Alter Mann (Beitrag 1493069)
Hallo Leute,

ist das Euer Ernst?
Nix wie 'Glyph'-Property, Picture zuweisen;
oder Images zuweisen, Index festlegen: fertig?

Toll...

Ich finde auch, FMX sollte bei den Buttons mehr direkt auswählbare Flexibilität aufweisen und man sollte nicht direkt an den Styles rumbasteln müssen.

Wie auch immer, es geht. Du kannst eine Imagelist verwenden, da fügst Du am besten die Bilder in der Auflösung ein, die Du maximal verwenden willst (ignoriere die Frage nach Aufteilung oder Skalierung, setze Breite und Höhe in dem ImageList-Dialog, bevor Du Bilder hinzufügst). Dann weist Du dem Button die ImageList zu und den ImageIndex.

Um die Images in den Buttons in der gewünschten Größe zu erhalten, klickst Du mit der rechten Maustaste auf den Button und wählst "Benutzerdefinierten Style" aus. Aus dem Button editierst Du den "Glyphstyle" und änderst ihn zB. in Breite und Höhe jeweils auf die gewünschte Größe, z.B. 48.

Soll das Bild zudem oben sein, wählst Du noch Align Top.

Allen Buttons, die mit der entsprechenden Größe angezeigt werden sollen, weist Du den entsprechenden Style im Feld "StyleLookUp" zu. Auf diese Weise kannst Du auch unterschiedliche Styles definieren, so dass Du Schalter mit großen oder kleinen Bildern
bekommst und Text z.B. linksbündig oder oben steht.

Sie anliegend 2 Screenshots, einmal im Stil-Designer, einmal das Ergebnis.

Alternativ könnte ich Dir noch die FNC-Komponenten von TMS empfehlen, da kann man den TMSFNCButton so ähnlich wie den VCL-Button verwenden (im Bild 2 der letzte Button unten).

Rollo62 3. Aug 2021 08:02

AW: FMX: Buttons mit größerem Bild - wie?
 
Ich habe z.B. in vielen Projekten eine "Standardressource" drin, mit ImageList, Egal ob ich die alle brauche oder nicht.
So kann ich immer schnell auf Icons zugreifen, und habe auch immer den gleichen Stil.

Genau das macht FMX mit de Stilen, da ist eine "Tapete" mit den gängigsten Icons drin, die man nutzen kann, und auch ändern kann.
Blöd ist es dann wenn die Standard-Tapete nicht ausreicht ...

Alter Mann 3. Aug 2021 11:52

AW: FMX: Buttons mit größerem Bild - wie?
 
OK, Danke.

Ich werd mir die ganze Sache mal genauer ansehen.
Scheint ja nicht so schwer/umständlich zu sein:wink:

Alter Mann 3. Aug 2021 14:19

AW: FMX: Buttons mit größerem Bild - wie?
 
Zitat:

Um die Images in den Buttons in der gewünschten Größe zu erhalten, klickst Du mit der rechten Maustaste auf den Button und wählst "Benutzerdefinierten Style" aus. Aus dem Button editierst Du den "Glyphstyle" und änderst ihn zB. in Breite und Höhe jeweils auf die gewünschte Größe, z.B. 48.
Das war's:thumb::thumb::thumb:

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz