ComboBox ile ilgili

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

ComboBox ile ilgili

Mesaj gönderen lazanya »

DbComboBox ın ITEMS özelliğine programlama anında veri girip sab itleyebiliyoruz. Ben sonrada mesela sınıfların olduğunu düşünelim. Programlama anında 10 sosyal, 10 fen girdik. Ama program setup oluşturulup kurulduktan sonra yeni bir sınıfı nasıl ekleriz. Şöyle birşey yaptım ama, programdan çıkıp tekrar girdikten sonra yok oluyor

Form1. DbComboBox1.Items.Add(Edit1.Text);
bu kod işe yarmadı
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Combo box'in itmes'ini runtime aninda degistirmek icin yazdiginiz kod dogru.

Fakat gerekli datayi eger bir tablodan alirsa o zaman sorununuz cozulur.

Ornegin Siniflarin tutuldugu bir SINIF tablonuzun olmasi lazim. Combobox'in Items ozelligini bir dongu icinde tablodan siniflari okuyarak doldurabilirsiniz. Boylece SINIF tablosuna yeni bir sinif eklendiginde combobox2inizda listelenmis olur.

Tabi bu isin temel mantigi bu doldurma kodu ile ugrasmaniz gerek olamdan bu isi yapan compoenetler de kullanabilirsiniz. Ama bu islemi denemek ve gormek faydali olur bence...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7589
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

eğer bir kere girildikten sonra programın her açılışında görmek istyorsanız bir table'a kaydedin. Daha sonra :

1. Bir döngü ile bu table'daki verileri DBCombobox'a alabilirsiniz.

2. DBLookupComboBox kullanabilirsiniz.

Kolay gelsin.
Kullanıcı avatarı
zayfin
Üye
Mesajlar: 24
Kayıt: 19 Haz 2003 07:04
Konum: istanbul
İletişim:

Mesaj gönderen zayfin »

acizane fikrim şöyle....
combobox1.Items.Add(edit3.text);yukardaki kod ile combobox a bilgi girse
daha sonra
listbox1.Items.SaveToFile('c:\deneme\asd.dat');
kodu ile bu combo yu kaydetse.

her prog açıldığında da şu kodla bilgileri alsa herhalde olur.
listbox1.Items.LoadFromFile('c:\deneme\asd.dat');
teşekkürler
sağlıcakla kalın
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

Mesaj gönderen lazanya »

ComboBox1.Items.LoadFromFile('c:\deneme\deneme.txt'); dat yerine txt denedim dışarıdan girlebilsin diye, txt e girmek kolay. Fakat deneme amaçlı yazdığım verileri sildi.

Diğer önerilerinizi deneyeceğim.
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

Mesaj gönderen lazanya »

maalesef txt içindeki verileri belirli bir süre sonra siliyor, nedenini anlamadım. Bu arada .DAT dosyasını nasıl yaratırım. Bir de dat ile deneyeyim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7589
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

en güzeli table'a kaydetmek hocam. Hem kullanıcı istediği zaman listeye yeni şeyler ekleyebilir.

Kolay gelsin.
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

Mesaj gönderen lazanya »

bu table olayını tam anlamadım. Şimdi DBComboBox zaten ogrenci.dbf NO adlı kayıt alanına bağlı , Items olayını hangi table a bağlayacağım, o zaman iki table olmazmı. Örneklemeniz mümkünmü, ipucu lazım, profosyonel değilim. Teşekkürler
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7589
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

LookupComboBox kullanarak yapabilirsin. Sitedeki Veritabanı kısmında, Veritabanı Bileşenleri isimli makalede gerekli tüm bilgiler var.

Kolay gelsin.
fatih97008
Üye
Mesajlar: 4
Kayıt: 21 Ara 2003 01:08

Mesaj gönderen fatih97008 »

eğer sadece birkaç tane kayıt kullanacaksanız windows un ini dosyalarını kullanmanızı tavsiye ederim.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2360
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Adminin dediği yolu uygularsan, sana ilerideki işlemlerindede yardımcı olur, ve database mantığını öğrenmiş olursun.

"...Şimdi DBComboBox zaten ogrenci.dbf NO adlı kayıt alanına bağlı , Items olayını hangi table a bağlayacağım,..."
yarısını halletmişsin diycem ama mantığını anlamadım hala. Sen bu sınıf bilgilerini başka bir table a mı kaydetmek istiyorsun? yada şöyle sorayım, bu sınıf isimlerini nereye kaydeceksin? bu önemli çünki cevap ona göre değişir.
savetofile da dosyanın uzuntısının ne oltuğu önemli değiltir. ObjectInspector da Items a tıkladığında ne görüyorsan onu olduğu gibi yazar.Yani buda text(metin)dir. notepad ile açık içine bakabilirsin, değiştirebilirsin
içeriğinin silinmesiyse bu senin yazdığın kodla ilgili bence. breakpoint koyup satırsatır incelersen hatanın yerini bulabilirsin.

eğer db ise, 2 tana table ın olmalı. 1. si öğrenci bilgileri diyelim, adı soy adı vs. diğeri ise sınıf adları. Öğrenci table ına lookup tanıtman gerek, daha sonrada bunun içeriğini görebilirsin, yani kod yazmana gerek kalmaz.
Araştırma yapman gereken keyword "LookupField"

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

zayfin yazdı:acizane fikrim şöyle....
combobox1.Items.Add(edit3.text);yukardaki kod ile combobox a bilgi girse
daha sonra
listbox1.Items.SaveToFile('c:\deneme\asd.dat');
kodu ile bu combo yu kaydetse.

her prog açıldığında da şu kodla bilgileri alsa herhalde olur.
listbox1.Items.LoadFromFile('c:\deneme\asd.dat');
Prki Hocam Bu Eklediğimiz Itemleri Silmek İstersek ??



Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
zayfin
Üye
Mesajlar: 24
Kayıt: 19 Haz 2003 07:04
Konum: istanbul
İletişim:

Mesaj gönderen zayfin »

hocam item leri silmek istersen direk dosya içindeki bilgileri silebilirsin..
teşekkürler
sağlıcakla kalın
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

zayfin yazdı:hocam item leri silmek istersen direk dosya içindeki bilgileri silebilirsin..
Bunu Biliyordum Ama Şansımı deneyeyim dedim. :)

Hocam Her Add dediğinde Elemanı Ekliyo Güzel, Ama (Saveto dedikten sonra) Programı açıp Kapayınca Dosya Baştan Yazılıyo. önceki bilgiler Kayboluyor.

Bunu Nasıl Yapıyorsunuz?


Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

Txt için Yukarda pek iyi bahsedilmedi bende hiç denememiştim.

TXT ile tutuyo. ;)
kolay Gelsin.


Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Cevapla