Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Array an andere Formulare übergeben
ggehrma - Mi 29.06.05 17:39
Titel: Array an andere Formulare übergeben
Hallo,
Ich möchte eine Array-Variable, die ich in meinem Hauptformular definiert habe auch an meine Nebenformulare weitergeben. Geht das irgendwie? Wenn nicht, wie kann ich mein Problem dann lösen? Das Array einfach im Public-Teil des Hauptformulars zu definieren funktioniert leider nicht. Im Nebenformular kann ich dann leider trotzdem nicht auf das Array zugreifen.
Danke.
mfg, ggehrma
Fabian W. - Mi 29.06.05 17:45
Sollte gehen. Du musst das array dann so aufrufen:
Delphi-Quelltext
1:
| x := MainForm.testarray[1] |
ggehrma - Mi 29.06.05 17:49
Und genau das funktioniert nicht. Hab ich nämlich schon längst ausprobiert.
Fabian W. - Mi 29.06.05 17:52
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure BTKlicken(Sender: TObject); procedure BXKlicken(Sender: TObject); private public
bt : array[1..100] of TBitBtn; bx : array[1..20] of TGroupBox;
BTExst: array[1..100] of boolean; BXExst: array[1..20] of boolean; BTPreis: array[1..100] of currency; BTshct: array[1..100] of string; BTVsbl: array[1..100] of boolean; end; var Form2: TForm2;
implementation
uses Unit1, Unit4, Unit3, Unit10;
{$R *.dfm} |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if Form2.BTshct[hbt] = '' then begin end else begin Form2.bt[hbt].Caption := '&'+Form2.btshct[hbt]+': '+Form2.bt[hbt].Caption; end; |
funzt bei mir enwandfrei. WElche D version verwendest du?
ggehrma - Mi 29.06.05 21:39
verwende D7.0 Enterprise
ggehrma - Do 30.06.05 14:38
Hm, okay. Habe grade gemerkt, dass ich die Array-Werte aus dem Hauptformular zwar vom Nebenformular aus verändern kann, aber sie dort nicht auslesen kann. Genau das muss ich aber machen.
Bitte helft mir.
mfg, ggehrma
ManuelGS - Do 30.06.05 14:51
du erstellst deine arrays vom hauptformular einfach als globale variablen, d.h. vor dem implementation-teil.
im nebenformular dann im implementation-teil "uses form1". jetzt kannst du die variable normalerweise <global> in beiden formularen benutzen.
bsp:
unit2: (Nebenform.)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var Form2: TForm2; hans:integer;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject); begin hans:=3; end; |
unit1: (Hauptform.)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin showmessage(inttostr(hans)); hans:=5; showmessage(inttostr(hans)); end; |
ggehrma - Do 30.06.05 16:53
Problem hat sich erledigt. Fehler lag woanders dran. Trotzdem danke für die vielen Antworten.
mfg, ggehrma
Fabian W. - Do 30.06.05 17:05
Wo denn?
ggehrma - Do 30.06.05 17:09
Hatte fälschlicher Weise mein Nebenformular mit dem Ereignis OnCreate statt OnShow aufgerufen. Dadurch wurde natürlich der Code des Nebenformulars schon vor dem eigentlichen Aufruf abgearbeitet und nicht dann, wann er eigentlich sollte.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!