editin on change inde like ile arama fakat bakspace kullanıl

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

editin on change inde like ile arama fakat bakspace kullanıl

Mesaj gönderen delphist »

s.a. yazdığım kodda editin içine girilen veriyi like ile filtreliyorum ama edite girilen bilgi de bakspace ile editteki harf vs. silindiği zaman filtreyi ona göre tekrar yapmıyor....Bunu nasıl yapabilirim...Teşekkürler code aşağıda

Kod: Tümünü seç

var
s:variant;
begin
if edit1.text='' then exit; 
s := edit1.Text;
stokdm.tblmarkamodelq.Active := false;
stokdm.tblmarkamodelq.SQL.Clear;
stokdm.tblmarkamodelq.SQL.Add('select * from tblmarkamodel');
stokdm.tblmarkamodelq.SQL.Add('where "model" like ''%' + s + '%''');
stokdm.dsmarkamodelq.DataSet := stokdm.tblmarkamodelq;
stokdm.tblmarkamodelq.Active := true;

end;
Kullanıcı avatarı
serkan1634
Üye
Mesajlar: 17
Kayıt: 13 Nis 2005 10:37

filtreleme

Mesaj gönderen serkan1634 »

filtreleme işlemini table ile de yapabilirsin alan içindeki veriyi edit te yazılana göre filtreler

Kod: Tümünü seç

 
begin
 table1.filter:=['satılanmal']='+quotedstr(edit1.text);
table1.filter:=true;
end;  
her şey yaratana dönüşten ibarettir
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

s.a.
hocam

Kod: Tümünü seç

stokdm.tblmarkamodelq.Active := false; 
stokdm.tblmarkamodelq.SQL.Clear; 
stokdm.tblmarkamodelq.SQL.Add('select * from tblmarkamodel'); 
stokdm.tblmarkamodelq.SQL.Add('where model like ''%'+Edit1.Text+'%'''); 
stokdm.dsmarkamodelq.DataSet := stokdm.tblmarkamodelq; 
stokdm.tblmarkamodelq.Active := true;
şekilde bir deneyiniz.
iyi çalışmalar.
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Hocam ben query ile daha hızlı olduğu için query ile yapmam gerekiyor...Ayrıca problemimi belki ben tam anlatamamışdır diye düşünüyorum şimdi edite bir şey yazdıın filtereledi bakspace ile bir geriye döndüğünüz zaman yani örneğin aaa yazdığınız bir tanesini sildiniz tekrar o kalan aa ya göre filtrelemesi lazım ama onu yapmıyor...Teşekkürler..
Kullanıcı avatarı
serkan1634
Üye
Mesajlar: 17
Kayıt: 13 Nis 2005 10:37

sorgulama

Mesaj gönderen serkan1634 »

var
s:variant;
begin
if edit1.text='' then exit;
s := edit1.Text;
stokdm.tblmarkamodelq.Active := false;
stokdm.tblmarkamodelq.SQL.Clear;
stokdm.tblmarkamodelq.SQL.Add('select * from tblmarkamodel');
stokdm.tblmarkamodelq.SQL.Add('where "model" like ''%' + s + '%''');
stokdm.dsmarkamodelq.DataSet := stokdm.tblmarkamodelq;
stokdm.tblmarkamodelq.Active := true;

yukarıdaki kodu hangi procedure yazıyosun. bence sorun orda olabilir.
edit in change olayına yazarsan sorun çözülür.bende bi problem yaşatmıyo...
her şey yaratana dönüşten ibarettir
Kullanıcı avatarı
serkan1634
Üye
Mesajlar: 17
Kayıt: 13 Nis 2005 10:37

ayrıca

Mesaj gönderen serkan1634 »

eğer hızlı olsun diyosan örneği kendine göre düzenleyip edit in change olayına yaz hızlı bir filtreleme yapmış olursun.

Kod: Tümünü seç

query1.close;
query1.sql.clear;
query1.sql.add('select * from employee');
query1.sql.add('where stok='+quotedstr(edit1.text));
query1.open;
end;
halledersen bilgimiz olsun saygılar .
edemezsen yardıma devam ederiz..
her şey yaratana dönüşten ibarettir
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

teşekkür ederim ama zaten editin onchange'inde bu kod....Teşekkürler yardımlarınız için...
Kullanıcı avatarı
serkan1634
Üye
Mesajlar: 17
Kayıt: 13 Nis 2005 10:37

x

Mesaj gönderen serkan1634 »

aşağıdaki gibi yazmayı denedinmi?
birde geriye dönüyom derken başka bir forma geçiyosan tekrar girişte refresh ettir belki olabilir..

Kod: Tümünü seç

query1.close; 
query1.sql.clear; 
query1.sql.add('select * from employee'); 
query1.sql.add('where stok='+quotedstr(edit1.text)); 
query1.open; 
end;
her şey yaratana dönüşten ibarettir
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Kod: Tümünü seç

if edit1.text='' then 
  exit;
stokdm.tblmarkamodelq.Active := false;
stokdm.tblmarkamodelq.SQL.Clear;
stokdm.tblmarkamodelq.SQL.Add('select * from tblmarkamodel');
if Trim(edit1.Text)<>'' then
  stokdm.tblmarkamodelq.SQL.Add('where "model" like ''%' + edit1.Text + '%''');
stokdm.dsmarkamodelq.DataSet := stokdm.tblmarkamodelq;
stokdm.tblmarkamodelq.Active := true;
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

table1.filter:='[alanadı]'='+#39+edit1.text+'*'+#39;
end;
bu kısmı formun create olayına yaz

Kod: Tümünü seç

table1.filter:=true;
table1.filteroptions:=[focaseinsensitive];
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

oguz hocam type of expression must be boolen hatası alyıorum...verdiğiniz kodda....Teşekkürler...boolen bir değişkene aktardım ve bunu edit1 yerine yazdım ama hata veriyor yinede...Ayrıca hocam filtreleyeceğğim veri büyük onun için sql kullanmam gerekiyor...
Cevapla