Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Übergabe von Variablen an untergeordnetes Form (https://www.delphipraxis.net/65851-uebergabe-von-variablen-untergeordnetes-form.html)

webseal 21. Mär 2006 13:32


Übergabe von Variablen an untergeordnetes Form
 
Hallo,

ich habe eine WinForms-Anwendung mit 2 Forms. Das 1. Form frmMain erzeugt das 2. Form frmChild und übergibt eine Variable mit einem Datenbank-Connection String an dieses Form.

Der Sourcecode funktioniert zwar, allerdings frage ich mich, ob meine Lösung aus OOP und .NET Gesichtspunkten wirklich der richtige und "elegante" Weg ist, um eine Variable an ein untergeordnetes Form zu geben. Den unten gezeigten Sourcecode habe ich aus Vereinfachungsgründen abgespeckt.

Wäre schön, wen ihr mir ein paar Kommentare dazu schicken könnt oder ein paar Hinweise wie ihr das gelöst hättet.

Delphi-Quellcode:
unit main;
type
  frmMain = class(System.Windows.Forms.Form)
   ...
  private
    ...
     //properties
     FConnStr : System.String;

     //property procedures
     procedure setConnStr(const Value: System.String);
    ...
  public
    property ConnStr: System.String read FConnStr write setConnStr;
    constructor Create;
  end;

procedure frmMain.TWinForm_Load(sender: System.Object; e: System.EventArgs);
begin
   setConnStr('Testwert');
end;

procedure frmMain.btnChild_Click(sender: System.Object; e: System.EventArgs);
begin
  with frmLernen.Create do begin
     ConnectionString:=ConnStr;
     ShowDialog;
   end;
end;


unit Child;
type
  frmChild = class(System.Windows.Forms.Form)
     ...
  private
     ...
     FConnectionString : System.String;

     ...
     procedure setConnectionString(const Value: System.String);
  public
    property ConnectionString: System.String read FConnectionString write setConnectionString;
    constructor Create;
  end;

procedure frmLernen.frmLernen_Load(sender: System.Object; e: System.EventArgs);
begin
   Connection.ConnectionString := ConnectionString;
end;

procedure frmLernen.setConnStr2(const Value: System.String);
begin
   FConnStr2 := Value;
end;
Grüße
webseal

webseal 22. Mär 2006 10:16

Re: Übergabe von Variablen an untergeordnetes Form
 
Hat keiner eine Meinung dazu ? :hi:

webseal

Khabarakh 22. Mär 2006 12:13

Re: Übergabe von Variablen an untergeordnetes Form
 
Der Zugriff über eine Property (oder ein Event) ist schon einmal der richtige Weg :) . Eleganter kann es IMO nur bei speziellen Problemen gehen.
Wenn ich deines allerdings richtig interpretiere und ConnectionString immer nur direkt nach dem Konstruktor zugewiesen wird, würde ich statt der Property einfach einen Konstruktor mit einem Parameter nutzen.

webseal 23. Mär 2006 15:38

Re: Übergabe von Variablen an untergeordnetes Form
 
Konstruktor ist eine sehr gute Idee :coder2:
Werd ich gleich mal probieren.

Danke

webseal


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 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