السلام عليكم ورحمة الله وبركاته
أعلم أن الكلام عن الريجستري كثير، لكن مشكلتي لم أجد أنها مكررة في المنتدى فقد بحثت عن مثلها كثيرا
والمشكلة هي أني حاولت أن أقوم بعمل برنامج تجريبي يعمل مع قاعدة بيانات، وقد قمت بتعريف قاعدة البيانات داخل البرنامج بالكود التالي
ADOConnection1.Connected := false; ADOConnection1.Close; ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +Getcurrentdir + '\Test.mdb;'; ADOConnection1.Open;
وكل شيء اشتغل على ما يرام حتى بعد نقله إلى مجلد آخر.
لكن المشكلة أني قمت بتحزيم الملف عن طريق البرنامج Inno Setup ، وهو فعلا رائع، لكن يبدو أن المشكلة حدثت مع الريجستري
فقمت بوضع هذا الكود في ctivate الخاصة بالفورم الرئيسي وهو كالتالي:
procedure TMainForm.FormActivate(Sender: TObject);
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create();
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\اختبار', FALSE);
Reg.ReadString(ExtractFilePath(ParamStr(0))+'Test.mdb');
finally
Reg.Free();
end;
end;حيث أن (اختبار) هو اسم البرنامج، و (Test.mdb) هي اسم قاعدة البيانات وهي في نفس المجلد الذي فيه (exe) للبرنامج
ولكن بمجرد تشغيل الجهاز وفتحه يظهر لي رسالة أنه لم يتم التعرف على مكان قاعدة البيانات
فأرجوا أن توضحوا لي ما سبب المشكلة، هل الكود خطأ أم شيء آخر
