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.