Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Firemonkey in XE6 - Zwischenbericht (https://www.delphipraxis.net/180699-firemonkey-xe6-zwischenbericht.html)

greenmile 10. Jun 2014 12:01

Firemonkey in XE6 - Zwischenbericht
 
Vielleicht interessiert es ja den einen oder anderen. Ich habe nach einigen Fehlschlägen das Thema Firemonkey komplett von meiner ToDo-Liste geschoben und verwende eigentlich nur noch die Standard FMX Form, an Controls kommt mir bei Mac Projekten nur noch TMS's mCL auf den Tisch.

Aktuell musste ich jedoch ein Projekt realisieren, dass sowohl auf Android, als auch auf iOS läuft, also habe ich XE6/FMX eine Chance gegeben. Oder musste ich, kann man sehen wie man will.

Zunächst mal zur Installation: Wenn man das Mobile AddOn kauft, muss man zunächst ganz normal Delphi installieren. Anschließend das Setup nochmal starten, "Upgrade" klicken, Seriennummer vom Mobile eingeben und schon kann man Mobile auswählen. Geht zwar, aber da muss man erstmal drauf kommen. Das könnte man einfacher machen.

Die ersten Schritte waren jedoch einfach: Einfach ein neues Firemonkey-Mobile Projekt erzeugen, fertig. Einige Buttons auf die Form und fertig ist das 'Hallo Welt' Projekt. Dann ging es etwas tiefer in die Materie. Alles in allem konnte ich alles so realisieren, wie ich es von Windows kenne. Einige Unschönheiten (wie nicht unterstütze, typisierte Dateien) konnte ich relativ einfach umgehen und ganz nebenbei auch neues lernen, wie z.B. SQLITE. Die Hauptprobleme bestanden bei mir nicht in der Umsetzung, sondern erstmal herauszufinden, wie der Hase läuft. So wollte ich z.B. eine Liste, in der neben jedem Eintrag ein Pfeil nach rechts für "Weiter" ist. Am Anfang habe ich dafür mangels Wissen Panels genommen. Die konnten keine Farben, also habe ich Rectangles drauf gepackt. So recht gefallen hat es mir nie, aber was sollte ich tun. Irgendwann musste ich im Projekt mit Listen arbeiten, quasi "Text" und "Anzahl". TListview gibt es (jetzt endlich), also habe ich die genommen und siehe da ... wie geil, sowas wie meine gefakten Panel-Buttons kann das Teil von Haus aus. Sogar Bitmaps (basierend auf PNG) laufen wenn man rausbekommt, wie es funktioniert. Die Hilfe half an der Stelle leider nicht, weil keine Texte zu den Themen vorhanden waren.

Einige Dinge habe ich bis dato nicht verstanden. Z.B., ob man einen iOS Theme auch unter Android verwenden kann. Könnte ich zwar testen, bin aber faul. Oder wie man die Listview an den Kanten rund bekommt. Oder wie man eine vernünftige Skalierung hinbekommt. Es wird aber nur eine Frage der Zeit sein, bis das läuft.

Mehr als hilfreich ist die Möglichkeit, das Projekt als Win32 zu starten, da die Übertragung an ein Handy doch recht lange läuft und der Simulator irgendwie rumspinnt. Ich war faul und habe einige Sourcen direkt mittels Drag&Drop in das FMX Projekt kopiert.

Resume (auch an ME): Die Entwicklung hat einfach Spaß gemacht! In XE6 läuft es nahezu rund. Die Beispiele sind super, einzig die Hilfe lässt hier und da noch zu wünschen übrig. Für mobile Projekte werde ich nun gerne wieder auf XE6 zurückgreifen, es ist ziemlich cool geworden. Glückwunsch, ME und Embar!

Und wer über FMX flucht und noch XE3 verwendet: Testet XE6, es macht (endlich) wirklich Spaß und funktioniert.

===

Was ich mir allerdings noch wünsche:

- Listview Items zur Designzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen
- Bessere Guides zum Thema Listview, die ist ja recht mächtig WENN man sie beherrscht.
- Bessere Guides zum Thema Styles
- Insgesamt mehr Guides je Plattform und deren spezielle Eigenschaften
- Möglichkeit der nativen Komponenten
- Unter Android die Möglichkeit, einen Splash in den Projekteinstellungen zu definieren

Vieles ist möglich, allerdings nur durch Try-And-Error. Bis ich raus hatte, dass man für TMediaPlayer nix brauche außer halt TMediaplayer ... das hat gedauert.

stahli 10. Jun 2014 13:20

AW: Firemonkey in XE6 - Zwischenbericht
 
Würdest Du Dir auch ein ausgewachsenes FMX-Projekt für Win+Mac incl. LiveBindings zutrauen?
Ich meine ohne massenweise Workarounds zu nutzen?

Die ganze mobile Schiene interessiert mich immer noch nicht. FMX hätte ich gern genutzt als Alternative zur VCL. Bekanntermaßen mit recht blutiger Nase als Resultat.

Für mich wäre XE6 maximal ein Thema als vollwertige VCL-Alternative und als nahezug kostenfreies Fehlerupdate (von mir aus ohne Android-Unterstützung) für mein teures D XE3 Ultimate.

(Obwohl, eigentlich selbst dann würde ich wohl Emba nicht mehr wirklich als zahlender Kunde erhalten bleiben, da man mit kostenfreien Bugfixes für einen mittleren Zeitraum nicht mehr rechnen kann - ein Unding aus meiner Sicht.)

greenmile 10. Jun 2014 13:23

AW: Firemonkey in XE6 - Zwischenbericht
 
Ich verwende keine LiveBindings, deswegen kann ich dazu nichts sagen. Ausgewachsene Projekte würde ich, wenn sie nur unter Windows laufen, nur und ohne Ausnahme mit der VCL realisieren. Firemonkey ist cool für mobile und teilweise für Mac, unter Windows braucht man das nicht.

himitsu 10. Jun 2014 13:28

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261826)
- Grafiken (TImage) usw. zur Laufzeit einbinden, derzeit muss ich sie dynamisch zuwiesen
- Listview Items zur Laufzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen

Warte mal, du möchstest die gern zur Laufzeit dynamisch erstellen und machst das derzeicht auch schon so? :gruebel:

greenmile 10. Jun 2014 14:23

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von himitsu (Beitrag 1261828)
Zitat:

Zitat von greenmile (Beitrag 1261826)
- Grafiken (TImage) usw. zur Laufzeit einbinden, derzeit muss ich sie dynamisch zuwiesen
- Listview Items zur Laufzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen

Warte mal, du möchstest die gern zur Laufzeit dynamisch erstellen und machst das derzeicht auch schon so? :gruebel:

Ich erstelle es zur Laufzeit, z.B. mittels "TListitem := lv...Items.Add".
Genau wie Images, die ich erst aus einer RES in ein TBitmap lade und dann an das TImage weiterschicke.

Oder geht das zur Designzeit?

Daniel 10. Jun 2014 14:42

AW: Firemonkey in XE6 - Zwischenbericht
 
Für den TListView geht das nur zur Laufzeit. Diese Komponente arbeitet dynamisch und wurde entwickelt mit den Blick auf die Aufgabenstellung, viele Einträge performant anzuzeigen. Solltest Du hingegen nur eine überschaubare Anzahl an Einträgen haben, dann könntest Du eine TListBox nehmen, diese kannst Du zur Designzeit bestücken.

eddie11 10. Jun 2014 14:48

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261833)
Ich erstelle es zur Laufzeit, z.B. mittels "TListitem := lv...Items.Add".
Genau wie Images, die ich erst aus einer RES in ein TBitmap lade und dann an das TImage weiterschicke.

Oder geht das zur Designzeit?

Also m.E. ist die ListView ja gerade dazu gedacht, zur Laufzeit gefüllt zu werden (z.B. aus einer Datenbank oder Web-Abfrage). Deshalb scheint mit ein Füllen bereits zur Designzeit nicht sinnvoll.
Für wenige Einträge kannst Du eine ListBox benutzen, die kannst Du schon zur Desingnzeit füllen.

TImages kann man sehr wohl zur Designzeit füllen - nicht jedoch die Images innerhalb einer Listview (da ja die Items auch noch nicht da sind).

greenmile 10. Jun 2014 15:02

AW: Firemonkey in XE6 - Zwischenbericht
 
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Jonas Shinaniganz 10. Jun 2014 18:41

AW: Firemonkey in XE6 - Zwischenbericht
 
Lade keine IOS-Styles in Android Projekte oder umgekehrt! Das ist zur Designzeit nicht möglich und zur Laufzeit ein Hack. Du bekommst viele Probleme bei der Aktualisierung der Oberfläche. Mal davon abgesehen wäre so ein vorgehen punkto UI-Design-Richtlinien einfach krank.

Edit: vielleicht sogar rechtswidrig aber das ist nur so ein Gedanke

Mavarik 10. Jun 2014 19:52

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261842)
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Klar
Grafik für Scale 1 2 3 usw... oder auch


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr.
Seite 1 von 3  1 23      

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