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/)
-   -   Firemonkey Berlin 10.1 GUI Chaos (https://www.delphipraxis.net/189385-firemonkey-berlin-10-1-gui-chaos.html)

stalkingwolf 7. Jun 2016 14:40

Firemonkey Berlin 10.1 GUI Chaos
 
Evtl ist Chaos übertrieben.

Aber ich versuche gerade ein Programm zu schreiben was auf Android und auf Windows laufen soll.
Primär nutze ich daher bei ControlType = Platform. Aber das gibt es nicht bei jedem Element.

Daher sieht die GUI ohne das man massiv nachhilft wie hingekotzt aus.
Viele Buttons passen nicht. Mal weiß mal grau als Hintergrund.
Unter Windows werden Comboboxen nicht angezeigt. Sieht aus als wären sie unsichtbar.

nun ist mir einfach ein TDateEdit Feld unter Windows verschwunden. Auf dem Androidgerät wird es angezeigt.
Fährt man mit der Maus drüber dann wird der Cursor zum Eingabecursor geändert. Trifft man zufällig das Element, geht sogar der Kalender auf.

Ich setze unzählige TLayouts, damit überhaupt Struktur in die UI kommt und mir Elemente nicht andere Elemente verdecken.
z.b habe ich ein Panel. Die untere Kante soll ein Trenner zum nächsten Element sein.
Packe ich ein detailstoolbuttonbordered rein und setze ihn auf Align z.b right, dann ist der größer als andere Buttons und sogar größer als das Panel darunter.

War das schon immer so grauenhaft unter Firemonkey?

Sherlock 7. Jun 2016 15:02

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Also ich hatte auch zu kämpfen...aber unter Seattle. Und ganz so furchtbar ist es nicht gewesen, wie Du es schilderst. Ich habe einiges an Controls in Verwendung. Gruppieren/Strukturieren sollte man die IMHO in TListBox und nicht irgendwelche Panels oder Layouts, das hat in der Tat auch bei mir Anfangs nur zu Chaos geführt. Sehr hilfreich sind aber TTabControl zum gruppieren von Funktionsgruppen. Es hat mich runde zwei Monate gekostet eine GUI zu basteln, die jetzt sowohl Windows also auch die diversen Apple-OS beherrscht. In VCL wäre das maximal eine Woche gewesen. Übrigens nutze ich nur Bordmittel, und keine Geräte oder OS-spezifischen Layouts (oder wie das jetzt heisst)

Sherlock

stalkingwolf 7. Jun 2016 15:26

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Liste der Anhänge anzeigen (Anzahl: 1)
das hier treibt mich gerade in den Wahnsinn.
Es war vorher ok und nu auf einmal ist der unsichtbar.
Auch löschen und neu hinzufügen bringt nichts.

Im Master sieht und der Ansicht wenn ich Windows hinzufüge ist auch alles ok.
Mit einer Combobox habe ich das gleiche Problem.

Der schöne Günther 7. Jun 2016 15:30

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Du hast aber nicht zufällig ein Mini-Projekt zum Nachstellen, oder?

bra 7. Jun 2016 16:14

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Das Mixen von nativen und normalen FMX-Elementen ist keine so gute Idee, weil die nativen je nach Plattform immer im Vordergrund sind und die normalen selbstgezeichneten FMX-Komponenten überlagern.

Siehe http://docwiki.embarcadero.com/RADSt...teuerelementen

Ein ähnliches Verhalten gibt es unter iOS/Android mit den DPF-Komponenten.

stalkingwolf 7. Jun 2016 16:19

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Wollte gerade ein kleines Programm schreiben und habe das Problem gefunden.

Wenn das TDateEdit auf einem TPanel sitzt und man setzt ControlType bei dem TPanel auf Platform, dann tritt das Problem auf.
Vermutlich weil TDateEdit kein ControlType hat.

Setzt man noch ein TEdit dazu und setzt ControlType auf Platform wird das TEdit angezeigt. Setzt man es auf Styled ist auch das weg.


Zitat:

Zitat von bra (Beitrag 1339697)
Das Mixen von nativen und normalen FMX-Elementen ist keine so gute Idee, weil die nativen je nach Plattform immer im Vordergrund sind und die normalen selbstgezeichneten FMX-Komponenten überlagern.

So einfach ist das aber nicht, da TDateEdit gar keine Eigenschaft dafür hat und sich selber darum kümmert. TDateEdit sieht auf dem Android Gerät ganz anders als unter Windows aus. Gleiches bei den TComboboxen.

mensch72 7. Jun 2016 16:23

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Da wie es sich anhört bei den "Effekten" ja wohl eh noch kein Funktionscode im Projekt ist, einfach mal das Projekt hier gepackt hochladen.

Wichtig wäre noch zu wissen, was die Zielstellung ist... soll die GUI plattformunabhängig "einheitlich" sein ODER soll die GUI plattformabhängig möglichst "native" aussehen?

bra 7. Jun 2016 16:28

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Zitat:

Zitat von stalkingwolf (Beitrag 1339698)
So einfach ist das aber nicht, da TDateEdit gar keine Eigenschaft dafür hat und sich selber darum kümmert. TDateEdit sieht auf dem Android Gerät ganz anders als unter Windows aus. Gleiches bei den TComboboxen.

Die FMX-Komponenten sehen auf den verschiedenen Plattformen auch unterschiedlich aus, nur wird das Verhalten hier sozusagen kopiert. Die Option "ControlType = Platform" bedeutet doch nur, dass die echte native Komponente der jeweiligen Plattform verwendet wird (mit all den beschriebenen Nebeneffekten).

Und was du beschreibst ist genau das beschrieben Verhalten: TPanel = Nativ, hängt vor dem Nicht-Nativen TDateEdit.

mensch72 7. Jun 2016 17:18

AW: Firemonkey Berlin 10.1 GUI Chaos
 
eigentlich muss/sollte man sich entscheiden: entweder nur native ControlTypes für ALLES verwenden, ODER alles per FMX-Controls lösen

Wenn man GUI und Daten/Funktion sauber trennt, ist es auch garnicht so viel (Zusatz)Aufwand wenn es denn sein soll pro Plattform eine eigene native GUI zu designen, wo nur das verwendet wird was es dort auch gibt. DPF odet TMS bieten da ja auch Zugriff auf quasi alles was es native für Android/IOS/OSx gibt.

Das MultiView Konzept FMX halte ich plattformübergreifend ala Desktop&Mobile da (noch) für ungeeignet. MultiView ist brauchbar wenn man für verschiedene Formate jeweils eine GUI DesignVariante auf/mit einem Quelltext verwenden will(aber wir hatten da bevor es MultiView gab schon einen eigene IFDEF basierte Lösung mit vom SharedSource getrennter GUI).
Wir verwenden MultiView/SharedSourceGUI nur innerhalb einer Plattform für Hochformat/Querformat(/Quaratisch/SmartWatch), wo wir selbst ohne "responsive Design" lieber manuell alles passend anordnen. Selbst wenn wir nur pure StandardFMX Sachen verwenden, designe ich die definitiv die Desktop & Mobile Variante getrennt (also 1x Windows&OSX plus 1x Android&IOS)

Harry Stahl 7. Jun 2016 17:32

AW: Firemonkey Berlin 10.1 GUI Chaos
 
In der Hauptsache ist mixen vor allem dann keine gute Idee, wenn der Container für ControlType den Wert "Platform" hat.

Du müsstest hier nur das Panel auf Styled setzen, dann werden alle Controls im Panel richtig angezeigt (dann egal, ob styled oder platform).

mquadrat 8. Jun 2016 09:25

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Als nicht FMX-ler: Wie unterscheiden sich denn natives und FMX Panel?

jaenicke 8. Jun 2016 11:22

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Die native Version wird vom Betriebssystem dargestellt, die gestylte durch FMX gezeichnet. Die nativen haben wir bisher nicht verwendet.

Sherlock 8. Jun 2016 11:36

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Bei mir ist auch alles auf Styled. Platform ließ sich kaum beherrschen, und führte zu unerklärlichen Verhalten.

Sherlock

bra 8. Jun 2016 11:47

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Wir haben auch alles auf Styled (auch weil es Platform erst seit ein paar Versionen gibt).

stalkingwolf 8. Jun 2016 13:01

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Ich bin ein Fan davon, das Programm so aussehen und sich anfüllen wie das genutzte Betriebsystem.
Ein Grund warum ich Java Programme nicht ausstehen kann ;-)

Bisher hatte ich nur die Probleme mit TCombobox und TDateEdit. Solange ich nun weiß worauf ich achten muss ist es ok.
Ob Panels noch Sinn machen wenn man TLayout nutzen kann muss ich noch prüfen.
Bisher habe ich meine Programme durch Panels designed.

Der schöne Günther 8. Jun 2016 13:09

AW: Firemonkey Berlin 10.1 GUI Chaos
 
(Klugscheißmodus an)

Das hat nichts mit der Programmiersprache, sondern der verwendeten GUI-Bibliothek zu tun. PS: Wenn wir schon bei Java sind, dann doch ein konkretes Beispiel von "native Komponenten verdecken gezeichnete", wie bei FMX auch:
https://en.wikipedia.org/wiki/Abstra...ing_components

(Klugscheißmodus aus)

Sherlock 8. Jun 2016 13:12

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Zitat:

Zitat von stalkingwolf (Beitrag 1339756)
Ich bin ein Fan davon, das Programm so aussehen und sich anfüllen wie das genutzte Betriebsystem.
Ein Grund warum ich Java Programme nicht ausstehen kann ;-)

Amen!

Zitat:

Zitat von stalkingwolf (Beitrag 1339756)
Bisher hatte ich nur die Probleme mit TCombobox und TDateEdit. Solange ich nun weiß worauf ich achten muss ist es ok.
Ob Panels noch Sinn machen wenn man TLayout nutzen kann muss ich noch prüfen.
Bisher habe ich meine Programme durch Panels designed.

In der Tat sollten Layouts Dir mehr helfen als Panels. Ich habe allerdings ein kleines Problem bei mir bemerkt, demzufolge ein TLayout nicht wirklich frühzeitig seine tatsächlichen Größeninformation bereithält. Ich habe im FormResize-Event einer Anwendung unter anderem auch die Größe von einem TLayout abgefragt, um dynamisch auf die Formgröße reagieren zu können. Leider war das TLayout durch alle Resize Durchgänge während des Programmstarts konstant 50 Pixel breit. Ein als Ersatz verwendetes Panel zeigte schon beim ersten Durchlauf die erwartete tatsächliche Breite von 254 Pixeln. Also auch das TLayout ist mit Vorsicht zu genießen :(

Sherlock

bra 8. Jun 2016 13:34

AW: Firemonkey Berlin 10.1 GUI Chaos
 
Zitat:

Zitat von stalkingwolf (Beitrag 1339756)
Ich bin ein Fan davon, das Programm so aussehen und sich anfüllen wie das genutzte Betriebsystem.
Ein Grund warum ich Java Programme nicht ausstehen kann ;-)

Die Standard-FMX-Komponenten sind aber schon weitgehend wie das jeweilige System. Auch ohne die Einstellung Platform.
Wenn man wirklich reine native Komponenten nutzen will, muss man halt auch mit den Nachteilen leben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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