Kullanıcı bazında özel grid ayarı.

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
aesenkaya
Üye
Mesajlar: 6
Kayıt: 07 Eki 2008 12:20

Kullanıcı bazında özel grid ayarı.

Mesaj gönderen aesenkaya »

Şu ana kadar karşılaştığım componentler genelde grid ayarlarını programın genel bazında yapmakta idi. Fakat her kullanıcı kendi grid ayarının farklı olmasını istiyor. Her kullanıcı ayarladığı gridi sonraki severinde kullanmak istiyor. Bvcomp5 grid componenti üzerinde küçük bir değişiklik yaparak bu özelliği sizlerele paylaşmak istedim..

Olayın mantığı öncelikle yazılımınızda oturum açan kullanıcıyı aşağıdaki kod ile register kayıt ediyoruz.

Kod: Tümünü seç

           R:=TRegistry.Create;
           R.RootKey:=HKEY_CURRENT_USER;
           R.CreateKey('\SOFTWARE\BSY\Program');
           R.OpenKey('\SOFTWARE\BSY\Program',false);
           R.WriteString('user',op_kodu);
           R.CloseKey;
           R.free;
bu işlemi yaptıktan sonra ise componentte operatör kodunu registerdan alarak kullanıcıya \application\grids\userkod klasörü içerisinden kullanıcı grid ayarlarını çekiyor..

component üzerinden register işlemleri aşağıdaki kodda verilmiştir.

Kod: Tümünü seç

procedure CheckIniDir;
var str:string;
    op_kodu:string;
    R:TRegistry;
begin
        R:=TRegistry.Create;
        R.RootKey:=HKEY_CURRENT_USER;
        R.OpenKey('\SOFTWARE\BSY\Program',false);
        op_kodu:='\'+R.ReadString('user');
        R.CloseKey;
        R.free;
  str:=
     {$ifndef VER140}
        includetrailingbackslash
     {$else}
        includetrailingpathdelimiter
     {$endif}
          ( extractFilePath(Application.ExeName)+GridsaverSubDir+op_kodu);
  if not directoryexists(str)
  then CreateDir(str);
end;




function GetIniFileName(Saver:TDBGridSaver;const CompName:string=''):string;
var    op_kodu:string;
    R:TRegistry;
begin
        R:=TRegistry.Create;
        R.RootKey:=HKEY_CURRENT_USER;
        R.OpenKey('\SOFTWARE\BSY\Program',false);
        op_kodu:='\'+R.ReadString('user');
        R.CloseKey;
        R.free;
  REsult:=
     {$ifndef VER140}
        includetrailingbackslash
     {$else}
        includetrailingpathdelimiter
     {$endif}
          ( extractFilePath(Application.ExeName)+GridsaverSubDir+op_kodu);

  if (trim(CompName)='') and Assigned(saver) and Assigned(Saver.ThisGrid) then begin
     Result:=Result+saver.ThisGrid.Owner.ClassName+'.'+saver.ThisGrid.Name;
     if trim(Saver.thvariant)<>'' then Result:=REsult+'.'+Saver.thVariant;
  end
  else Result:=Result+CompName;

  REsult:=REsult+GridSaverExt;
end;
bazı ingilizce kelimeler türkçeye çevrilmiştir dilerseniz çevirmediklerimi. bvlocalization.pas dosyasından değiştirip compile edebilirsiniz. link vermek sanırım sorun olmaz son olarak componentin derlenmiş hali

http://rapidshare.com/files/169177276/bvcomp.rar.html
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Kullanıcı bazında özel grid ayarı.

Mesaj gönderen AhmetNuri »

Bunun yerine Jedi DbUgrid kullanıp
JvFormStorage
JvAppIniFileStorage
ile sadece girid değil istersen formdaki her nesnenin ayarlarını kayıt edebilirsiniz.
ben yıllardır kullanıyorum
çok memnunum
Ahmet DENİZ
aesenkaya
Üye
Mesajlar: 6
Kayıt: 07 Eki 2008 12:20

Re: Kullanıcı bazında özel grid ayarı.

Mesaj gönderen aesenkaya »

bvcomp5 içerisinde sadece gird ayarları değil. dosyayı istediğiniz formata kaydetmek için tablesaver - grid ayarlarınız için grid saver ve form ayarlarınız için form saver mevcuttur. Benim burada bahsetmek istediğim grid ayarlarını veya form ayalarını kaydetmek değil. grid ayarlarını oturum açan kullanıcı bazında saklayıp tekrar o kullanıcıya sunmaktı. Sizin bahsetmiş olduğunuz componenti incelemedim belki formsaver olarak daha kalitelidir ama başka konulardan bahsediyoruz şu anda.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: Kullanıcı bazında özel grid ayarı.

Mesaj gönderen serkan »

kullanıcı bazında ayar saklamak için mecburen ayarları database de saklamanız lazım bunun içinde mesela Cxgrid ini dosyasına ayar yazıp okuyabiliyor.Bu ini dosyasına yazdıklarını tabloya yazabilirsin o ayar dosyasının hangi kullanıcının olduğunu zaten bulabilirsin böyle kullanıcı oturum açtığında o kullanıcıya ait kaydı aktif edip ayarlarını yükleyebiirsin.
Cevapla