Delphi-PRAXiS
Seite 2 von 2     12   

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 Auf die Eigenschaften eines Forms zugreifen (https://www.delphipraxis.net/37437-auf-die-eigenschaften-eines-forms-zugreifen.html)

Robert_G 13. Jan 2005 12:46

Re: Auf die Eigenschaften eines Forms zugreifen
 
Zitat:

Zitat von HomerGER
und jetzt möchte ich in meiner DB-Unit darauf zugreifen.

Hängt wohl von der Klasse ab, in der du deine DB-Logik hast.
Wie übergibst du ihr dein Form: Im Constructor? als Property? ,...

Zitat:

Zitat von HomerGER
ich dachte es geht wie bei VCL
Delphi-Quellcode:
MainForm.sqlConnection.Connectionstring := 'dbirgendwo'

Du willst ihr also nicht dein Form, sondern nur die Connection übergeben...

Wobei ich zugeben muss: Ich weiß jetzt nicht ob ich dich verstehe? ;)

p.s.: Der Code weiter oben war nur als absolut abstraktes Beispiel zum Instanzieren eines Forms gedacht. ;)

HomerGER 13. Jan 2005 12:55

Re: Auf die Eigenschaften eines Forms zugreifen
 
Hallo
Hier mal was ich habe


Meine Haupt_Unit HF_Unit
Code:
unit HF_Unit;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  System.Windows.Forms, System.Data, System.Data.SqlClient, System.Configuration,
  DB_Unit;

type
  HF = class(System.Windows.Forms.Form)
  {$REGION 'Vom Designer verwalteter Code'}
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    Button1: System.Windows.Forms.Button;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers -
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
    procedure Button1_Click(sender: System.Object; e: System.EventArgs);
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
    { Private-Deklarationen }
  public
    Connection1: System.Data.SqlClient.SqlConnection;
    constructor Create;
  end;

  [assembly: RuntimeRequiredAttribute(TypeOf(HF))]

implementation

{$AUTOBOX ON}

{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers --
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure HF.InitializeComponent;
begin
  Self.Connection1 := System.Data.SqlClient.SqlConnection.Create;
  Self.Button1 := System.Windows.Forms.Button.Create;
  Self.SuspendLayout;
  // 
  // Connection1
  // 
  Self.Connection1.ConnectionString := 'data source="D:\HomersPowerShop\1_Pr' +
  'ojekt\1_Programm\DB\DB.mdb";persist security info=False';
  // 
  // Button1
  // 
  Self.Button1.Location := System.Drawing.Point.Create(248, 240);
  Self.Button1.Name := 'Button1';
  Self.Button1.TabIndex := 0;
  Self.Button1.Text := 'Button1';
  Include(Self.Button1.Click, Self.Button1_Click);
  // 
  // HF
  // 
  Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
  Self.AutoScroll := True;
  Self.ClientSize := System.Drawing.Size.Create(744, 542);
  Self.Controls.Add(Self.Button1);
  Self.Name := 'HF';
  Self.StartPosition := System.Windows.Forms.FormStartPosition.CenterScreen;
  Self.Text := 'WinForm';
  Self.ResumeLayout(False);
end;
{$ENDREGION}

procedure HF.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

constructor HF.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

procedure HF.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
  Datenbank_Verbinden_DBU; Hier die Datenbankverbinden
end;

end.

Code:
unit DB_Unit;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  System.Windows.Forms, System.Data, System.IO, System.Data.SqlClient;

//Type (öffentlich)

//Konstante (öffentlich)

//Variabele (öffentlich)

//Proceduren (öffentlich)
Procedure Datenbank_Verbinden_DBU();

//Functionen (öffentlich)

implementation

uses
  HF_Unit;


//##############################################################################
//##############################################################################
//
//Datenbank verbinden
//
//##############################################################################
//##############################################################################
Procedure Datenbank_Verbinden_DBU();
var
db_file_s : String;
verbindungs_string_s : String;
begin
  //Datenbank File
  db_file_s := Application.StartupPath + '\DB\' + 'db.mdb';

  if System.IO.File.Exists(db_file_s) then
  begin
    verbindungs_string_s := 'data source=' + db_file_s + ';persist security info=False';

    HF.Create.Connection1.ConnectionString := verbindungs_string_s;

  end
  else
  begin
    MessageBox.Show(db_file_s);
  end;
end;

end.

ich weiß jetzt aber nicht ob "HF.Create.Connection1.ConnectionString" richtig ist

Robert_G 13. Jan 2005 14:57

Re: Auf die Eigenschaften eines Forms zugreifen
 
ähm nunja...
.Net ist eine reine OOP-Umgebung. Delphi.Net lässt zwar solche Dinge wie lose stehende Funktionen zu, mit .Net Programmierung hat das herzlich wenig zu tun. (sowas war auch schon unter Delphi32 unschön ;) )
Aber da du anscheinend nicht viel für OOP übrig hast...

Du brauchst auf jeden Fall kein Formular, genausowenig brauchst du den Name deiner Connection:
Delphi-Quellcode:
procedure DatenbankVerbindenDBU(const aConnection: IDbConnection);
var
   DatabaseFile        : string;
begin
   //Datenbank File
   DatabaseFile := Application.StartupPath + '\DB\db.mdb';

   if &File.Exists(DatabaseFile) then
      aConnection.ConnectionString := System.String.Format('data source={0};persist security info=False'
                                                           [DatabaseFile])
   else
      MessageBox.Show(DatabaseFile);
end;
In deinem Form:
Delphi-Quellcode:
   DatenbankVerbindenDBU(DeineConnection);

HomerGER 13. Jan 2005 15:17

Re: Auf die Eigenschaften eines Forms zugreifen
 
dank erstmal
aber das löst nicht mein Problem
ich möchte gern aus einer Unit auf die Controls auf einer Form zugreifen
wenn ich zB position für Panel, GroupBoxen usw festlege
wollte ich das gerne in einer eigenen Unit machen und dann über ein Ereignis (z.B onClick)auf der Form zugreifen
gibt es da weg unter net?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.
Seite 2 von 2     12   

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