Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Für jedes Child eine variable (https://www.delphipraxis.net/51877-fuer-jedes-child-eine-variable.html)

citybreaker 21. Aug 2005 09:49


Für jedes Child eine variable
 
Hallo,

ich erzeuge verschieden viele MDI Child in meinem Projekt
und möchte eine variable xy haben, bei der im jedem Child
etwas anderes drinne steht. Während der Laufzeit möchte ich
mit ActiveMDIChild oder anders auf die Variable zugreifen und
event. ändern können. Hab nur leider keine Idee wie ich das
machen könnte.

x000x 21. Aug 2005 10:55

Re: Für jedes Child eine variable
 
Moin moin,

eine Idee wäre, für jedes MDIChild eine globale Variable im MDIMainForm zu halten.
Jetzt kannst du zu jederzeit von jedem MDIChild auf diese Zugreifen und auch
ggf. ändern.

citybreaker 21. Aug 2005 11:05

Re: Für jedes Child eine variable
 
Das Problem ist ich möchte auch aus anderen Units auf
die Variable zugreifen.

x000x 21. Aug 2005 11:29

Re: Für jedes Child eine variable
 
Ok,
wenn du in jedem MDIChild die MDIMainForm in die uses mit aufnimmst, funktioniert
mein Vorschlag... macht natürlich nur Sinn, wenn die Anzahl der zu erstellenden
MDIChilds bekannt/begrenzt ist

Zitat:

Zitat von citybreaker
ich erzeuge verschieden viele MDI Child in meinem Projekt

Erzeugst du mehrere Childs von der gleichen Klasse oder immer nur eins?
Muss die Variable nach dem Zerstören des Childs noch bekannt sein?

mschaefer 21. Aug 2005 12:53

Re: Für jedes Child eine variable
 
Moin, wenn es nur eine Integer sein darf, dann nimm die Tag-Eingenschaft des MDI-Cild-Forms. Grüße //Martin

r2c2 21. Aug 2005 13:08

Re: Für jedes Child eine variable
 
Wie wärs mit nem public-Feld bzw. ner public-property in der Child-Klasse?

mfg

Christian

citybreaker 21. Aug 2005 14:49

Re: Für jedes Child eine variable
 
Ne die anzahl der MDI Childs ist nicht beaknnt. Ich möchte einen String als
variable haben. Die Childs sind alle von der selben Klasse.
Wenn das Child zerstöhrt wurde, wird die Variable von demjenigen Child nicht
mehr gebraucht. Möchte nur alt als Beispiel, das in einem Label immer
der text der Variable steht dessen Fenster grad Aktiviert ist.


Zitat:

Wie wärs mit nem public-Feld bzw. ner public-property in der Child-Klasse?
Davon habe ich noch nichts gehört, was genau ist das?

r2c2 21. Aug 2005 15:11

Re: Für jedes Child eine variable
 
Zitat:

Zitat von citybreaker
Zitat:

Wie wärs mit nem public-Feld bzw. ner public-property in der Child-Klasse?
Davon habe ich noch nichts gehört, was genau ist das?

Wenn du weißt, was ne Klasse ist, sollte das aber bekannt sein:
Delphi-Quellcode:
TMDIChild = class(TForm)
private
...
public
  DeineVar: Integer; // Du kannst jetzt in jedem Child auf diese Variable separat zugreifen
end;
oder:
Delphi-Quellcode:
TMDIChild = class(TForm)
private
  FDeineVar: Integer;
public
  property DeineVar: Integer read FDeineVar write FDeineVar; // Du kannst jetzt in jedem Child auf diese Variable separat zugreifen
end;
Falls dir das nicht bekannt vorkommt, empfehle ich dir n Grundlangentutorial.

mfg

Christian

citybreaker 21. Aug 2005 18:35

Re: Für jedes Child eine variable
 
--- Edit ---
Kann aus der unit main weder auf DeineVar noch auf DeineVarF zugreifen.

x000x 21. Aug 2005 21:02

Re: Für jedes Child eine variable
 
Moin moin,

also mein Vorschlag von oben kannste dann wieder vergessen...

Zitat:

Zitat von citybreaker
Kann aus der unit main weder auf DeineVar noch auf DeineVarF zugreifen.

Dann haste etwas falsch gemacht...
Beispiel:
Delphi-Quellcode:
// ..
  private

    { Private-Deklarationen }
    procedure CreateMDIChild(const Name: string);
    procedure GetMeineVar;
  public
// ..

procedure TMainForm.CreateMDIChild(const Name: string);
var
  Child: TMDIChild;
begin
  Child := TMDIChild.Create(Application);
  Child.Caption := Name;
  CHild.DeineVar := 'BlaBlu';
end;

// ..

procedure TMainForm.GetDeineVar;
var i : Integer;
begin
   for i:=0 to MDIChildCount -1 do begin
      ShowMEssage(TMDIChild(MDIChildren[i]).DeineVar);
   end;
end;
und in deiner Unit mit Klasse TMDIChild deklarierst du
wie schon von r2c2 gesagt, deine Var
Delphi-Quellcode:
// ..
  public
    DeineVar : String;
  end;
// ..


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 1 von 2  1 2      

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