nabilkeb
11-02-2009, 11:06 PM
السلام عليكم و رحمة الله و بركاته :
في الحقيقة أردت طرح إشكال حول الملفات Ini (بقسم الأسئلة) ، و أثناء الإعداد للسؤال أردت أن أفيد البعض من المبتدئين أمثالي ، بمعلومات أو ما أشبه حول ، حفظ إعدادات برنامج معين بملف ذو اللاحقة ini ، ثم يليها الإشكال_ إن شاء الله :
قبل ظهور نظام الرجيستري المرفق بالويندوز و هو المسؤول على حفظ إعدادات النظام و بياناته كانت الأنظمة القديمة تعتمد على هذا النوع من الملفات ، أما الأن فيقتصر إستعمالها على حفظ إعدادت البرامج التي لا تحتاج للرجيستري
التعامل مع ملفات ini بالدلفي :
أولا يجب التعريف بقسم use باضافة Uses ...., Inifiles ; وبما أن الملفات تحفظ بها اعدادات البرنامج ، فلابد من التخزين و القراءة ، و الصورتين أدناه تبينان ذلك :
http://www10.0zz0.com/2009/02/11/21/803563012.jpg
و هذا مثال تطبيقي للاستخدام يشمل العناصر: Edit+Memo+CheckBox+Image
نضع زر لحفظ الإعدادات و آخر لجلب الصورة ، و كذلك لدينا كود بالحدث OnCreate للفورم :
procedure TForm1.Button1Click(Sender: TObject);
begin
with tinifile.create('D:\star.ini')do begin
writebool('Checkbox','CheckboxValue',checkbox1.Che cked);
writestring('Edit','EditValue',edit1.Text);
writestring('Memo','MemoValue',memo1.Text);
writestring('img','imgValue',OpenPictureDialog1.Fi leName);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with tinifile.create('D:\star.ini')do begin
checkbox1.Checked:=readbool('Checkbox','CheckboxVa lue',false);
edit1.Text:=readstring('Edit','EditValue',edit1.Te xt);
Memo1.text:=readstring('Memo','MemoValue',memo1.Te xt);
img:=readstring('img','imgValue',img);
end;
image1.Picture.LoadFromFile(img);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.Fil eName);
end;
ملاحظة : إذا لم يتم تحديد مسار الملف Ini فإنه سوف ينشأ تلقائيا بمجلد Windows / في قطاع الذي نصب فيه النظام.
إذا أردنا وضعه مع مجلد البرنامج و لا نعلم أين سيتم وضع هذا المجلد عند المستخدم فإننا نصيف :
'\ini\star.ini..'
في الحقيقة أردت طرح إشكال حول الملفات Ini (بقسم الأسئلة) ، و أثناء الإعداد للسؤال أردت أن أفيد البعض من المبتدئين أمثالي ، بمعلومات أو ما أشبه حول ، حفظ إعدادات برنامج معين بملف ذو اللاحقة ini ، ثم يليها الإشكال_ إن شاء الله :
قبل ظهور نظام الرجيستري المرفق بالويندوز و هو المسؤول على حفظ إعدادات النظام و بياناته كانت الأنظمة القديمة تعتمد على هذا النوع من الملفات ، أما الأن فيقتصر إستعمالها على حفظ إعدادت البرامج التي لا تحتاج للرجيستري
التعامل مع ملفات ini بالدلفي :
أولا يجب التعريف بقسم use باضافة Uses ...., Inifiles ; وبما أن الملفات تحفظ بها اعدادات البرنامج ، فلابد من التخزين و القراءة ، و الصورتين أدناه تبينان ذلك :
http://www10.0zz0.com/2009/02/11/21/803563012.jpg
و هذا مثال تطبيقي للاستخدام يشمل العناصر: Edit+Memo+CheckBox+Image
نضع زر لحفظ الإعدادات و آخر لجلب الصورة ، و كذلك لدينا كود بالحدث OnCreate للفورم :
procedure TForm1.Button1Click(Sender: TObject);
begin
with tinifile.create('D:\star.ini')do begin
writebool('Checkbox','CheckboxValue',checkbox1.Che cked);
writestring('Edit','EditValue',edit1.Text);
writestring('Memo','MemoValue',memo1.Text);
writestring('img','imgValue',OpenPictureDialog1.Fi leName);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with tinifile.create('D:\star.ini')do begin
checkbox1.Checked:=readbool('Checkbox','CheckboxVa lue',false);
edit1.Text:=readstring('Edit','EditValue',edit1.Te xt);
Memo1.text:=readstring('Memo','MemoValue',memo1.Te xt);
img:=readstring('img','imgValue',img);
end;
image1.Picture.LoadFromFile(img);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.Fil eName);
end;
ملاحظة : إذا لم يتم تحديد مسار الملف Ini فإنه سوف ينشأ تلقائيا بمجلد Windows / في قطاع الذي نصب فيه النظام.
إذا أردنا وضعه مع مجلد البرنامج و لا نعلم أين سيتم وضع هذا المجلد عند المستخدم فإننا نصيف :
'\ini\star.ini..'