ComboBox lista Items zmieniana dynamicznie

0

Chcę zrobić ComboBox z listą towarów zmienianą dynamicznie tzn. że w czasie pisania w kontrolce combobox, w liście rozwijalnej
mają się wyświeltać nazwy towarów rozpoczynające się od wpisanych znaków w kontrolce i to działa, ale w samej kontrolce
text jest pisany od tylu do przodu (na skutek komendy items.clear) jak sobie z tym poradzić ?

procedure TForm35.DBComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
DBcombobox1.Items.Clear;
table4.Filter:='TOWAR = '+'+DBCombobox1.text+'*'+';
table4.First;
while not table4.eof do
begin
DBcombobox1.items.add(table4['TOWAR']);
table4.Next;
end;
end;

0

Przede wszystkim to nie jest kod C/C++, tylko Delphi; Po drugie: co to jest table4? Jakiego to typu?


Jeśli chcesz sobie zrobić takie podpowiedzi, to:

  1. utwórz sobie zmienną klasy TStrings,
  2. załaduj do niej całą zawartość pliku (jeśli w ogóle to masz w pliku),
  3. wyczyść zawartość DBComboBox,
  4. w pętli przeskanuj listę (z utworzonego obiektu klasy TStrings) i jeśli dany item rozpoczyna się na podany przez użytkownika ciąg - dodaj go do listy kontrolki (sprawdź to funkcją Pos/PosEx);
0
furious programming napisał(a):

Jeśli chcesz sobie zrobić takie podpowiedzi, to:

  1. utwórz sobie zmienną klasy TStrings,
  2. załaduj do niej całą zawartość pliku (jeśli w ogóle to masz w pliku),
  3. wyczyść zawartość DBComboBox,
  4. w pętli przeskanuj listę (z utworzonego obiektu klasy TStrings) i jeśli dany item rozpoczyna się na podany przez użytkownika ciąg - dodaj go do listy kontrolki (sprawdź to funkcją Pos/PosEx);

Lepiej/ładniej będzie z tego zrobić klasę dziedziczącą po TComboBox...

TForm35

Bardzo ciekawe nazewnictwo form.

0
-123oho napisał(a)

Lepiej/ładniej będzie z tego zrobić klasę dziedziczącą po TComboBox...

Owszem - lepiej, ale myślę, że sobie z tym nie poradzi biorąc pod uwagę fakt, że autor wątku nawet nie wie w jakim języku pisze...

0

Może zamiast Clear usuń elementy "ręcznie" jeden po drugim.

1 użytkowników online, w tym zalogowanych: 0, gości: 1