AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form + DataModule mehrere Instanzen

Ein Thema von Nersgatt · begonnen am 31. Jul 2017 · letzter Beitrag vom 31. Jul 2017
 
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Form + DataModule mehrere Instanzen

  Alt 31. Jul 2017, 14:37
Es geht auch noch etwas einfacher. Beim Auflösen der Referenzen haben Komponenten der Form-Instanz Vorrang. Hier ein Form mit Referenz auf ein globales Datenmodul, die zur Laufzeit auf die lokale Instanz umgebogen wird.

Delphi-Quellcode:
type
  TMyDataModule = class(TDataModule)
    HostdbConnection: TFDConnection;
    TestTable: TFDQuery;
  private
  public
  end;

var
  MyDataModule: TMyDataModule;
Delphi-Quellcode:
  
  object DataSource1: TDataSource
    DataSet = MyDataModule.TestTable
    Left = 304
    Top = 64
  end
Delphi-Quellcode:
type
  TForm198 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
  private
    FMyDataModule: TMyDataModule;
  protected
    property MyDataModule: TMyDataModule read FMyDataModule;
  public
    constructor Create(AOwner: TComponent); override;
  end;

constructor TForm198.Create(AOwner: TComponent);
begin
  FMyDataModule := TMyDataModule.Create(Self);
  { Wenn die globale Instanz von MyDataModule hier bereits existiert, wird der Name dieser lokalen Instanz beim Laden der DFM verändert.
    Daher setzen wir den wieder zurück, sonst werden die Referenzen nicht richtig aufgelöst. Da es eine lokale Instanz des Forms ist, führt das hier zu keinerlei Kollisionen }

  FMyDataModule.Name := 'MyDataModule';
  { Wichtig! Das muss vor dem inherited geschehen. } 
  inherited;
end;

EDIT: Die Forms kann man damit wieder ganz normal über TForm198.Create(???) erzeugen und muss sich um die Datenmodule gar nicht kümmern.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe (31. Jul 2017 um 15:10 Uhr) Grund: Form-Erzeugung
  Mit Zitat antworten Zitat
 


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 11:33 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