ListView de arama yaparak aradığım kayıdın tam adını girdiğimde örnek: Ahmet diye kayıtlar içinde var ise o kayıtı "Checked := True" ile seçiyorum, fakat Like ve QuotedStr kullanarak kayıtlar içinde örnek: Ah karakterleri varsa bile nasıl tespit edebilirim...
procedure TForm1.Button3Click(Sender: TObject); // ListView1 arama
var
i: integer;
begin
for i := 0 to ListView1.Items.Count - 1 do
begin
if ListView1.Items[i].SubItems[0] = 'Like ' + QuotedStr('%' + Edit1.text + '%') then
begin
ListView1.Items[i].Checked := True;
ListView1.SetFocus;
Break;
end;
end;
end;
like ile karşılaştırma yapamazsınız. Bu sadece veritabanı motorlarına has bir özelliktir.
Siz burada POS() fonksiyonu kullanarak yapmalısınız. @mia'nın örneği bu linkte tam da istediğini yapıyor. Caption veya SubItem'lerden birinde varsa onu filtreliyor.
procedure TForm1.Edit1Change(Sender: TObject);
var
i: integer;
begin
with ListView1 do
begin
for i := 0 to Items.Count - 1 do
begin
if (pos(Edit1.Text, Items[i].SubItems[0]) > 0) and (length(Edit1.Text) > 0)
then
begin
Items[i].Checked := True;
// Edit1.Text := Items[i].SubItems[0];
end
else
begin
Items[i].Checked := False;
end;
end;
end;
end;
made in brs
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
procedure TForm1.Edit1Change(Sender: TObject);
var
i: integer;
begin
with ListView1 do
begin
for i := 0 to Items.Count - 1 do
begin
if (pos(Edit1.Text, Items[i].SubItems[0]) > 0) and (length(Edit1.Text) > 0)
then
begin
Items[i].Checked := True;
// Edit1.Text := Items[i].SubItems[0];
end
else
begin
Items[i].Checked := False;
end;
end;
end;
end;
made in brs
brs Çok teşekkür ederim, işimi gördü elinize sağlık.
Var
SIRKET:String;
begin
SIRKET:=Form1.DBLookupComboBox1.Text;
ShowMessage(SIRKET);
eyedek.close;
eyedek.sql.clear;
eyedek.sql.Add('IF OBJECT_ID(''QuotedStr('+SIRKET+')..TBLEMANETYDK'') IS NOT NULL');