Thema: Delphi Fehler im Programm?

Einzelnen Beitrag anzeigen

Flofu

Registriert seit: 26. Aug 2004
Ort: Singhofen
9 Beiträge
 
Delphi 5 Standard
 
#5

Re: Fehler im Programm?

  Alt 27. Aug 2004, 07:40
Zitat von CenBells:
Hi,

dein problem liegt dort (Hauptprogramm)
Delphi-Quellcode:
procedure TForm1.neuesFormular1Click(Sender: TObject);
var BnForm : TForm2;
begin
  BnForm := TForm2.Create(Self);
  BnForm.Show;
end;
du erzeugst eine Instanz von TForm2 und zwar in der Variable BnForm.
Dein Aufruf in Menu11 lautet aber wie folgt.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var erg : string;
begin
 erg := Form2.PZahl[4].Caption;
Hier willst du auf den Inhalt der Variable Form2 zugreifen.
Da die Instanz aber nicht erzeugt wurde, kracht es.
Also, in Hauptprogramm lieber
Delphi-Quellcode:
procedure TForm1.neuesFormular1Click(Sender: TObject);
begin
  if not assigned(Form2) then // <- damit überprüfst du, ob die instanz bereits erzeugt wurde.
    Form2 := TForm2.Create(Self); // wenn nicht, erzeugst du hier eine
  Form2.Show;
end;
Edit:
Zitat von Bowler:
Ist die Indizierung bei Arrays nicht 0-based? Müsste es denmach nicht ..
Nein in diesem Fall nicht. Flofu hat das Array als ab 1 beginnend deklariert.
Gruß
ken
Hallo, danke erst mal, nach der Umstellung hat es funktioniert. Es lag wohl daran, das ich die Form als BnForm aufgerufen habe, und auf Form2 zugreifen wollte. Aber es hat weder geklappt mit einer Umstellung von BnForm auf Form2 noch im Aufruf als erg := BnForm.PZahl[4].Caption. Es verstehe nicht, wieso diese Instanz noch nicht erzeug sein konnte, da ich den Dialog der darauf zugreift (Unit11) ja erst öffnen kann wenn ich Form2 auf dem Schirm habe. Was mich dann wieder zu meiner Frage bringt, wie ich auf beliebige Variabeln, nicht unbedingt nur Inhalte von Panels o.ä. von einer in die nächste Unit zugreifen kann. Naja erst mal danke.

Mit freundlichen Grüßen Flo
  Mit Zitat antworten Zitat