ListView de Like ve QuotedStr komutlarını kullanma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen Serhat »

Merhabalar,

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...

Kod: Tümünü seç

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;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen mrmarman »

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.
Resim
Resim ....Resim
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen brs »

İşinize yarıya bilecek güzel bir uygulama ben kullanıyorum, isterseniz "ListView1.Items.Clear;" de ekleye bilirsiniz....

Kod: Tümünü seç

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...
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen Serhat »

brs yazdı:İşinize yarıya bilecek güzel bir uygulama ben kullanıyorum, isterseniz "ListView1.Items.Clear;" de ekleye bilirsiniz....

Kod: Tümünü seç

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.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen ozcank »

ben bu satırda buldurmak istedim ama bir türlü bulduramadım. Yardımcı olur musunuz?

Kod: Tümünü seç


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');

Kod: Tümünü seç

eyedek.sql.Add('IF OBJECT_ID(''QuotedStr('+SIRKET+')..TBLEMANETYDK'') IS NOT NULL');
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: ListView de Like ve QuotedStr komutlarını kullanma

Mesaj gönderen ertank »

Merhaba,

Sayın ozcank, sorunuz anlaşılmıyor. Daha detaylı bir şekilde, mümkünse yeni bir başlık altında sorabilir misiniz?

Teşekkürler.
Cevapla