Zitat von
Alter Mann:
@alzaimar...Warum zwei Button für die gleiche Aufgabe verwenden?
Aber das tun sie doch gar nicht:
Delphi-Quellcode:
procedure TSuchDialog.btnSearchClick(Sender: TObject);
begin
if (cboColumns.Text = '') or (cboFindText.Text = '') then Exit;
if (FSearchObj is TListView) and (not FSearching) then
begin
btSearch.Visible := false;
btStop.Visible := true;
SearchListView;
end;
end;
procedure TSuchDialog.btnStopClick(Sender: TObject);
begin
if (cboColumns.Text = '') or (cboFindText.Text = '') then Exit; // Wird das *wirklich* auch beim Stop verwendet?
Close;
ModalResult := mrOK;
end;
Wenn Du schon sagst,
Zitat von
Alter Mann:
...Der OK-Button soll zwei Funktionen übernehmen
dann solltest/kannst Du genau diese Funktionalität auch so umsetzen. Wozu sollte man sich mit schizophrenen MPS*-Buttons rumschlagen? (*MPS=
Multiple
Persönlichkeits
Störung)
Das hat alles im Übrigen mit Quadcores etc. nichts zu tun, sondern mit der direkten Umsetzung der Funktionalität ("zwei Funktionen"). Es kann auch Knöpfe geben, die ihre Beschriftung ändern, aber in Abhängigkeit der Beschriftung funktional sehr ähnliches ausführen. Dann würde ich auch nur einen Knopf nehmen.
Zu deiner Frage: Neben den üblichen Flüchtigkeitsfehlern ('Dialog' vs. 'SearchDialog') kannst Du das Funktionsergebnis der Methode 'ShowModal' auswerten und nicht den Wert der Eigenschaft 'ModalResult' (kommt aber -denke ich- aufs Gleiche heraus). Bei mir funktioniert es jedenfalls so wie erwartet.
[edit]Der Linker eliminiert übrigens die Zuweisung 'St := ...' sowie 'Rt := ...', da diese irrelevant sind. [/edit]