Einzelnen Beitrag anzeigen

Benutzerbild von Puddi
Puddi

Registriert seit: 25. Sep 2005
20 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Kein Zugriff mehr auf Formular

  Alt 29. Sep 2005, 21:22
Ich hab grad noch mal den Debugger drüberlaufen lassen, die Situation lässt sich wie folgt zusammenfassen:

Form1 erzeugt Form5 modal (klappt problemlos):

Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  IF OpenDialog1.Execute
  THEN BEGIN
         AssignFile(Datei,OpenDialog1.FileName);
         Form5:=TForm5.Create(Self);
         TRY
           Form5.ShowModal;
         FINALLY BEGIN
                   Form5.Release;
                   Form5:=NIL;
                 END;
         END;
       END;
 end;
Form5 öffnet dann auf Knopfdruck Form6 und schließt diese nach Löschung der Datenbank wieder. Danach wird automatisch Form3 erzeugt und die dazugehörige Prozedur "TextVerarbeiten" ausgeführt (klappt soweit beides problemlos):

Delphi-Quellcode:
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
  IF MessageDlg('Die bestehende temporäre Datenbank wird dadurch gelöscht. Fortfahren?',mtWarning,mbOkCancel,0) = mrOK
  THEN BEGIN
         Form6:=TForm6.Create(Self);
         TRY
           Form6.Show;
           WITH Temp DO BEGIN
                          Active:=FALSE;
                          EmptyTable;
                          Active:=TRUE;
                        END;
         FINALLY BEGIN
                   Form6.Release;
                   Form6:=NIL;
                 END;
         END;
         Form3:=TForm3.Create(Self);
         TRY
           Form3.Show;
           Form3.TextVerarbeiten;
         FINALLY BEGIN
                   Form3.Release;
                   Form3:=NIL;
                 END;
         END;
       END;
end;
Komisch ist nun, dass Form5 automatisch released wird, und zwar unmittelbar nachdem auch Form3 released wurde. Form5 soll aber geöffnet bleiben (am besten modal) .

Schulligung wenn ich nerve, aber der Fehler steckt in einer Schlüsseltelle des Programms. Leider kann ich erstmal nicht weitermachen, solange dieser Fehler noch da ist.
  Mit Zitat antworten Zitat