Ich bin mir nicht sicher, ob du verstehst, was ein modales Fenster ist, und wie Perlsau es erklärt hat.
Ich glaube fast, er hat das gar nicht gelesen ... da gibt man sich mal so richtig Mühe und versucht das ordentlich zu erklären ...
Egal, ich guck jetzt meinen Film weiter, das ist entspannender
Natürlich kann man eine modale Form auch von ausserhalb schliessen, dazu benötigt man aber z.B. einen Timer.
Aber wozu soll das gut sein? Vielleicht: "Wenn du, Anwender, jetzt nicht innerhalb von 10 Sekunden einen Button drückst, dann nehm ich dir den Dialog wieder weg und du kannst gucken, wo du bleibst!"
Die Fehlermeldung sagt aber aus, dass schon der Aufruf von OfflineForm.ShowModal
fehlschlägt und somit dieser bisher gezeigte Code für den Fehler nicht aber auch absolut gar nicht verantwortlich ist.
Er ruft doch gar nicht ShowModal auf, sondern versucht, ModalResult on OfflineForm von der MainForm aus aufzurufen. Also wenn ich jetzt auf die mainform einen Button setze und dort den Code von AlexII reinkopiere, das Programm starte und diesen Button klicke, passiert da in allen drei Fällen absolut gar nix.
Delphi-Quellcode:
procedure TFormMain.Button1Click(Sender: TObject);
begin
//OfflineForm.Visible := False;
//OfflineForm.ModalResult := mrCancel;
OfflineForm.ModalResult := mrOK;
end;
Ist OfflineForm modal sichtbar, komme ich an diesen Button auf dem Mainform ja gar nicht ran. Ein OnIdle hab ich nicht gefunden, und einen Timer laufen zu lassen, ist mir jetzt zu viel Streß.