Cxgriddeki Değişiklikler Kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Cxgriddeki Değişiklikler Kayıt

Mesaj gönderen pro_imaj »

Merhaba;
Cxgriddeki alnlar üzerinde kullanıcının yaptığı değişiklikler program kapatılıp açılınca tekrar derlediğim halini alıyor. Bunu nasıl sağlarım.

Örn cxgridde alanlar olsun alan1 yerine alan2 yi kullanıcı yer değiştiriyor diyelim ve alan3 boyutunu değişitiriyor kullanıcı bu ayarların herzaman geçerli olması için cxgrid bileşeninin bir özelliği varmı acaba nasıl yapabilirim.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

yaptığınız değişiklikleri .ini dosyaya veya Registry'e kaydedebilirsiniz. SaveToRegistry gibi bir yordamı vardı.

Ancak bunun tek bir mahsuru var, yeni bir alan eklerseniz kullanıcıda gözükmez. Buna dikkat etmeniz lazım. Bazende kullanıcı herşeyi karman çorman bir hale getiriyor, bu tip durumlar içinde ayarları bir şekilde resetleme imkanı vermeniz lazım (registryde sakladığınız anahtarı komple silebilirsiniz mesela).

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Mustafa Hocam;

ini veya regedite kayıtla olduğunu aslında araştırdım ama sizinde bahsettiğiniz gibi hataya çok açık bir yapı cxgridin belki böyle bir özelliği vardır diye düşünüyorum ben. Biz desing halinde istediğimiz boyut ve diğer ayarları yapıyoruz ve derledikten sonra hep bu ayarlarla çalışıyorya hocam bunu runtime anındada belki cxgrid bir bileşenler biryerde tutturabilir diye düşünüyordum.

Saygılarımla
Teşekkür ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Hocam ne kastettiğini tam anlayamadım?

Neticede alan ekleme vs. çok sık olan bir konu değildir. Alan eklemesi olan gridin ayarlarını silersin olur biter. Kullanıcıya bunu iyi izah etmen lazım ama. Durduk yere ayarlarım siliniyor demesin.

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

mussimsek yazdı:Hocam ne kastettiğini tam anlayamadım?
Merhaba Mustafa Hocam;
aslında anlatmak istediğim cxgridin yapılan ayarları otomatik olarak bir iniye veya regedite atan bir özelliğinin olup olmadığıydı. (İnanın hocam belki bu işlem için çok fazla zaman harcıyacağım ini dosyalarla çalışmam olmadığı için asıl zoruma giden bu değil çok zor şekilde yapılmış olan bir şeyin kullanıcılar tarafından çok basit bişeymiş gibi görülmesi açıkca şevkimi kırıyor hocam)

Verdiğiniz bilgiler için teşekekür ederim.
Çalışmalarınızdaki başarılarınızın daim olması dileğiyle.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Formun OnCreate ve OnClose eventlerine aşağıdakilere benzer kodlar yazarak isteğinizi yerine getirebilirsiniz.
INIFile ile ilgili herhangi bir işlem yapmanıza gerek yok.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
var
  aINIFileName: string;
begin
  aINIFileName := ExtractFilePath(Application.ExeName) + 'cxGrid001.INI';
  if FileExists(aINIFileName) then cxGridDBBandedTableView1.RestoreFromIniFile(aINIFileName, TRUE, TRUE, [gsoUseFilter, gsoUseSummary], 'GridView');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  aINIFileName: string;
begin
  aINIFileName := ExtractFilePath(Application.ExeName) + 'cxGrid001.INI';
  cxGridDBBandedTableView1.StoreToIniFile(aINIFileName, TRUE, [gsoUseFilter, gsoUseSummary], 'GridView');
end;
İyi çalışmalar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Bu ikisi hazır fonksiyon olarak var, @Hakan Can yazmış zaten :) Registry içinde benzerini yapabilirsin.

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba @mussimsek @Hakan Can;

Yardımlarınız için çok teşekkür ederim. @Hakan Can verdiği kod bloğu ile yaptım teşekkür ederim.

Bu arada cxPropertiesStore1 bileşeni ilede aynı işlemin yapıldığını söylememde yarar var. Bu bileşen ile formdaki herşeyin ayarını saklamak çok kolay ve kullanışlı regedit ve ini seçenekleride mevcut.

Saygılarımla
Çalışmalarınızda başarılar.
Yardımlarınızdan Dolayı çok saolun.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
loribnaczo

tesekkurler...

Mesaj gönderen loribnaczo »

@mussimsek @Hakan Can arkadasların ilgi ve alakalarına kalbi teşekkürlerimi gönderiyorum.
doga
Üye
Mesajlar: 3
Kayıt: 04 Oca 2011 08:32

Re: Cxgriddeki Değişiklikler Kayıt

Mesaj gönderen doga »

Merhaba;
Sorum bu başlıkla ilgili olduğu için üzerinde devam etmek istedim.

Özet: Proje esnasında değilde, kullanıcı tarafından eklenen nesneleri cxPropertiesStore ye nasıl tanıtabilirim?

Detay: Şimdiye kadar cxPropertiesStore yi kullanarak formlar üstündeki nesne özelliklerini gayet güzel saklayabiliyorum. Fakat en son hazırladığım projemde nesneler kullanıcı tarafından oluşturuluyor. Sonradan kullanıcı tarafından eklenen dosyaların fontlarınıda kayıt altında tutmak istiyorum. Proje sırasında nesne ortada olmadığı için doğal olarak, cxPropertiesStore ye çift tıkladığımda karşıma gelen pencerede göremiyorum.

Başka şekilde çözülebilir belki ama böyle kolaylık varken kullanmak istiyorum.

Cevaplarınızı bekler saygılarımı sunarım.
Cevapla