Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Standardverhalten von Dialogen (ab)ändern

  Alt 28. Aug 2008, 20:03
Hallo

Ich habe ein Formular mit dem BorderStyle = bsDialog und zwei Buttons (OK und Abbrechen).
Der OK-Button soll zwei Funktionen übernehmen, wenn Caption = Suche mache das und wenn Caption = Stop mache dies.

Beispiel:
Delphi-Quellcode:
procedure TSuchDialog.btnOKClick(Sender: TObject);
begin
  if (cboColumns.Text = '') or (cboFindText.Text = '') then Exit;
  if btnOK.Caption = '&Suchethen
  begin
    if (FSearchObj is TListView) and (not FSearching) then
    begin
      btnOK.Caption := '&Stop';
      btnCancel.Enabled := false;
      SearchListView;
    end;
  end
  else
  if btnOK.Caption = '&Stopthen
  begin
    Close;
    ModalResult := mrOK;
  end;
end;
Doch egal welche Caption der btnOk hat, der Dialog wird immer geschlossen, auch wenn die erste Bedingung erfühlt ist.

Falls jemand meint CloseQuery hilft hier, das sieht so aus:
Delphi-Quellcode:
procedure TSuchDialog.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := not FSearching;
end;
FSearching wird mit dem Beginn von SearchListView auf 'true' gesetzt und beim beenden der Procedure auf 'false'.

Wie wird es also Richtig gemacht?

Gruß
  Mit Zitat antworten Zitat