AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox lookup refresh Items

Ein Thema von jheinz · begonnen am 16. Jan 2014 · letzter Beitrag vom 17. Jan 2022
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.505 Beiträge
 
Delphi 12 Athens
 
#14

AW: Combobox lookup refresh Items

  Alt 16. Jan 2022, 10:27
Es gibt ja mehrere Varianten zum Füllen:
* direkt beim Erstellen/Laden der Form und dann unverändert
* irgendwann, aber nie während, bzw. kurz bevor aufgepoppt wird
* im OnClick, bzw. OnDropDown
* während schon offen ist

Erstmal zur VCL:
* TComboBox kein Problem
* TComboBoxEx geht garnicht, sobald ich einmal Items.Clear hatte (im Debugger kommt sogar eine Exception)

* erstaunlich, gab es kein Clear und es gab noch nie Items (leer erstellt), dann geht bei Beiden das Dropdown mit einer Leerzeile auf
* im FMX geht das DropDown nicht auf, wenn es nichts gibt (hätte ich von Windows auch fast erwartet)

Delphi-Quellcode:
// ComboBox1.OnDropDown + ComboBoxEx1.OnDropDown
procedure TForm5.ComboBox1DropDown(Sender: TObject);
  ComboBox1.Items.Clear;
  ComboBoxEx1.Items.Clear;
  Timer1.Tag := 10;
  Timer1.Enabled := True;
  //Timer1Timer(nil); // egal ob sofort auf, also erstmal ohne einen Eintrag, oder ob nicht leer ... kein Unterschied
end;

// Timer1.OnTimer mit Timer1.Enabled=False
procedure TForm5.Timer1Timer(Sender: TObject);
begin
  //ComboBox1.Items.Add(Timer1.Tag.ToString);
  //ComboBoxEx1.Items.Add(Timer1.Tag.ToString);
  SendTextMessage(ComboBox1.Handle, CB_ADDSTRING, 0, Timer1.Tag.ToString);
  SendTextMessage(ComboBoxEx1.Handle, CB_ADDSTRING, 0, Timer1.Tag.ToString);
  Timer1.Tag := Timer1.Tag - 1;
  if Timer1.Tag = 0 then
    Timer1.Enabled := False;
end;

// ComboBox1.OnCloseUp + ComboBoxEx1.OnSelect
procedure TForm5.ComboBox1CloseUp(Sender: TObject);
begin
  Timer1.Enabled := False;
  ComboBox1.Items.Clear;
  ComboBoxEx1.Items.Clear;
end;
Beim FMX mit TComboBox oder TComboEdit
* beim TComboEdit funktioniert auch garnichts
* die TComboBox geht nur auf, wenn vor OnPopup Einträge vorhanden waren
* * und es ist, kranker Weise, auch garnicht möglich im OnDropDown die Items zu ändern > es werden die alten Items angezeigt



Fazit:
* vorher DummyItems drin
* bei FMX immer vorher füllen, da das OnDropDown absolut nutzloser Schrott ist
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jan 2022 um 10:58 Uhr)
  Mit Zitat antworten Zitat
 

 

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 15:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz