Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi VCL Types in FMX Anwendung (https://www.delphipraxis.net/196977-vcl-types-fmx-anwendung.html)

DelphiSüchtig 5. Jul 2018 13:00

VCL Types in FMX Anwendung
 
Hallo zusammen, folgendes Anliegen:

ich habe eine neue FMX Anwendung geschrieben. In dieser Anwendung möchte ich über eine bestehende Unit verschiedene VCL Types einbinden und verwenden, zum Beispiel TPoint.
Nun lautet meine Frage, wie ich das am besten anstelle, da mein Compiler die besagten Types nicht findet, trotz eingebundener Unit. Gibt es dafür eine simple Lösung, zum Beispiel muss ich spezielle Einstellungen in den Projektoptionen vornehmen?

Danke für eure Antworten!

mkinzler 5. Jul 2018 13:07

AW: VCL Types in FMX Anwendung
 
TPoint ist in Systen.Types deklariert.

Im Allgemeinen ist es keine gute Idee, VCL-Typen in FMX zu verwenden, da hier teilweise Typen anders implementiert sind.

DelphiSüchtig 5. Jul 2018 15:31

AW: VCL Types in FMX Anwendung
 
Danke für die Antwort, aber ich habe mich wohl falsch ausgedrückt.

Was ich meinte war dass bis jetzt alles fehlerfrei mit VCL compiliert werden konnte. Nun möchte ich mit FMX arbeiten und jetzt wird mir angezeigt, dass zum Beispiel TPoint nicht gefunden werden kann bzw. nicht deklariert wurde.

Ich habe leider noch nicht verstanden, woran das liegt und wie ich es umgehen kann.

Viele Grüße!

himitsu 5. Jul 2018 15:37

AW: VCL Types in FMX Anwendung
 
Es gibt für einige Typen Umleitungen/Aliase.
Also diese Typen sind mehrfach in verschiedenen Units weitergeleitet. (z.B. weil sie früher mal in VCL-Units lagen und dann da in Globale verschoben wurden, damit es nicht gleich überall knallt)

In deinem Fall mußt du einfach nur die Unit einbinden, wo der Typ "wirklich" implementiert ist (vermutlich Systen.Types), da es hier scheinbar im FMX keine Umleitung gibt.

mkinzler 5. Jul 2018 15:53

AW: VCL Types in FMX Anwendung
 
Viele Typen wurden von der VCL bzw. FMX in die RTL verschoben (wie bei TPoint)

Harry Stahl 5. Jul 2018 17:17

AW: VCL Types in FMX Anwendung
 
Genau. TPoint bindest Du über System.Types ein.

Ansonsten findest Du viel benötigtes in

Delphi-Quellcode:
FMX.Types


Hilfreich sind auch
Delphi-Quellcode:
System.UITypes,
System.UIConsts.
Wenn Du z.B. System.UiConsts einbindest, kannst Du Dir bei einigen Dingen Schreibarbeit sparen, also z.B. statt
Delphi-Quellcode:
color := TAlphaColorRec.Red;

//kannst Du schreiben:

color := claRed;
VCL.Types würde ich ganz raus lassen.

Falls Du eine Unit sowohl unter VCL als auch FMX verwenden solltest, musst Du die jeweiligen VCL / FMX Units eben über {$IFDEF ...} einbinden.

KodeZwerg 5. Jul 2018 17:25

AW: VCL Types in FMX Anwendung
 
Zitat:

Zitat von Harry Stahl (Beitrag 1406622)
Falls Du eine Unit sowohl unter VCL als auch FMX verwenden solltest, musst Du die jeweiligen VCL / FMX Units eben über {$IFDEF ...} einbinden.

Kurze Frage, wie? IFDEF Windows Uses Vcl, IFDEF Windows Uses Fmx ? Ich habe da bestimmt einen Mega Denkfehler aber bin auf eine Antwort gespannt.
Wenn Antwort über ein eigenes DEFINE stattfindet hat es sich erledigt.

Harry Stahl 5. Jul 2018 17:43

AW: VCL Types in FMX Anwendung
 
Zitat:

Zitat von KodeZwerg (Beitrag 1406623)
Zitat:

Zitat von Harry Stahl (Beitrag 1406622)
Falls Du eine Unit sowohl unter VCL als auch FMX verwenden solltest, musst Du die jeweiligen VCL / FMX Units eben über {$IFDEF ...} einbinden.

Kurze Frage, wie? IFDEF Windows Uses Vcl, IFDEF Windows Uses Fmx ? Ich habe da bestimmt einen Mega Denkfehler aber bin auf eine Antwort gespannt.
Wenn Antwort über ein eigenes DEFINE stattfindet hat es sich erledigt.

Ja, wie von Dir vermutet, über ein eigenes Define in den Projekteinstellungen (ich habe eigentlich nur einen einzigen Fall, wo ich das mal brauchte, da habe ich "FMXApp" verwendet, im Source kann man das dann mit

Delphi-Quellcode:
{$IFDEF FMXApp}
... FMX-Units
{$ELSE}
... VCL-Units
{$ENDIF}
lösen.

KodeZwerg 5. Jul 2018 17:53

AW: VCL Types in FMX Anwendung
 
Dacht ich mir beinahe aber Fragen kostet ja nichts, Danke:wink:
Ich böser Mensch, da ich faul mit der IDE bin hät ich mir eine {$DEFINE FmxApp} irgendwo über den Uses Code geschrieben.

Schokohase 5. Jul 2018 18:22

AW: VCL Types in FMX Anwendung
 
Zitat:

Zitat von KodeZwerg (Beitrag 1406626)
Ich böser Mensch, da ich faul mit der IDE bin hät ich mir eine {$DEFINE FmxApp} irgendwo über den Uses Code geschrieben.

Wenn man diese Units in mehreren Projekten verwendet (FMX, VCL, Console gemischt), dann viel Spaß, denn dann musst du jede Unit anfassen (DEFINE gilt ja nur innerhalb der Unit).

In den Projektoptionen festgelegt brauchst du nur kompilieren, fertig (egal in wievielen Units du das auch verwendest).


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Seite 1 von 2  1 2      

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