AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

VCL unit in FMX DataModule

Ein Thema von quaero · begonnen am 17. Nov 2015 · letzter Beitrag vom 17. Nov 2015
Antwort Antwort
quaero

Registriert seit: 25. Apr 2013
38 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:28
Hallo,

ich habe eine Firemonkey-Anwendung (Delphi Seattle) mit einem TDataModule. In diesem Modul befinden sich eine FDConnection und zwei FDQueries. Ich habe mein gesamtes Projekt in einen anderen Ordner kopiert. Nachdem ich das Projekt neu mit Delphi Seattle geöffnet und die Unit mit dem Datenmodul geöffnet habe, hat mir Delphi die Unit FireDAC.VCLUI.Wait in den Interface-Teil eingebunden. FireDAC.FMXUI.Wait war bereits vorhanden. Beim Versuch, das Projekt zu bauen, kommt der Fehler, dass FireDAC.VCLUI.Wait nicht gefunden wird. Wenn ich die Datei in der IDE schließe und diese Unit per Texteditor rausschmeiße, dann kann ich wieder alles bauen. Aber sobald die Datei geöffnet ist, packt Delphi die Unit wieder rein.
Ich habe die Datei schon aus dem Projekt entfernt und wieder hinzugefügt, aber Delphi packt mir die Unit gleich wieder rein.
Hat einer von euch eine Idee, wie ich diese Unit dauerhaft rausbekomme, bzw. warum diese Unit immer wieder reinkommt?
quaero
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.091 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:38
Auf was steht denn ClassGroup deines Datenmoduls? Wahrscheinlich noch auf VCL, oder?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:38
Er scheint zu meinen, dass es sich um eien VCL Projekt handelt
Markus Kinzler
  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
 
#4

AW: VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:41
So sieht ein DataModule aus, wenn es frisch mit FMX erzeugt wurde
Delphi-Quellcode:
unit Unit2;

interface

uses
  System.SysUtils, System.Classes;

type
  TDataModule2 = class(TDataModule)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DataModule2: TDataModule2;

implementation

{%CLASSGROUP 'FMX.Controls.TControl'} // <- Das ist entscheidend

{$R *.dfm}

end.
Und genau dieses {%CLASSGROUP 'FMX.Controls.TControl'} entscheidet nun darüber, was hier benötigt wird, bzw. woran FireDAC erkennt, welches Framework verwendet wird.
  • VCL {%CLASSGROUP 'Vcl.Controls.TControl'}
  • FMX {%CLASSGROUP 'FMX.Controls.TControl'}
  • Persistent {%CLASSGROUP 'System.Classes.TPersistent'}
WICHTIG!
Delphi-Quellcode:
implementation

{%CLASSGROUP 'FMX.Controls.TControl'} // muss direkt unter implementation stehen
Falsch ist z.B.
Delphi-Quellcode:
implementation

uses
  UnitFoo;

{%CLASSGROUP 'FMX.Controls.TControl'} // muss direkt unter implementation stehen
Falsch ist auch
Delphi-Quellcode:
implementation

{ %CLASSGROUP 'FMX.Controls.TControl'} // nicht daran herumfummeln!
Und der TFDGUIxWaitCursor entscheidet zusätzlich über den Eintrag TFDGUIxWaitCursor.Provider welches Unit eingebunden wird.
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)

Geändert von Sir Rufo (17. Nov 2015 um 10:49 Uhr)
  Mit Zitat antworten Zitat
quaero

Registriert seit: 25. Apr 2013
38 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:47
Ihr seid super!

{%CLASSGROUP 'FMX.Controls.TControl'} stand zwar drin, aber Rufos Hinweis traf genau ins Schwarze:

Zwischen IMPLEMENTATION und CLASSGROUP stand noch was. Das habe ich jetzt nach unten verschoben und schon funktioniert es.
Vielen Dank.
quaero
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL unit in FMX DataModule

  Alt 17. Nov 2015, 10:56
Die ClassGroup lässt sich auch bequem im Objektinspektor einstellen, wenn das DataModule selektiert ist. Wird dort trotz existierender ClassGroup-Zeile nichts angezeigt, steht die Zeile an der falschen Stelle.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:59 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