PDA

View Full Version : سوال: استفاده از lockBox در یونیت اصلی



hamid-nic
چهارشنبه 30 فروردین 1391, 22:49 عصر
سلام دوستان ، وقتتان بخیر
در یونیت اصلی که فرم ها ساخته می شوند ، آیا می شود از این کامپوننت قبل از ساختن فرم ها و فرامین زیر

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
استفاده کرد ؟
کلاً بشه Encryption و Decryption را در یونیت اصلی انجام بدهیم ؟؟؟

Felony
چهارشنبه 30 فروردین 1391, 22:58 عصر
بله ؛ شما میتونید هر کدی که میخواهید رو بعد از Begin بزارید تا قبل از هر کاری اون کد اجرا بشه ؛ این سوالی نیست که اینجا بپرسید ، کافی بود چند دقیقه وقت بزارید و تست کنید !

hamid-nic
پنج شنبه 31 فروردین 1391, 08:57 صبح
آقای تاجیک عزیز امتحان کردم اما نشد .
در حالت عادی برای استفاده در فرم (صفحه جدید) ، خوب کامپوننت مربوطه را روی فرم می گذاریم و سپس کد نویسی بواسطه اون کامپوننت انجام می دهیم اما در یونیت اصلی که فرمی نداریم تا بتوانیم از کامپونت استفاده کنیم ؟!!! چطوری به اجزا و کلاس های کامپوننت دسترسی داشته باشم ؟!

Mask
پنج شنبه 31 فروردین 1391, 12:28 عصر
باید این کنترل رو به صورت رانتایم بسازید و باهاش کار کنید.
مثلا:
من در برنامه ای از کامپوننت md5 استفاده میکنم. چون در فایل پروژه ، نمیتونم یه دونه از این کامپوننت رو بزارم(چون فرم نداره) پس باید به صورت دستی بسازمش و مدیریتش کنم :

var
MD5 : TLbMD5;
MD5Digest : TMD5Digest;
begin
MD5 := TLbMD5.Create(nil);
try
MD5.HashFile(Path + F.Name);
MD5.GetDigest(MD5Digest);
finally
MD5.Free;
end;
end;

hamid-nic
پنج شنبه 31 فروردین 1391, 18:09 عصر
سلام
ممنون از پاسختون ، دقیقاً من همین را می خواستم
ولی خوب در مورد lockbox باید به چه نحوی بسازم و باهاش کار کنم ؟

hamid-nic
پنج شنبه 31 فروردین 1391, 22:44 عصر
من با این جواب گرفتم :

procedure TForm2.Button1Click(Sender: TObject);
var
LbRijndael1: TLbRijndael;
EncryptedPass:string;
begin
LbRijndael1 := TLbRijndael.Create(nil);
try
LbRijndael1.CipherMode := cmECB;
LbRijndael1.KeySize := ks256;
LbRijndael1.GenerateKey('900wer@54%');
EncryptedPass:= LbRijndael1.EncryptString(edit1.Text);
edit2.Text :=EncryptedPass;
finally
LbRijndael1.Free;
end;

end;