@AlexII
Was du da machst ist vermutlich "falsch" (in Anführungszeichen). Das ShowModal Fenster hat eigentlich einen Sinn. So wie es aussieht nutzt du es aber für die Sperrung eines Fensters. Das kann man aber auch anders lösen.
Hier mal etwas aus meinem alten Beispiele-Ordner.
Form1:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
ModalResult: ShortInt;
begin
ModalResult := ModalForm.ShowModal;
case ModalResult of
mrOk : ShowMessage('Das Modalfenster hat mrOk als Ergebnis.');
mrCancel : ShowMessage('Das Modalfenster hat mrCancel als Ergebnis.');
mrAbort : ShowMessage('Das Modalfenster hat mrAbort als Ergebnis.');
mrRetry : ShowMessage('Das Modalfenster hat mrRetry als Ergebnis.');
mrIgnore : ShowMessage('Das Modalfenster hat mrIgnore als Ergebnis.');
mrYes : ShowMessage('Das Modalfenster hat mrYes als Ergebnis.');
mrNo : ShowMessage('Das Modalfenster hat mrYes als Ergebnis.');
mrAll : ShowMessage('Das Modalfenster hat mrAll als Ergebnis.');
mrNoToAll : ShowMessage('Das Modalfenster hat mrNoToAll als Ergebnis.');
mrYesToAll : ShowMessage('Das Modalfenster hat mrYesToAll als Ergebnis.');
else
{mrNone} ShowMessage('Das Modalfenster hat mrNone als Ergebnis.');
end;
end;
Form2
Delphi-Quellcode:
procedure TModalForm.Button1Click(Sender: TObject);
begin
//ohne Close passiert nichts
end;
procedure TModalForm.Button2Click(Sender: TObject);
begin
Close; //mit Close wird das Fenster geschlossen. ModalResult = mrCancel
//Close setzt das Fenster von sich aus automatisch auf mrCancel
end;
procedure TModalForm.Button3Click(Sender: TObject);
begin
ModalResult := mrOk;
//Close; //Close ist nicht nötig. ModalResult = mrOk
end;
procedure TModalForm.Button4Click(Sender: TObject);
begin
ModalResult := mrCancel;
//Close; //Close ist nicht nötig. ModalResult = mrCancel
end;
procedure TModalForm.Button5Click(Sender: TObject);
begin
ModalResult := mrNone; //Bringt nichts. mrNone bewirkt kein Schleißen
Close; //Close ist nötig. ModalResult = mrCancel
end;
procedure TModalForm.Button6Click(Sender: TObject);
begin
ModalResult := mrYes;
//Close; //Close ist nicht nötig. ModalResult = mrYes
end;