![]() |
2005 net
Suche eine Möglicjkeit wie bei win32
Eine in public deklarierte Variable kann ich in dem Form nützen wenn ich das form in uses deklariere. Wie geht das in net. peter |
Re: 2005 net
:gruebel: Was meinen? In der Unit wo du eine Variable deklarierst, kannst du sie auch nutzen. Bei Public deklaration kannst du auf den Typen auch aus anderen Typen / Units zugreifen, wenn du diese auch in Form einbindest (uses klausel). Du darfst jedoch nciht vergessen, den typen auch als private Variable in der zweiten Unit zu deklarieren, und dort zu initialisieren. (durch ein .create). Oder meinst du globale Variable? Die gibt es jedoch nicht mehr.
|
Re: 2005 net
Gibt es in Net keine möglichkeit einer Variable einen wert zuzuweisen und den dann in allen units zu verwenden.
Gibt es eine alternative wie ich zu Bsp. eine const Verbindungsstring einmal deklariere und dann in allen units verwenden kann. peter |
Re: 2005 net
Du könntest auf einer in einer Unit vorhandenen Komponente zugreifen.
Schau dir dafür mal diesesn ![]() |
Re: 2005 net
[quote]
Schau dir dafür mal diesesn Thread an Habe versucht es nachzustellen.
Delphi-Quellcode:
unit WinForm4;
interface uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data; type TWinForm4 = class(System.Windows.Forms.Form) {$REGION 'Vom Designer verwalteter Code'} strict private /// <summary> /// Erforderliche Designervariable. /// </summary> Components: System.ComponentModel.Container; Label1: System.Windows.Forms.Label; 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 function getLabel : string; procedure SetLabel(lab : string); public property Labeltext : string read getLabel write SetLabel; constructor Create; end; [assembly: RuntimeRequiredAttribute(TypeOf(TWinForm4))] implementation uses winform5; {$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 TWinForm4.InitializeComponent; begin Self.Label1 := System.Windows.Forms.Label.Create; Self.Button1 := System.Windows.Forms.Button.Create; Self.SuspendLayout; // // Label1 // Self.Label1.Location := System.Drawing.Point.Create(64, 64); Self.Label1.Name := 'Label1'; Self.Label1.TabIndex := 0; Self.Label1.Text := 'Label1'; // // Button1 // Self.Button1.Location := System.Drawing.Point.Create(280, 64); Self.Button1.Name := 'Button1'; Self.Button1.TabIndex := 1; Self.Button1.Text := 'Button1'; Include(Self.Button1.Click, Self.Button1_Click); // // TWinForm4 // Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13); Self.ClientSize := System.Drawing.Size.Create(472, 388); Self.Controls.Add(Self.Button1); Self.Controls.Add(Self.Label1); Self.Name := 'TWinForm4'; Self.Text := 'WinForm4'; Self.ResumeLayout(False); end; {$ENDREGION} procedure TWinForm4.Dispose(Disposing: Boolean); begin if Disposing then begin if Components <> nil then Components.Dispose(); end; inherited Dispose(Disposing); end; constructor TWinForm4.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 TWinForm4.Button1_Click(sender: System.Object; e: System.EventArgs); begin with TWinForm5.Create do Show(); end; function TWinForm4.getLabel : String; begin result := Label1.Text; end; procedure TWinForm4.SetLabel(lab : String); begin label1.Text := lab; end; end.
Delphi-Quellcode:
Unterfenster
Delphi-Quellcode:
[b]
unit WinForm5;
interface uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data,WinForm4; type TWinForm5 = 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; Label1: System.Windows.Forms.Label; /// <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 function get_MainForm : TWinForm4; property Mainform : TWinForm4 read get_MainForm; public constructor Create; end; [assembly: RuntimeRequiredAttribute(TypeOf(TWinForm5))] 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 TWinForm5.InitializeComponent; begin Self.Button1 := System.Windows.Forms.Button.Create; Self.Label1 := System.Windows.Forms.Label.Create; Self.SuspendLayout; // // Button1 // Self.Button1.Location := System.Drawing.Point.Create(88, 48); Self.Button1.Name := 'Button1'; Self.Button1.TabIndex := 0; Self.Button1.Text := 'Button1'; Include(Self.Button1.Click, Self.Button1_Click); // // Label1 // Self.Label1.Location := System.Drawing.Point.Create(56, 136); Self.Label1.Name := 'Label1'; Self.Label1.TabIndex := 1; Self.Label1.Text := 'Label1'; // // TWinForm5 // Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13); Self.ClientSize := System.Drawing.Size.Create(292, 272); Self.Controls.Add(Self.Label1); Self.Controls.Add(Self.Button1); Self.Name := 'TWinForm5'; Self.Text := 'WinForm5'; Self.ResumeLayout(False); end; {$ENDREGION} function TWinForm5.get_MainForm : TWinForm4; begin result := Owner as TWinForm4; end; procedure TWinForm5.Dispose(Disposing: Boolean); begin if Disposing then begin if Components <> nil then Components.Dispose(); end; inherited Dispose(Disposing); end; constructor TWinForm5.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 TWinForm5.Button1_Click(sender: System.Object; e: System.EventArgs); begin mainform.Labeltext := 'DD'; end; end. bekomme aber Fehlermeldung mit der icht nichts anfangen Kann . Querverweis nicht in der objektinstanz festgelegt. peter [edit=Luckie]Delphi-Tags. Mfg, Luckie[/edit] |
Re: 2005 net
Habe nur relevantes hineingepackt, dies ist eine Unterform. In dieser Variante muß die gesuchte Form der MDIParent sein! Die Unit des Parents muß in der UsesClausel stehen, bei mir UHauptform und das Fenster THauptform.
Anleitung: Dann wird die Property Mainform deklariert als THauptform. Dies muß eine Property sein, sonnst würde der Getter uns Setter nicht angesprochen werden. Diese werden auch noch in Private deklariert. Als letztes packt man noch flux eine Procedure namens Setter und eine Funktion namens Getter in den Implementation-Teil. Die Hauptform
Delphi-Quellcode:
Hoffe das reicht. Bei mir funktioneirt es zumindest ;-)
unit UUnterform;
interface uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data, UHauptform; type THauptform= class(System.Windows.Forms.Form) private function getter : THauptform; procedure setter (Form : THauptform); property Mainform : THauptform read getter write setter ; end; implementation uses UBuecher; function TBuecher.getter : THauptform; begin result := MDIParent as THauptform; end; procedure TBuecher.setter(Form : THauptform); begin MDIParent := Form; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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