AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung UNITS für VCL und FMX gleichzeitig verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

UNITS für VCL und FMX gleichzeitig verwenden

Ein Thema von bernhard_LA · begonnen am 16. Mai 2014 · letzter Beitrag vom 20. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#1

UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 07:57
ich möchte div. Units von mir erstellt für Anwendungen unter dem VCL Framework in Zukunft auch mit Anwendungen im FMX Framework verwenden .
Die Plattform spezifischen Units von Delphi verhindern aber diesen Ansatz

Delphi-Quellcode:

   interface

   uses
   Vcl.Controls, Vcl.Forms, Vcl.StdCtrls, System.SysUtils, ....

Ferner weigert sich Delphi folgenden VCL Code procedure zu kompilieren

Delphi-Quellcode:

   procedure Write2Memo ( ...... ; aMemo : Tmemo ) ;
Als Fehlermeldung kommt FXM.Memo nicht kompatibel zu VCL.Memo.
Kann man über ??????? abfragen ob die Anwendung für die FMX oder VCL PLatform ist und entsprechend die Units einbinden/Anpassen ?
Wenn die Lösung dann Lazarus als weitere Compiler Option unterstützt , wäre dieser Ansatz ggf. in der Zukunft auch ein Thema für uns.
Das ganze soll natürlich für "Komponenten" funktionieren die auf allen Plattformen identisch sind, als amemo.lines.add(...)
sobald ich Plattform spezifischen Code habe ist hier Schluss.
;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:13
Ich hab zwar kein Firemonkey, aber müsste das nicht über div. IFDEFs zu machen sein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:15
aber finde ich heraus ob die Hauptanwendung im FXM Framework jetzt erstellt wird ?
  Mit Zitat antworten Zitat
matthiaskary

Registriert seit: 28. Okt 2013
Ort: Hamburg
24 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:22
Hallo,

z.b. kannst du das so abfragen.

{$IF DECLARED(FireMonkeyVersion)}
{$DEFINE HAS_FMX}
{$ELSE}
{$DEFINE HAS_VCL}
{$IFEND}
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:28
Ich bin mir nicht sicher ob ich das Problem richtig verstehe aber vllt. reicht es in deinem Fall schon wenn du vor explizit VCL.TMemo, bzw. FMX.TMemo bei Deklarationen.

Kombiniert mit einem IFDEF sollte das dann auf jeden Fall hinhauen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:29
Ich lege Dir mal diese Seite ans Herz. Die sollte alle Deine Fragen beantworten.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:43
Sollte man nicht besser das ausnutzen, wofür diese Prefixe eingeführt wurden?

Man gibt im Projekt die entsprechenden Namespaces an (sollten sogar schon standardmäßig an sein, bei neueren Projekten)
und schreibt in die units nur noch Controls, Forms, StdCtrls, {System.}SysUtils, .... rein.

Delphi findet nun die Units nicht und probiert die angebenen Namespaces durch, wobei in der VCL-Anwendung
dann das Vcl.Controls, Vcl.Forms, Vcl.StdCtrls, {System.}SysUtils, .... bei raus komm

und bei einer FireMonkey das Fmx.Controls, Fmx.Forms, Fmx.StdCtrls, {System.}SysUtils, .... .

(System sollte in beiden Anwendungen definiert sein)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 08:52
Das mit den Namespaces hat bei mir noch nie richtig funktioniert eher nur sporadisch. Ich gehe lieber über die Compilerschalter, das ist aus meiner Sicht sicherer und ich kann es besser definieren.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 09:46
Ich vermute mal, du hast UI und Logik zu dicht zusammen.

Eigentlich gibt es keinen Grund direkt in ein Memo zu schreiben ...

Man schreibt einfach in eine StringList und diese StringList zeigt die Form einfach in dem Memo an.

Hmmm, eigentlich macht man das noch etwas anders ....

In eine Struktur wird ein Eintrag erstellt (Record oder Klassen-Instanz ist egal).
Aus diesem/diesen Einträgen wird dann zur Visualisierung eine StringList gefüllt.
Die Form zeigt im Memo dann den Inhalt dieser StringList an.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#10

AW: UNITS für VCL und FMX gleichzeitig verwenden

  Alt 16. Mai 2014, 10:09
Man schreibt einfach in eine StringList und diese StringList zeigt die Form einfach in dem Memo an.
... oder man definiert Write2Memo mit einem TStrings-Parameter anstelle von TMemo und übergibt Memo1.Lines an diesen. Etwa so:
Delphi-Quellcode:
procedure Write2Memo(ALines: TStrings);
begin
  ALines.BeginUpdate;
  try
    ALines.Add('111');
    ALines.Add('222');
    ALines.Add('333');
  finally
    ALines.EndUpdate;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Write2Memo(Memo1.Lines);
  Write2Memo(ListBox1.Items); // Geht dann z.B. auch für Listboxen
end;
Uli Gerhardt

Geändert von uligerhardt (16. Mai 2014 um 10:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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