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;
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;
http://rapidshare.com/files/169177276/bvcomp.rar.html