(23-08-2019, Saat: 14:41)bünyamin68 Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar şöyle bir soru sormak istiyorum. Combobox'a veri girmeye başlarken kendi içinde bağlı olduğu veri tabanı alanında filtreleme yapıp benzerlerini aşağıya açılır listede göstermesini istiyorum. Yani aranan kelimede tam eşleşme gerçekleştiğinde listede sadece o kelime görünecek çalıştığım projeye benzer bir programda böyle bir şey var ama ben yapmayı beceremedim.Cevaplarınız için şimdiden teşekkür ediyorum.
procedure TForm1.FormCreate(Sender: TObject);
begin
FComboStrings := TStringList.Create;
FComboStrings.Add('Hatay');
FComboStrings.Add('Adana');
FComboStrings.Add('İstanbul');
FComboStrings.Add('Samsun');
FComboStrings.Add('Trabzon');
FComboStrings.Sorted := True;
ComboBox1.AutoComplete := False;
ComboBox1.Items.Text := FComboStrings.Text;
ComboBox1.Sorted := True;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(FComboStrings);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var
Filter: string;
i: Integer;
idx: Integer;
begin
Filter := ComboBox1.Text;
ComboBox1.DroppedDown := True;
ComboBox1.Text := Filter;
ComboBox1.SelStart := Length(Filter);
for i := 0 to FComboStrings.Count - 1 do
if SameText(LeftStr(FComboStrings[i], Length(ComboBox1.Text)), ComboBox1.Text) then
begin
if ComboBox1.Items.IndexOf(FComboStrings[i]) < 0 then
ComboBox1.Items.Add(FComboStrings[i]);
end
else
begin
idx := ComboBox1.Items.IndexOf(FComboStrings[i]);
if idx >= 0 then
ComboBox1.Items.Delete(idx);
end;
end;
Selam Ufak Bir araştırma ile bunu buldum.İşene yarar diye düsünüyorum. Combobox runtime doldurulmuş.Sen Kayıtları dbden cekiyorsundur.Create olayındakıleri silebilirsin.Kolay gelsin