Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: TDataModule cannot be found...

  Alt 28. Dez 2023, 11:35
Nja, entweder du öffnest dessen Unit
und was sonst auch noch gut funktioniert, wenn man das Datenmodul in ein Designtimepackage packt und dort lädt (Create).

"erstellte" Datenmodule und Forms registrieren sich eigentlich automatisch global, so dass eine Namensauflösung "eigentlich" gut funktioniert,
und ansonsten muß das Datenmodul irgendwie bekannt sein, also manuell erstellt, oder im Designer geladen, oder z.B. über die Objektablage oder die Projektverwaltung gefunden und womöglich automatisch instanziiert (was nicht immer gut geht).

Aber wenn man es dennoch manuell machen will (z.B. auch damit immer die richtige globale Instanz genommen wird und z.B. nicht die Forum im Form-Designer, falls die Unit grade geöffnet ist), dann
Delphi-Quellcode:
// ODER class function TMyHelperClassOrDataModul.FindGlobalModules(const Name: string): TComponent; static;
function FindGlobalModules(const Name: string): TComponent;
begin
  Result := nil;
  if SameText(Name, 'DM1') then
    Result := DM1; // die globale Instanz
  ...
Dann im Register des Packages ein Delphi-Referenz durchsuchenRegisterFindGlobalComponentProc(FindGlobalModules);
und im Finalization natürlich nicht das Delphi-Referenz durchsuchenUnregisterFindGlobalComponentProc vergessen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Dez 2023 um 11:41 Uhr)
  Mit Zitat antworten Zitat