Program ayarları kodu lazım yardım edebilirmisiniz

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Program'a ayar özelliği eklemek istiyorum ama ayarları access veritabanına kaydedip burdan okuması lazım. Mesela bir form olsun üzerine bir iki tane txtbox bir iki tane button olsun aynı formda işte bu elemanların arkaplan rengi yazıtipi yazı rengi gibi şeylerini değiştirecek FontDialog collorFontDialog 'lar olsun bunlardan renk ve font seçip bir kaydet butonuna bastığımda ayarlar access dosyasına kaydedilsin program çalıştırıldığındada bu bilgileri access dosyasından okuyup bu ayarlar ile çalışsın yardım edebilirmisiniz



:clover:
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
Tamam işte. Kafanda bitirmişsin işi :D

Sen başla gerisi gelir zaten. Takıldığın yerlerde yaz buraya. Ha bu arada hangi dili kullanıyorsun ?
 

evowinds

Dekan
Katılım
2 Kasım 2008
Mesajlar
9,100
Reaksiyon puanı
174
Puanları
243
Genelde dediğin bilgileri tutan dosyalar var. ".ini" dosyaları. Buraya dediğin ayarları aktarıp açılışta okuyabilirsin. Diğer türlü de registry'e yazabilir ve oradan okuyabilirsin.
Acces ile bu bilgileri tutman ve yazıp okuman programın randumanını düşürür.
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Genelde dediğin bilgileri tutan dosyalar var. ".ini" dosyaları. Buraya dediğin ayarları aktarıp açılışta okuyabilirsin. Diğer türlü de registry'e yazabilir ve oradan okuyabilirsin.
Acces ile bu bilgileri tutman ve yazıp okuman programın randumanını düşürür.
Randımanı önemli değil aşağı yukarı 5 yada 6 adet ayar giricem olabildiğince dosya sayısı az olsun istiyorum bu nedenli ini dosyasını istemiyorum hazır access database'i kullanmak istiyorum registry'de kullanmak istemiyorum programım portable olsun istiyorum özellikle internette registry ve ini dosyaları için örnek kodlar var ama access için bulamıyorum

:clover:
 

evowinds

Dekan
Katılım
2 Kasım 2008
Mesajlar
9,100
Reaksiyon puanı
174
Puanları
243
Ben VB syntaxından anlamam ama sana mantığını söyleyeyim.
1-Program ilk açıldığında kapatılırken ayarlar kaydedilecek. Bir Access DB dosyası ve tablosu oluşturulacak.
2-Program açılırken form onload olayına Access den bu değerleri almasını ve nesnelere bu değerleri atamasını kodlayacaksın.

Delphi deseydin sana yazar verirdim.

Sen Accesse veri gönderme ve alma şeklinde arama yap. Gerisi kolay. Nesne özelliklerini barındıran tablo oluşturup okuyacaksın ve yazacaksın.
 

k2ann

Öğrenci
Katılım
22 Nisan 2010
Mesajlar
42
Reaksiyon puanı
0
Puanları
0
tabiki açılışta yavaşlama olacak hatta yüklenilen bilgilye göre kısa süreli kilitlenmeler de yaşayacaksın..bunun için bi splash ekranına ihtiyaç duyacaksın bu progress bar koyup arka tarafta form1 yüklenirken access bağlantısı ve veri alımı olacak veri alındığında form1 görünecek hem daha estetik olur hemde kullanıcı tedirgin olmaz:) evowinds ın dediği gibi on load olayına yaz bi vt oluştur burdan verileri çekersin ;) sıkıntın veri yazmada mı okumada mı onu anlamış değilim?
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
tabiki açılışta yavaşlama olacak hatta yüklenilen bilgilye göre kısa süreli kilitlenmeler de yaşayacaksın..bunun için bi splash ekranına ihtiyaç duyacaksın bu progress bar koyup arka tarafta form1 yüklenirken access bağlantısı ve veri alımı olacak veri alındığında form1 görünecek hem daha estetik olur hemde kullanıcı tedirgin olmaz:) evowinds ın dediği gibi on load olayına yaz bi vt oluştur burdan verileri çekersin ;) sıkıntın veri yazmada mı okumada mı onu anlamış değilim?
Sıkıntım veri yazmada ve convert edilmiş değerleri tekrar kullanılabilir hale getirmede access tablomda Ayarlar isminde bir tablo oluşturdum ve buna renk1 renk2 renk3 diye sütünlar oluşturdum sadece tek satır kullanıcam , OleDb.OleDbCommand("UPDATE Ayarlar SET komutuda işe yaramıyor OleDb.OleDbCommand("INSERT INTO Ayarlar 'da INSERT olanı kayıt yapıyor ama her renk değştirdiğimde yeni bir satır açıp renk bilgisini buraya giriyor halbuki dediğim gibi birkaçtane sütun var sadece tek satır var tablomda bilgileri doğru yere kaydetmekte problem yaşıyorum tabi bu bilgi değiştikçe yeni satırda değil bilginin girilmesi gereken yerdekinin silinip onun üzerine yazılması ve böyle güncellemesi lazım bu sorunlarımdan biri 2. sorunum ise renk kodunu bu şekilde xrenk1 = Convert.ToString(ColorDialog1.Color) şeklinde çevirerek kaydediyorum ama bunu okutunca nasıl okutucam yani access'e girilen bilgi şöyle oluyor Color [DodgerBlue] YADA Color [A=255, R=0, G=128, B=255] şeklinde işte bunu tekrar nasıl kullanıcam yani Me.BackColor = ??? nasıl olacak databaseden olduğu gibi okuttum öyle olmuyor kullanılabilir bir şekle dönüştürmek gerekiyor...

Access'te performans sorunu yok aşağıdaki kod ile çok iyi optimize edip sıkıştırıyor ve güzel çalışıyor
HTML:
        Dim jro As JRO.JetEngine
        jro = New JRO.JetEngine
        jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Bilgi.mdb;Jet OLEDB:Database Password=???", _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YeniBilgi.mdb;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Password=???")
        IO.File.Delete(Application.StartupPath & "/Bilgi.mdb")
        IO.File.Copy(Application.StartupPath & "/YeniBilgi.mdb", Application.StartupPath & "/Bilgi.mdb")
        IO.File.Delete(Application.StartupPath & "/YeniBilgi.mdb")
:clover:
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
Şimdi tablo yapın nasıl tam bilmiyorum ama ID veya SiraNo benzeri bir alan oluşturmalısın ve bu alan otomatik sayı olmalı. Sql için Update sorgusu da şu şekilde olmalı:

Kod:
Update Ayar Set renk1=deger1, renk2=deger2, renk3=deger3 Where ID=1;

Burda where id=1 dediğim yerdeki 1 örnek olarak yazdım. Sende ID değeri kaçsa onu yazacaksın.

Renkleri saklama işine gelince birkaç farklı yol deneyebilirsin. Mesela rengin RGB değerlerini aralarında virgül koyarak string olarak kaydettirebilirsin (Ör: 122,215,220 şeklinde) veritabanına. Burdan da okuttuğun zaman string.split() komutuyla virgülden alrılmış hale getirip. Color.FromRGB() fonksiyonuyla da renk değerini elde edebilirsin.
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Şimdi tablo yapın nasıl tam bilmiyorum ama ID veya SiraNo benzeri bir alan oluşturmalısın ve bu alan otomatik sayı olmalı. Sql için Update sorgusu da şu şekilde olmalı:

Kod:
Update Ayar Set renk1=deger1, renk2=deger2, renk3=deger3 Where ID=1;
Burda where id=1 dediğim yerdeki 1 örnek olarak yazdım. Sende ID değeri kaçsa onu yazacaksın.

Renkleri saklama işine gelince birkaç farklı yol deneyebilirsin. Mesela rengin RGB değerlerini aralarında virgül koyarak string olarak kaydettirebilirsin (Ör: 122,215,220 şeklinde) veritabanına. Burdan da okuttuğun zaman string.split() komutuyla virgülden alrılmış hale getirip. Color.FromRGB() fonksiyonuyla da renk değerini elde edebilirsin.
Yazdığın Update komutu çalıştı sorun yok ama ColorDialog1'den elde edilen renk bilgisini bir türlü RGB yapamadım internette araştırdım HEX haline getirilebiliyor ama RGB bulamadım.


:clover:
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
R, G, B değerlerini şu şekilde elde elde edebilirsin:

Kod:
byte _R=ColorDialog1.Color.R;
byte _G=ColorDialog1.Color.G;
byte _B=ColorDialog1.Color.B;
Ama argb değerini kullanmanı tavsiye ederim. rgb ile uğraşmaya gerek kalmaz. Tek değer kullanmış olursun. Argb değeri elde etmek için :

Kod:
int _argb = ColorDialog1.Color.ToArgb();
Argb değerinden renk (Color) elde etmek için:

Kod:
int _argb= deger; //bu değerin veritabanından çekilecek.
Color _renk = Color.FromArgb(_argb);

Not: C# syntaxına göre yazdım kodları. VB.Net de buna benzer olur.
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
.NET'in nimetlerini kullanmanı tavsiye ederim. Programda Visual Studio içerisinde programın settings bölümü için veri tiplerini belirleyebilir ve kolayca saklattırabilirsin. Saklanan ayarlar kullanıcın kendi klasörü içerisinde xml formatında saklanıyor.
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
.NET'in nimetlerini kullanmanı tavsiye ederim. Programda Visual Studio içerisinde programın settings bölümü için veri tiplerini belirleyebilir ve kolayca saklattırabilirsin. Saklanan ayarlar kullanıcın kendi klasörü içerisinde xml formatında saklanıyor.
Nasıl kullanılıyor açıklarmısın mesela ben formun arkaplanını değiştirecek bir buton koydum diyelim forma buraya basınca colordialog açılıyor ordan renk seçiyorsun formun arkaplanı bu renk oluyor evet bu ayar dediğin yöntemle nasıl korunuyor


:clover:
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
Solition Explorer daki projene sağ tıkla ve Properties'i seç daha sonra karşına çıkan ekrandan Settings tabı altında tanımlamalarını yapabilirsin. Bir objenin özelliğini de setting'e bağlamak istersen eğer objeye tıkladıktan sonra Properties penceresindeki ApplicationSettings propertysini bul ve altından hangi özelliğini setting'e bağlamak istiyorsan o özelliğe daha önceden belirlediğin setting'i ata. Eğer istediğin özellik ApplicationSetting altında yoksa onun altındaki PropertyBinding'in yanındaki 3 noktalı tuşa basıp çıkan pencereden istediğin özelliği ister tanımladığın setting'e bağlarsın istersen de oradan direk setting tanımlaması yaparsın. Seçim sana kalmış.

Ayarların kaydolması için de pencere kapanış eventına:

Kod:
Properties.Settings mySettings = new Properties.Settings();
mySettings.Save();

şeklinde bir kod yazarak işini halledebilirsin. Programı geri açtığında kaydettiğin ayarların eskisi gibi devam ettiğini göreceksin...
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Solition Explorer daki projene sağ tıkla ve Properties'i seç daha sonra karşına çıkan ekrandan Settings tabı altında tanımlamalarını yapabilirsin. Bir objenin özelliğini de setting'e bağlamak istersen eğer objeye tıkladıktan sonra Properties penceresindeki ApplicationSettings propertysini bul ve altından hangi özelliğini setting'e bağlamak istiyorsan o özelliğe daha önceden belirlediğin setting'i ata. Eğer istediğin özellik ApplicationSetting altında yoksa onun altındaki PropertyBinding'in yanındaki 3 noktalı tuşa basıp çıkan pencereden istediğin özelliği ister tanımladığın setting'e bağlarsın istersen de oradan direk setting tanımlaması yaparsın. Seçim sana kalmış.

Ayarların kaydolması için de pencere kapanış eventına:

Kod:
Properties.Settings mySettings = new Properties.Settings();
mySettings.Save();
şeklinde bir kod yazarak işini halledebilirsin. Programı geri açtığında kaydettiğin ayarların eskisi gibi devam ettiğini göreceksin...
Dediğin çok karışık geldi ama epey uğraşıp kafa patlattım sonunda oldu hatta bu işi öğrenmek isteyenler için çok basit bir deneme projesi hazırladım. belki yararlı olur projeyi VB.NET 2008'de hazırladım
PROJE İNDİR
http://rapidshare.com/files/396994626/My.Setting.rar.html



Yanlız iki sorun var burda nasıl varsayılan ayarlara dönülecek bu bir ikincisi ise FontDialog'dan font seçince bazı fontlarda bu true tip font değildir sadece true tip fontları destekler gibi bir hata veriyor bu sorunu nasıl düzeltebiliriz


:clover:
 
Üst