db combobox hakkında...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aponcanos

db combobox hakkında...

Mesaj gönderen aponcanos »

merhabalar bi sorum olcak beki size göre basittir ama ben bilmiyorum neyazıkki. form1de dbcomboboxım war v eitemsinde 2 adet (ali ve veli ) bilgi war.bide form 2im war burdada listbox ım war.form 1deki butona basıp form2yi açıyorum ve listboxda form1deki dbcomboboxın itemsini gösteriyorum.daha sonra edit ve butonlar vasıtasıyla listboxın içeriğini değiştiriyorum. sonra kaydet butonuna basıyorum ve form 2 kapanıyo form 1 deki dblistboxın itemsi form 2 deki listboxın itemsiyle eşitleiyo ve işte sorun burda başlıyo

programı kapatıp açtıktan sonra dbcomboboxın içeriği değiştirdiğim gibi değil eskisi gibi gözüküyo... :(

yardımlarınız için şimdiden teşekkürler.iyi çalışmala herkese
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,
Çalışma anında componentlerin özellikleri üzerinde yaptığın değişiklikler Program hafızadan atıldığı anda kaybolur ve dolayısıyla programını bir sonraki çalıştırışında herşey Tasarım anında yaptığın gibidir.
Dolayısıyla yaptığın Değişkilkleri senin dışarıda bir yerlerde saklaman ve PRogramın çalıştırılması anındada geri yükleyerek set ettirmen gerekir.
Sana Değişiklikleri Registry e kaydettirmeni ve geri yüklemeni tavsiye edebilirim. Örnek vermek Gerekirse.

Kod: Tümünü seç

//USES kısmına Registry i eklemeyi unutma
var
r:TRegistry;
begin
try
r:=TRegistry.Create;
r.rootKey:=HKEY_LOCAL_MACHINE;
r.CreateKey('Software\PrgAyar');
r.openkey('Software\PrgAyar',false);
r.WriteInteger('Combo1Itemindexi',ComboBox1.itemindex);
r.closekey;
finally
r.free;
end;
end;
Yukarıdaki kod parçacığı Registrye kayıt etmeye bir örnektir okumak için ise WriteInteger Metodu yerine ReadInteger Metonu kullanmaktır.
umarım işine yarar. Başarılar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Slm;

Items de olan son değişiklikleri bir .txt dosyaya veya daha çok bilgi açıklama vs. gerekiyorsa bir tablo oluşturup orada takip edebilirsin.

Program her açılışda dosyayı kontrol eder ve listeyi böyle oluşturabilirsin

.
aponcanos

Peki aynı form içinde....

Mesaj gönderen aponcanos »

Kodu çalıştıramadım ama genede çok teşekkürler.Geçen sene mezun oldum anlıcağınız daha acemiyim. Yanlız registry kodunda; form de eğer örneğin 30 tane comboboxım warsa hepsi için böylemi yapıcam .yani hepsini tektek registryamı kayıt etmem gerekiyo? kod gönderen arkadaslar biraz daha açıklayıcı olursanız çok sevinirim.İyiki bu siteyi bulmuşum Allah razı olsun sizlerden.Hepinize kolay gelsin...
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 ozaman sana daha basit ve dinamik bir yöntemden bahsedeyim,
Şimdi Diyelimki senin item indexini Kaydettirmek istediğin 30 tane Combobox olsun bunların TAG özelliğini 1 dan başlayarak 30 a kadar sayı ver Sonra bir TStringList Yardımıyla bunların değerlerni TSringListe al ve TEXT e at ve Geri yükleyip tekrar değerleri ata Şöyle bir Örnek vereyim;

Kod: Tümünü seç

var
Liste:TStringList;
i,TagSira:integer;
begin
try
liste:=TStringList.create;
tagSira:=1;
for i:=0 to componentcount-1 do
 begin
   if Components[i] is TComboBox then if (Components[i] As TComboBox).tag=TagSira then
   begin
     TagSira:=TagSira+1;
     liste.add(IntToStr((Components[i] As TComboBox).itemindex));
   end;
 end;
 Liste.SaveToFile('c:\ayarlar.dat');
finally
Liste.free;
end;
end;


Bu kodla Eklediğin ve Tag Özellğini sırasıyla verdiğin Tüm comboboxların itemindex özellikleri Dosyaya atıldı şimdi bunları Geri Yüklemey baklaım.

Kod: Tümünü seç

var
Liste:TStringList;
i,k:integer;
begin
try
liste:=TStringList.create;
liste.LoadFromFile('c:\ayarlar.dat');

for i:=0 to liste.Count-1 do
for k:=0 to ComponentCount-1 do
 begin
   if Components[k] is TComboBox then if (Components[k] As TComboBox).tag=i+1 then
   (Components[k] As TComboBox).ItemIndex:=StrToInt(Liste[i]);
 end;
finally
Liste.free;
end;
end;


Başarılar..

Volkan KAMADAN
www.polisoft.com.tr
Cevapla