combobox ile iki sütun almam mümkünmü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

combobox ile iki sütun almam mümkünmü

Mesaj gönderen ekin »

kullandığım veri tabanında TurKodu, TurAdi bilgileri var. Bu iki sütunu combobox içine alabilir miyim. Combobox içinde Tür Adı görüntülenecek. Herhangi biri seçildiğinde Tür Kodu ile işlem yapmak istiyorum.
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

TDBComboBOx değilde TComboBox kullanırsan mümkün.

ComboBox.Items.AddObject(TurAdi.AsString,TObject(TurNo.AsInteger));
ile combobox a eklersin

Tersiylede okursun. Yalnız Index e dikkat etmek lazım.
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

Mesaj gönderen ekin »

Combobox içindeki değeri bir değişkene nasıl aktaracağım. Bu bilgilerin içinde TurKodu nu değişkene aktarmam gerekiyor.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba,
TDBLookupCombobox ile yapabilirsiniz,
ListField özelliğine normalde tekbir alan bağlarsınız örneğin,

Kod: Tümünü seç

DbLookup.ListField:='alan1';
ama iki yada daha fazla alan göstermek isterseniz,

Kod: Tümünü seç

DbLookup.ListField:='alan1;alan2;alan3';
Şeklinde kullanabilirsiniz, Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

TDBLookupComboBox ile Ekin in istedigi sey olmaz

Kod: Tümünü seç

 A:=Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
Bu sekilde degiskene geri alirsin yalnız bu bir bellek adresi erisimi Itemindex -1 den buyuk ve ItemCount dan kucuk olmali
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

Mesaj gönderen ekin »

uyguladım. Ancak ilgili kayıtları bulmuyor. Kodları aşağıya aldım


var
i,j:integer;
begin
if combobox1.ItemIndex>-1 then
begin
j:=integer(ComboBox1.items.Objects[ComboBox1.ItemIndex]);
adodataset2.Close ;
adodataset2.commandtext:='';
adodataset2.CommandText :='select * from tur where val(left(turkodu,1))=:bul and len(turkodu)=2';
adodataset2.Parameters.ParamByName('bul').Value :=j;
adodataset2.Prepared :=true;
adodataset2.Open ;
end
else
showmessage('Listede Olmayan Tür Giremezsiniz');

ne hatası olabilir
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Sorgun biraz tuhaf ne yapmak istedigini bilmedigim icin bir sey soyleyemeyecegim.

Değeri aldıktan sonra j değişkeninin değerine bak
showmessage(ınttostr(j));
ile bakabilirsin yada break point koyup wathc penceresine j yi eklersin.
Eğer j doğru değeri alıyorsa sorgunda bir sorun vardır.

Yada gecerli bir TurKodunu sql scriptinde sabit olarak yaz sorguyu calistir sorgu duzgun calisiyorsa j duzkun ayarlanmiyor olabilir.

iki durumuda deneyim yazabilirsin
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

Normal Combobox'a verileri aktarırken bir tane daha combobox oluştur ve visible := false olsun. Döngünde comboboxa turadi verileri aktarılırken diğer cboxa da turkodu verileri aktarılsın. Sıralama aynı olacağı için işlem yaparken turkodunu bulmak için

Kod: Tümünü seç

cTurKodu.Items[cTurAdi.ItemIndex]
komutunu kullan.
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

Mesaj gönderen ekin »

yapmak istediğim olay şu

Tür Kodu ve açıklama bilgisini combobox ile alıyorum. Tür Kodunun değerine göre o tür kodu altında tanımlanan bölüm kodlarını dbgrid ile listelemek isityorum.
Örnek verecek olursan

1 Lise
11 Düz lise
12 Süper Lise
2 Meslek Lisesi
3 Fen Lisesi

Tür kodu 1 karakter olanlar combobox içinde listelenecek. Kullanıcı Lise yi tercih ettiğinde Lise altında yer alan

Düz Lise
ve Süper Lise

dbgridde görüntülenecek. Sorguyu onun için kullandım.
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

Mesaj gönderen ekin »

TurKodu string tipte. J ile aldığım değerler sürekli değişiyor. TurKodu nu string tanımladığım için mi hata veriyor

j:=integer(ComboBox1.items.Objects[ComboBox1.ItemIndex]);

satırında integer yazılan yere string

yazdım bu seferde başka bir ifade yazdı.

ne yapmalıyım
ekin
Üye
Mesajlar: 65
Kayıt: 11 Nis 2006 11:22

Mesaj gönderen ekin »

j değerini sürekli 8 haneli ve devamlı değişen bir rakam olarak veriyor
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
senin aradığın şey dblookupcombobox
yapcağın üç tane bağlantı var
  • (DBLCB=DBLookUpComboBox)
    1. dblcb.listsource:=(burası turleri listelediğin tablonun datasourcesi)
    2. dblcb.listfiesl:=turadi
    3. dblcb.keyfiesl:=turkodu
turkodunu almak içinde
dblcb.keyvalue
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

İlgili kodu gönder istediğin hale sokup geri gönderelim başka türlü olmayacak. Sende benim gibi tuhaf tasarımlar yapıyorsun.

Tür kodu 1 karakter olanlar combobox içinde listelenecek.
Demişsin

Fakat

Kod: Tümünü seç

'select * from tur where val(left(turkodu,1))=:bul and len(turkodu)=2';
Uzunluğu 2 olanları sorgulamışsın.

Kod düzenleme konusunda ciddiyim. Göndermek istersen özele yaz
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

vkamadan ve aslangeri'nin anlattıkları işini görecektir. Hem de hiç kod yazmadan. :!:
Cevapla