AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TComboBox.OnChange: Wiederholten Aufruf durch Auswahl des selben Items verhindern?
Thema durchsuchen
Ansicht
Themen-Optionen

TComboBox.OnChange: Wiederholten Aufruf durch Auswahl des selben Items verhindern?

Ein Thema von PeterPanino · begonnen am 9. Jan 2021
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

TComboBox.OnChange: Wiederholten Aufruf durch Auswahl des selben Items verhindern?

  Alt 9. Jan 2021, 17:13
Wenn man in einer TComboBox-Dropdown-Liste mehrmals hintereinander denselben Eintrag auswählt, wird jedesmal wieder der OnChange-Event aufgerufen. Eigentlich steht das ja im Widerspruch zur semantischen Bedeutung des Wortes "Change", denn es findet beim wiederholten Aufruf desselben Eintrages ja kein "Wechsel" der Eigenschaft ItemIndex statt.

Um zu verhindern, dass beim wiederholten Aufruf desselben Eintrages die Aktion im OnChange Event-Handler wiederholt aufgerufen wird, verwende ich folgenden Code:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  cbbTest.Tag := cbbTest.ItemIndex;
end;

procedure TForm1.cbbTestChange(Sender: TObject);
begin
  if cbbTest.Tag <> cbbTest.ItemIndex then
  begin
    cbbTest.Tag := cbbTest.ItemIndex;

    // diese Aktion wird nur bei Auswahl eines ANDEREN Eintrages ausgeführt:
    CodeSite.Send('TForm1.cbbTestChange: ', cbbTest.Items[cbbTest.ItemIndex]);
  end;
end;
Hier ist ein einfaches Projekt, welches das demonstriert:

ComboBoxTest.zip

Es wäre wünschenswert, wenn man den Aufruf von OnChange bei der wiederholten Auswahl desselben Eintrages durch simples Setzen einer Eigenschaft in der ComboBox verhindern könnte. Kennt jemand eine solche ComboBox?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz