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 = '&Suche' then
begin
if (FSearchObj is TListView) and (not FSearching) then
begin
btnOK.Caption := '&Stop';
btnCancel.Enabled := false;
SearchListView;
end;
end
else
if btnOK.Caption = '&Stop' then
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ß