Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kelime Değiştirme
#41
(30-08-2019, Saat: 20:18)Halil Han Badem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(30-08-2019, Saat: 17:59)bünyamin68 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.HALİL HAN BADEM hocam senden bir konu hakkında daha yardım almak istiyorum comboboxa veri tabanından kodlarla veri çekiyorum.Benim istediğim ben comboboxa veri girmeye başladığım anda veriler filtrelensin istiyorum bu filtrelenme işlemi olurken de comboboxun aşağısına benzer kelimeler listelensin tam eşleşme sağlandığında sadece o kelime görünsün istiyorum .kusura bakma isteklerim biraz kafa karıştırı olabilir. kodum var aslında ama sadece ilgili satıra getiriyor süzme yapmıyor kullandığım kod aşağıdadır.
var
i:integer;
begin
With adoquery2 do
begin
close;
sql.clear;
sql.add('SELECT distinct PLAKANO, PLAKANO FROM 2_TARTIM');
open;
combobox1.Clear;
adoquery2.First;
while not adoquery2.Eof do
begin
for i := 1 to adoquery2.FieldCount - 1 do
begin
combobox1.Items.Add(adoquery2.Fields[i].AsString);
end;
adoquery2.Next;
end;

Eğer ki her kelime yazışında sorgu çalıştırırsan bu bir probleme dönüşür. İlk olarak veritabanından gelen bilgileri bir TStringList nesnesine alıp lokalde işlemleri yapmaya başla. TStringList içinden filtreleme yaparak, her kelime yazışında o StringList verisini Combobox ile eşitlersen sadece yazdığın veriler önüne gelecektir. Buna istinaden halihazırda combobox ile yazdığın data AutoComplete özelliği ile seçilmekte. 

TStringList nesnesi içerisinde filtreleme yapmak için şu kaynaklara göz atabilirsin:

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

İyi çalışmalar.

HALİL BADEM hocam öncelikle sana teşekkür etmek istiyorum.Tavsiyelerin sayesinde çok yol katettim.Soruma gelince aşağıdaki vereceğim kodda combobox istediğim gibi filtreleme yapıyor ancak aşağıya açılan liste tek satır şeklinde açılıyor ve değiştiremiyorum combobox özelliklerinden gösterilecek satır sayısını 8 yapıyorum ama genede olmuyor. eminim çok küçük bir hatam vardır ama kafayı taktığımdan dolayı bulamadım.Birde kullandığım yöntem programın sağlıklı çalışması açısından doğru mudur bildirirseniz çok memnun olurum. kodlar şu şekilde 

procedure AramaYap( strAra: String; AdoQuery1:TAdoQuery );
begin
With AdoQuery1 do
begin
Active := False;
SQL.Clear;
SQL.Add('SELECT PLAKANO FROM 1_TARTIM');
SQL.Add('WHERE 1=1');
SQL.Add('and PLAKANO like '+QuotedStr( strAra+'%' ) + 'order by PLAKANO' );
Active := True;
end;
 END;

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
AramaYap( TComboBox(Sender).text, ADOQuery1 );
TComboBox(Sender).Items.Clear;
TComboBox(Sender).AutoComplete :=false;
TComboBox(Sender).DroppedDown  :=TRUE;
while NOT ADOQuery1.Eof do
begin
TComboBox(Sender).Items.Add( ADOQuery1.FieldByName('PLAKANO').AsString );
ADOQuery1.Next;
end;
TComboBox(Sender).SelStart := Length(TComboBox(Sender).Text);
TComboBox(Sender).SetFocus;
end;
Cevapla
#42
merhaba @bünyamin68 ; yazdığın kodları kod bloğu içine alırsan daha okunaklı olur. Cevap yazdığın sayfada Delphi Icon'u (Delphi Kod Ekle) var, onu kullanmalısın.
There's no place like 127.0.0.1
WWW
Cevapla
#43
(30-08-2019, Saat: 20:18)Halil Han Badem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(30-08-2019, Saat: 17:59)bünyamin68 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.HALİL HAN BADEM hocam senden bir konu hakkında daha yardım almak istiyorum comboboxa veri tabanından kodlarla veri çekiyorum.Benim istediğim ben comboboxa veri girmeye başladığım anda veriler filtrelensin istiyorum bu filtrelenme işlemi olurken de comboboxun aşağısına benzer kelimeler listelensin tam eşleşme sağlandığında sadece o kelime görünsün istiyorum .kusura bakma isteklerim biraz kafa karıştırı olabilir. kodum var aslında ama sadece ilgili satıra getiriyor süzme yapmıyor kullandığım kod aşağıdadır.
var
i:integer;
begin
With adoquery2 do
begin
close;
sql.clear;
sql.add('SELECT distinct PLAKANO, PLAKANO FROM 2_TARTIM');
open;
combobox1.Clear;
adoquery2.First;
while not adoquery2.Eof do
begin
for i := 1 to adoquery2.FieldCount - 1 do
begin
combobox1.Items.Add(adoquery2.Fields[i].AsString);
end;
adoquery2.Next;
end;

Eğer ki her kelime yazışında sorgu çalıştırırsan bu bir probleme dönüşür. İlk olarak veritabanından gelen bilgileri bir TStringList nesnesine alıp lokalde işlemleri yapmaya başla. TStringList içinden filtreleme yaparak, her kelime yazışında o StringList verisini Combobox ile eşitlersen sadece yazdığın veriler önüne gelecektir. Buna istinaden halihazırda combobox ile yazdığın data AutoComplete özelliği ile seçilmekte. 

TStringList nesnesi içerisinde filtreleme yapmak için şu kaynaklara göz atabilirsin:

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

İyi çalışmalar.


HALİL HAN BADEM hocam senden bir konu hakkında daha yardım almak istiyorum comboboxa veri tabanından kodlarla veri çekiyorum.Benim istediğim ben comboboxa veri girmeye başladığım anda veriler filtrelensin istiyorum bu filtrelenme işlemi olurken de comboboxun aşağısına benzer kelimeler listelensin tam eşleşme sağlandığında sadece o kelime görünsün istiyorum .kusura bakma isteklerim biraz kafa karıştırı olabilir. kodum var aslında ama sadece ilgili satıra getiriyor süzme yapmıyor kullandığım kod aşağıdadır.
procedure 

AramaYap( strAra: String; AdoQuery1:TAdoQuery );
begin
With AdoQuery1 do
begin
Active := False;
SQL.Clear;
SQL.Add('SELECT PLAKANO FROM 1_TARTIM');
SQL.Add('WHERE 1=1');
SQL.Add('and PLAKANO like '+QuotedStr( strAra+'%' ) + 'order by PLAKANO' );
Active := True;
end;
END;

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
AramaYap( TComboBox(Sender).text, ADOQuery1 );
TComboBox(Sender).Items.Clear;
TComboBox(Sender).AutoComplete :=false;
TComboBox(Sender).DroppedDown  :=TRUE;
while NOT ADOQuery1.Eof do
begin
TComboBox(Sender).Items.Add( ADOQuery1.FieldByName('PLAKANO').AsString );
ADOQuery1.Next;
end;
TComboBox(Sender).SelStart := Length(TComboBox(Sender).Text);
TComboBox(Sender).SetFocus;

(08-09-2019, Saat: 17:31)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.merhaba @bünyamin68 ; yazdığın kodları kod bloğu içine alırsan daha okunaklı olur. Cevap yazdığın sayfada Delphi Icon'u (Delphi Kod Ekle) var, onu kullanmalısın.

Merhaba SimaWB uyarın ve nezaketin için teşekkür ediyorum.Kodları söylediğin gibi düzelttim.
Cevapla
#44
Arkadaşlar tekrardan merhaba projeme yeni bir boyut kazandırdım comboboxtan vazgeçtim işimi editle görmeye karar verdim kodlarıda yabancı bir siteden temin ettim güzelde çalışıyor buradaki sorunum şu

FAutoComplete  := CreateComObject(CLSID_AutoComplete) as IAutoComplete2;
FStrings := TEnumString.Create(listbox5.Items) as IUnknown;
OleCheck(FAutoComplete.SetOptions(ACO_AUTOSUGGEST or ACO_UPDOWNKEYDROPSLIST));
OleCheck(FAutoComplete.Init(edit6.Handle, FStrings, nil, nil));

forma listbox ekliyorum veritabanından bilgileri  listboxa çekiyorum  listbox aracılığı ile de (listbox5.Items) bu kodla bilgileri edite çekiyorum sonuç olarak edit combobox gibi görev yapıyor ve yazıyı yazdığım anda filtreleme işlemi başlıyo fakat edit sayısınca listbox eklemem gerekiyor buda gereksiz kalabalığa neden oluyor. ben nasıl bir kod kullanmalıyım ki (listbox5.Items) bu kodla yazdığım yere koyduğumda listbox gibi araç kullanmadan veritabanındaki bilgileri direk edite çekebileyim. Birde bu kodların tümünü bir fonksiyon olarak kullanabilir miyim. her edite görev vermemde çok yer kaplıyor. Cevaplarınız için şimdiden teşekkür ediyorum.
Cevapla
#45
(09-09-2019, Saat: 15:23)bünyamin68 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Arkadaşlar tekrardan merhaba projeme yeni bir boyut kazandırdım comboboxtan vazgeçtim işimi editle görmeye karar verdim kodlarıda yabancı bir siteden temin ettim güzelde çalışıyor buradaki sorunum şu

FAutoComplete  := CreateComObject(CLSID_AutoComplete) as IAutoComplete2;
FStrings := TEnumString.Create(listbox5.Items) as IUnknown;
OleCheck(FAutoComplete.SetOptions(ACO_AUTOSUGGEST or ACO_UPDOWNKEYDROPSLIST));
OleCheck(FAutoComplete.Init(edit6.Handle, FStrings, nil, nil));

forma listbox ekliyorum veritabanından bilgileri  listboxa çekiyorum  listbox aracılığı ile de (listbox5.Items) bu kodla bilgileri edite çekiyorum sonuç olarak edit combobox gibi görev yapıyor ve yazıyı yazdığım anda filtreleme işlemi başlıyo fakat edit sayısınca listbox eklemem gerekiyor buda gereksiz kalabalığa neden oluyor. ben nasıl bir kod kullanmalıyım ki (listbox5.Items) bu kodla yazdığım yere koyduğumda listbox gibi araç kullanmadan veritabanındaki bilgileri direk edite çekebileyim. Birde bu kodların tümünü bir fonksiyon olarak kullanabilir miyim. her edite görev vermemde çok yer kaplıyor. Cevaplarınız için şimdiden teşekkür ediyorum.

Tüm sorularınıza bu başlık altında mı cevap bulmayı düşünüyorsunuz?
Farklı bir konu için yeni başlık açın.
Delphi Can'dır!
WWW
Cevapla
#46
Özür dilerim DELPHİCAN admin sitenizi yeni yeni kullanmaya başlıyorum neyi nasıl yapmam gerektiği konusunda acemiyim affınıza sığınıyorum bir dahaki sefere daha dikkatli olacağım.
Cevapla
#47
(09-09-2019, Saat: 16:12)bünyamin68 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Özür dilerim DELPHİCAN admin sitenizi yeni yeni kullanmaya başlıyorum neyi nasıl yapmam gerektiği konusunda acemiyim affınıza sığınıyorum bir dahaki sefere daha dikkatli olacağım.

Anlayışınız için teşekkür ederiz.
Delphi Can'dır!
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Bileşen Özelliklerini Değiştirme SercanTEK 7 936 26-10-2018, Saat: 11:10
Son Yorum: SercanTEK
  Overbyte SSLSmtpCli Open SSL path değiştirme ahmet_sinav 5 731 12-10-2018, Saat: 10:23
Son Yorum: ahmet_sinav
  Dil Değiştirme gonulali 2 588 05-06-2018, Saat: 12:05
Son Yorum: gonulali
  sql like ile birden fazla kelime arama erdogan 10 1.375 08-05-2018, Saat: 17:41
Son Yorum: erdogan
  Sayıyı değiştirme serhat 7 1.377 12-06-2017, Saat: 23:51
Son Yorum: serhat



Konuyu Okuyanlar: 2 Ziyaretçi