Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#31

AW: Wie ShowModal Form aus dem HauptForm schließen?

  Alt 22. Mai 2015, 22:16
@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;
  Mit Zitat antworten Zitat