Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX-Programmierung von TPanel (https://www.delphipraxis.net/204751-fmx-programmierung-von-tpanel.html)

Kurt Wallander 25. Jun 2020 12:11

FMX-Programmierung von TPanel
 
Moin,Moin,
ich will eine Anwendung in Delphi für Android erstellen und habe trouble mit den FMX-Bibliotheken. In meinem (früheren) Delphi-Leben habe ich recht häufig Panele verwendet. Nun habe ich nach tagelangen Wälzen von Hilfe und Tutorials immer noch nicht herausgefunden, wie ich die Farbe eines TPanel setzen oder in ihm einen Text platzieren kann. Gibt es da jemand, der schlauer ist als ich?
Gruß
Kurt

Sherlock 25. Jun 2020 12:23

AW: FMX-Programmierung von TPanel
 
Das funktioniert über die Styles. Das hier ist ein guter Einstieg: https://www.youtube.com/watch?v=j9XxM7W94p4

Sherlock

philipp.hofmann 25. Jun 2020 12:34

AW: FMX-Programmierung von TPanel
 
Als das mit der Farbe geht relativ einfach über ein OnApplyStyleLookup-Event:

Delphi-Quellcode:
procedure TicTrainerF.pVideoApplyStyleLookup(Sender: TObject);
var Rectangle: TRectangle;
begin
  if (firstResizeDone=false) then
    exit;
  Rectangle := (Sender as TFmxObject).Children[0] as TRectangle;
  Rectangle.Fill.Color := TAlphaColors.LightCyan;
end;
Text positioniere ich als TLabel auf dem TPanel, mit den von Sherlock vorgeschagenen Styles könnte es aber komfortabler gehen.

Harry Stahl 25. Jun 2020 14:58

AW: FMX-Programmierung von TPanel
 
Noch einfacher ist es, Du verwendest gleich ein TRectangle als Container, da kannst Du über die Eigenschaft "Fill" die Hintergrundfarbe setzen und über "Stroke" die Farbe des Rahmens....

TurboMagic 25. Jun 2020 20:27

AW: FMX-Programmierung von TPanel
 
Man bedenke: in FMX kann fast jedes Control container für ein anderes sein.
Du brauchst einen Button mit einem Image drauf?
Einfahc! Botton erstellen. Image erstellen und im Strukturpanel auf den Botton ziehen.
Danach nochmal passend auf dem Button ausrichten. Fertig.

Und das ist im Prinzip auch, was dir Harry Stahl mit dem rectanlge empfiehlt.

Sherlock 26. Jun 2020 08:44

AW: FMX-Programmierung von TPanel
 
Zu guter Letzt dann noch die Komponenten miteinander verschmelzen... Mir fehlt gerade der korrekte Ausdruck... und fertig.

Sherlock

Andreas L. 26. Jun 2020 09:00

AW: FMX-Programmierung von TPanel
 
Zitat:

Zitat von Harry Stahl (Beitrag 1468214)
Noch einfacher ist es, Du verwendest gleich ein TRectangle als Container, da kannst Du über die Eigenschaft "Fill" die Hintergrundfarbe setzen und über "Stroke" die Farbe des Rahmens....

Allerdings hat die IDE Probleme mit dem platzieren von Controls auf Formen wie das TRectangle. Einfach ein Rectangle auf die Form. Egal wie groß, ob Align gesetzt oder nicht und anschließend ein anderes Control z. B. TButton aus der Tool-Palette auf das Rectangle ziehen. Das Control landet nicht auf dem Rectangle sondern auf dem Parent-Objekt oder der Form. Warum auch immer das so ist... :(

Sherlock 26. Jun 2020 09:21

AW: FMX-Programmierung von TPanel
 
In Firemonkey? Das ist mir aber noch nicht passiert.

Sherlock

Harry Stahl 26. Jun 2020 11:29

AW: FMX-Programmierung von TPanel
 
Zitat:

Zitat von Andreas L. (Beitrag 1468238)
Zitat:

Zitat von Harry Stahl (Beitrag 1468214)
Noch einfacher ist es, Du verwendest gleich ein TRectangle als Container, da kannst Du über die Eigenschaft "Fill" die Hintergrundfarbe setzen und über "Stroke" die Farbe des Rahmens....

Allerdings hat die IDE Probleme mit dem platzieren von Controls auf Formen wie das TRectangle. Einfach ein Rectangle auf die Form. Egal wie groß, ob Align gesetzt oder nicht und anschließend ein anderes Control z. B. TButton aus der Tool-Palette auf das Rectangle ziehen. Das Control landet nicht auf dem Rectangle sondern auf dem Parent-Objekt oder der Form. Warum auch immer das so ist... :(

Das hatte ich auch schon mal bei EMBA beanstandet, dass die User bei diesem Verhalten immer auf eine falsche Fährte geleitet werden. Mein Vorschlag war, dass man, wenn man die neue Komponente auf dem TRectrangle "malt", die dann auch direkt dort eingefügt wird oder mit einem Key-Modifier (z.B. gedrückte Strg-Taste) bewirken kann, dass ein anderes Control direkt in das TRectangle eingefügt wird (wenn man also nur per einfachen Doppelklick die neue Komponente einfügt).

Aktuell ist der einzige Weg, das neue Control über die Struktur-Liste in das TRectangle zu ziehen (Du packst es dort also mit der Maus und ziehst es in das TRectangle (also in der Strukturansicht) rein.

Rollo62 26. Jun 2020 13:44

AW: FMX-Programmierung von TPanel
 
Zitat:

Zitat von Harry Stahl (Beitrag 1468250)
Aktuell ist der einzige Weg, das neue Control über die Struktur-Liste in das TRectangle zu ziehen (Du packst es dort also mit der Maus und ziehst es in das TRectangle (also in der Strukturansicht) rein.

+1 Richtig, mache ich auch immer über die Struktur-Ansicht.
Finde ich sowieso viel sinnvoller und übersichtlicher,
weil das grafische Drag'n'Drop immer an seine Grenzen stossen wird.
Die Struktur ist aber immer korrekt, auch für gerade nicht sichtbare oder versteckte Elemente.

Sherlock 26. Jun 2020 14:08

AW: FMX-Programmierung von TPanel
 
Ach darum hab ich das nicht bemerkt. Mache ich schon immer so. :-D

Sherlock

Medium 26. Jun 2020 14:17

AW: FMX-Programmierung von TPanel
 
Zitat:

Zitat von Rollo62 (Beitrag 1468254)
Finde ich sowieso viel sinnvoller und übersichtlicher,

Sehe ich genau anders herum. Das mag bei Formularen mit 15-30 Komponenten ja noch gut klappen, aber sobald man anfängt darin rumscrollen zu müssen finde ich das fürchterlich. Da würde ich mir dann eine "visuelle" Lösung direkt im Designer auch sehr wünschen.

Kurt Wallander 26. Jun 2020 17:18

AW: FMX-Programmierung von TPanel
 
Hallo Leute,

ich freue mich über die zahlreichen Antworten. Da FMX für mich Neuland ist, muß ich mich erstmal einarbeiten und glaube, daß das Buch von Harry ein guter Einstieg ist. Dann werde ich die vorgeschlagenen Möglichkeiten mal testen. Meine Trial-Version von 10.4 läuft in wenigen Tagen aus und dann muß ich sowieso auf die Community-Version (Rio) zurück.
Vielen Dank
Kurt

Andreas L. 27. Jun 2020 10:40

AW: FMX-Programmierung von TPanel
 
Zitat:

Zitat von Harry Stahl (Beitrag 1468250)
Aktuell ist der einzige Weg, das neue Control über die Struktur-Liste in das TRectangle zu ziehen (Du packst es dort also mit der Maus und ziehst es in das TRectangle (also in der Strukturansicht) rein.

Geht bei mir auch nicht. Das Control landet immer auf dem Parent oder auf dem Formular... :?

Harry Stahl 27. Jun 2020 11:14

AW: FMX-Programmierung von TPanel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Andreas L. (Beitrag 1468298)
Zitat:

Zitat von Harry Stahl (Beitrag 1468250)
Aktuell ist der einzige Weg, das neue Control über die Struktur-Liste in das TRectangle zu ziehen (Du packst es dort also mit der Maus und ziehst es in das TRectangle (also in der Strukturansicht) rein.

Geht bei mir auch nicht. Das Control landet immer auf dem Parent oder auf dem Formular... :?

Um alle Zweifel zu beseitigen, in der Anlage ein Mini-Video (107 kb gezipt), welches den Vorgang zeigt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.

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