AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...
Thema durchsuchen
Ansicht
Themen-Optionen

FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

Ein Thema von erich.wanker · begonnen am 25. Nov 2015 · letzter Beitrag vom 17. Jul 2025
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

  Alt 3. Dez 2015, 16:53
Hallo,

hier sind ein paar Tips

http://stackoverflow.com/questions/2...dule-is-loaded


Heiko
Heiko

Geändert von hoika ( 3. Dez 2015 um 16:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
270 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

  Alt 16. Jul 2025, 16:04
Alter Thread.. gleiches Problem. Habe ich seit dem Update auf Delphi 12 gefühlt immer öfter.

Öffnet man das Formular, welches eine Komponente aus einem Datenmodul referenziert, ohne das Datenmodule parallel geöffnet zu haben, findet er die Referenz nicht.

Öffne ich das Datenmodule zuerst und anschließend das normale Formular, dann findet er die Referenz.

Das kann doch nicht das gewünschte Verhalten sein? Die Tipps auf Stackoverflow helfen nicht.
Delphi programming is awesome.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

  Alt 16. Jul 2025, 17:05
Man kann Datenmodule auch referenzieren (wenn das Datenmodul in einem Design-Package geladen wird).

Wenn es in der IDE keine Instanz des DatenModuls gibt, z.B. weil diese Unit grade geöffnet ist,
dann erstellt Delphi intern selbst Eine, aber dafür muß es irgendwie die Unit dieses Moduls finden/identifizieren können. (z.B. wenn diese Unit im aktiven Projekt eingebunden ist und die Kennung/Kommentar mit dem Namen existiert)


RegisterFindGlobalComponentProc kann auch verwendet werden, falls es beim DFM-Laden in eigenen Programmen mal knallt.
"Eigentlich" registrieren sich TDataModule-Instanzen selbst, beim AddDataModule, aber manchmal will es doch nicht richtig funktionieren.


Delphi-Quellcode:
// beim Laden des Packages ( procedure Register; )
RegisterFindGlobalComponentProc(FindGlobalModules);

// und beim Entladen des Packages ( finalization )
UnregisterFindGlobalComponentProc(FindGlobalModules);


// globale/einzelne Function oder statische Class-Function.
class function TIDEHelperModul.FindGlobalModules(const Name: string): TComponent; static;
begin
  Result := nil;
  if SameText(Name, 'DM1') then Result := UDM1.DM1;
  if SameText(Name, 'CimDM_SysDB') then Result := UDataModul_SysDB.CimDM_SysDB;
  if SameText(Name, 'DMSys') then Result := USysModule.DMSys;
  //
  // nicht beim Laden / nur vollständig :
  // TReader.ReadRootComponent>FindUniqueName findet sich sonst selber und ändert den Namen -> "DM1" zu "DM1_1" -> Referenzen werden dann nicht mehr gefunden oder falsch gespeichert
  // Grund: siehe TDM1.Create -> globale Instanz vorher setzen, für deren Benutzung während des Ladens der enthaltenen TCimComponent und TCimQuery2
  if Assigned(Result) and ((csReading in Result.ComponentState) or (csDestroying in Result.ComponentState)) then
    Result := nil;
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jul 2025 um 17:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
270 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

  Alt 17. Jul 2025, 08:50
Hi himitsu,

Bei mir tritt das Problem ohne Packages auf. Einfaches Projekt mit Datenmodule und einer DFM die eine Property aus dem Datenmodule referenziert.


Meinst du mit der Kennung / dem Kommentar den Eintrag in der uses in der dpr file?

  MyDataModule in '..\src\MyDataModule.pas{MyDataModule},
EDIT: Ohh man. Das scheint wirklich die richtige Lösung des Problems zu sein!

Im Datenmodule muss der Kommentar hinzugefügt werden, der in der DPR ebenfalls hinter der uses steht. Das nutzt die IDE anscheind, um die referenzierung auflösen zu können.


Delphi-Quellcode:
type
  { MyDataModule}
  TMyXYZDataModule = class(TDataModule)
Das funktioniert nun!
Delphi programming is awesome.

Geändert von pustekuchen (17. Jul 2025 um 08:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: FEHLER: Modul XXX ist mit Modul YYY verknüpft, das im aktuellen Projekt nicht ...

  Alt 17. Jul 2025, 14:11
Delphi-Quellcode:
  MyFormUnit in '..\src\MyFormUnit.pas{MyForm},
  MyDataUnit in '..\src\MyDataUnit.pas{MyDataModule: TDataModule},
Der {Name} wird zum Auflösen diese DatenModul-Referenzen genutzt, aber auch für die Suche via IDE-Insight [F6].
Und der { : Typ} wird vom FormDesigner benötigt, damit er das immer richtig als Datenmodul läd und nicht als Form.

Man könnte in diesen Kommentar auch noch eigenes Zeugs mit Komma anhängen, was dann ebenfalls im IDE-Insight gesucht werden kann.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:34 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