Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Autocomplete bei ComboBox und Zuweisung durch Programm (https://www.delphipraxis.net/156838-autocomplete-bei-combobox-und-zuweisung-durch-programm.html)

OsCor 16. Dez 2010 15:42

Autocomplete bei ComboBox und Zuweisung durch Programm
 
Hallo!

Eine ComboBox mit Einstellung Autocomplete=True und Style=csDropDown funktioniert bei manueller Eingabe wie gewünscht. Wenn ich ComboBox.Text aber per Zuweisung mit einem Teilstring fülle, funktioniert Autocomplete nicht, obwohl Werte vorhanden sind, die mit diesem Teilstring beginnen.

Was muß/kann ich tun?
Oswald

Bernhard Geyer 16. Dez 2010 15:45

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
Suche "per Hand" in der Items-Auflistung nach passenden Einträgen und setze den ItemIndex selbst.

OsCor 16. Dez 2010 15:50

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
Daran habe ich natürlich auch schon gedacht, aber man hofft ja immer, sich ein paar Zeilen Code sparen zu können, weil jemand eine Lösung oder die Ursache des „Fehlers” kennt…

himitsu 16. Dez 2010 19:10

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
Delphi-Quellcode:
ComboBox1.Text := ...;
i2 := Length(ComboBox1.Text);
for i := 0 to ComboBox1.Items.Count - 1 do
  if AnsiStartsText(ComboBox1.Text, ComboBox1.Items[i]) then
  begin
    ComboBox1.Text := ComboBox1.Items[i];
    Break;
  end;
ComboBox1.SelStart := i2;
ComboBox1.SelLength := 888; // Length(ComboBox1.Items[i]) - i2;
soooooooo schwer isses doch garnicht?

Bummi 16. Dez 2010 21:07

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
oder ganz billig
Delphi-Quellcode:
  Combobox1.Text := 'Hu';
  Combobox1.DroppedDown := true;
  Combobox1.DroppedDown := false;

himitsu 17. Dez 2010 07:23

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
Zitat:

Zitat von Bummi (Beitrag 1068983)
Delphi-Quellcode:
  Combobox1.Text := 'Hu';
  Combobox1.DroppedDown := true;
  Combobox1.DroppedDown := false;

OK, bei den vielen angebotenen Methoden hab'sch das glatt übersehn ... aber 'nen Versuch einfach nach dem .Text:=... über SendMessage+WM_KEY... sowas anzustoßeb, lief leider nicht :cry:

Wobei es manuell auch so gegangen wäre, obwohl dein Code natürlich cooler ist. :stupid:
Delphi-Quellcode:
ComboBox1.Text := ...;
ComboBox1.SelStart := Length(ComboBox1.Text);
for i := 0 to ComboBox1.Items.Count - 1 do
  if AnsiStartsText(ComboBox1.Text, ComboBox1.Items[i]) then
  begin
    ComboBox1.SelText := Copy(ComboBox1.Items[i], Length(ComboBox1.Text) + 1);
    Break;
  end;
'nen IndexOf, für Textanfänge, gibt's anscheinend nicht :?

OsCor 17. Dez 2010 11:23

AW: Autocomplete bei ComboBox und Zuweisung durch Programm
 
Bummis Methode klappt. Toll!

Vielen Dank für Eure Hilfe
Oswald


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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