Combo box sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Combo box sorunu

Mesaj gönderen stnonstop »

Arkadaşlar üstadlar benim şu şekilde bir problemim var. Combo boxlarda 1 satır başına 1 değil 2 değer saklamak istiyorum birinci değer BWM MERCEDES vs gibi kullanıcıya gösterilecek olan bir değer olacak. Bu kısmı ADD() fonksiyonu yardımıyla Items a atarak yapabiliyorum. Ama benim için önemli olan BWM nin ID si örneğin 1 diyelim MERCEDES sinki 13 bu ID numaralarınıda Combobox da saklamak istiyorum Mercedes seçildiğinde benim 13 ID sine BMW seçildiğinde de 1 ID numarasına ulaşmam lazım.

Bunu HTML de ki comboboxda basit şekilde elde edebiliyoruz.

Name = Mercedes; Value = 13
Name = BMW ; Value = 1

gibi bir şekilde hem valuyu hem ismi saklaya biliyorsunuz. Yeri geldiğinde isimle yeri geldiğinde de değerle işlem yapabiliyorsunuz.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Aynı itemsa yazacaksan ikisini de tek birini nasıl seçeceksin?
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

yanlış hatırlamıyorsam jedi comp. setinde 2 sutunlu bir combobox vardı
onu kullanabilirsin..
Kullanıcı avatarı
blacksea
Üye
Mesajlar: 1
Kayıt: 21 Tem 2005 01:39

Mesaj gönderen blacksea »

Merhaba,
önce veritabanında bir tablo hazırla. bu tabloda 2 alan olsun.ilk alana arabano, diğer alanada arabamarkalarını gir.sonra normal combobox yerine lookupcombobox kullan. lookupcombobox kullanarak comboboxta itemsa değerleri kendin girmezsin veritabanındaki bir alanın değerlerini alabilirsin. mesela lookupcomboboxtan mercedesi sectiğinde veritabanındaki tablodaki aktif kayıt mercedes olacağından,bu kayıtta ait numarayı kullanabilirsin
kolay gelsin
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

şu anda aklıma gelen söyle birşey yapabilirsin belki..

iki adet combobox kullan

birincisinde name ler olsun,,

ikincisinde ID ler olsun.. isincisini form üzerinde gizli yap..

ve birincisinde seçim yaptığında, ikincisinde aynı itemde olanı alsın..

bilmem anlatabildimmi..
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Merhaba,
önce veritabanında bir tablo hazırla. bu tabloda 2 alan olsun.ilk alana arabano, diğer alanada arabamarkalarını gir.sonra normal combobox yerine lookupcombobox kullan. lookupcombobox kullanarak comboboxta itemsa değerleri kendin girmezsin veritabanındaki bir alanın değerlerini alabilirsin. mesela lookupcomboboxtan mercedesi sectiğinde veritabanındaki tablodaki aktif kayıt mercedes olacağından,bu kayıtta ait numarayı kullanabilirsin
kolay gelsin
+100. bence en profosyonel yöntem. nitekim ben de aynı işlemleri onlarca kez kullandım.

Kod: Tümünü seç

dblookupcombobox1.keyvalue
ile , istediğin id'e ulaşabilirsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
sana iki yol önereceğim.
1. sanırım @sadettinpolat arkadaşımızın bu konu ile ilgili bir makalesi vardı. onu oku.
2. @nitrokonat arkadaşımızın dediği gibi dblookupcombobox kullan.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

teşekkürler DBLookupCombo ile sorunumu çözdüm ilginiz için teşekkür ederim.
ZER0
Üye
Mesajlar: 24
Kayıt: 09 Tem 2005 10:14
Konum: İst/Maltepe

Mesaj gönderen ZER0 »

mrb foruma bir combobox birde label ekle sonr bu kodları yaz:

Kod: Tümünü seç

............
var
  Form1: TForm1;
Liste:TStringlist;

implementation

{$R *.DFM}



procedure TForm1.FormCreate(Sender: TObject);
begin
Liste:=TStringList.create;
Liste.add('1-BMW');
Liste.add('13-Mercedes');
combobox1.items.add(copy(Liste[0],pos('-',Liste[0])+1,length(Liste[0])));
combobox1.items.add(copy(Liste[1],pos('-',Liste[1])+1,length(Liste[1])));

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
label1.caption:=copy(Liste[combobox1.itemindex],0,pos('-',liste[combobox1.itemindex])-1)
end;
başarılar kolay gelsin
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

Sanırsam biraz erken söyledik sorunu halettik diye. :) DBLookupComboBox kullanıdığımızda Text bölümü read only olduğundan herhangi bir veri girisine sahib değillim TComboBox da olduğu gibi. Ön tanımlı olarak DBLookupComboBox da nasıl bir itemı seçe biliriz. Mesela yukarıda verdiğim örnekte olduğu gibi BMW 1. sırada 13. sırada Mercedes geliyor. Ben Mercedesin Text bölümünde ön tanımlı olarak gelmesini istiyorum.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

dblookupcombobox'ta veri girişini veritabanına yapman gerekiyor.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

stnonstop yazdı:Sanırsam biraz erken söyledik sorunu halettik diye. :) DBLookupComboBox kullanıdığımızda Text bölümü read only olduğundan herhangi bir veri girisine sahib değillim TComboBox da olduğu gibi. Ön tanımlı olarak DBLookupComboBox da nasıl bir itemı seçe biliriz. Mesela yukarıda verdiğim örnekte olduğu gibi BMW 1. sırada 13. sırada Mercedes geliyor. Ben Mercedesin Text bölümünde ön tanımlı olarak gelmesini istiyorum.
degerlerini nerden aliyorsun? herhangi bir databaseden mi?, kullanicidan mi?

Olmazsa TComboboxdan yeni bir bilesen türet, Item kismini degistir.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Comboboxta string değerler gözükürken kullanıcının seçimine göre seçilen stringe ait ID değerine ulaşmak isteriz. Bunun için genelde dblookupcombobox kullanılır. Standart combobox ile bu işlemi halletmek isteyen kullanıcılar bu yöntemi kullanabilirler....

Degerleri combobox a eklemek icin :

Combobox1.items.AddObject('Rize', TObject(53));
Combobox1.items.AddObject('Ankara', TObject(6));
Combobox1.items.AddObject('İstanbul', TObject(34));


Seçilen değerin ID alanına ulaşmak için de :

Deger := Integer(Combobox1.items.Objects[Combobox1.ItemIndex]);
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
stnonstop
Üye
Mesajlar: 149
Kayıt: 22 Haz 2005 04:34

Mesaj gönderen stnonstop »

veri girişi yapmak değil demek istediğim. comboboxsa çektiğim verilerden birinin ön tanımlı olarak gösterilmesini istiyorum.
ZER0
Üye
Mesajlar: 24
Kayıt: 09 Tem 2005 10:14
Konum: İst/Maltepe

Mesaj gönderen ZER0 »

mrb eğer yukarda benim yazdığım kodlara bakarsan combodan seçtiğin değere karşılık ikinci bir değer labelde gözükecektir.
Gökay Okutucu
Sakarya Bilgisayar Programcılığı Öğrencisi
Cevapla