المشاركات : 7
المواضيع 3
:
: 0
الإنتساب : Mar 2009
السلام عليكم ورحمة الله وبركاته
اخواني عندما يقوم المستخدم باستخدام البرنامج ويعمل بعض التغييرات او بعض الاختيارات فيه
كيف يتم حفظ ماعمله اخر مرة ؟
وكيف يتم حفظ جلسه \معينه\ قام بعمل بعض التغييرات فيها على البرنامج ؟
من لم يفهم ما اقصده ساوضح له اكثر
المشاركات : 778
المواضيع 97
:
: 0
الإنتساب : Nov 2008
اخي الكريم,,, حيّاك الله
اخي يمكنك ذلك عن طريق ملفات ال ini. او قيم في الرجستري,,
هذا هو,,, وهناك دروس في هذا المنتدى عن عمل ذلك بارك الله فيك
+ اعتقد اني رأيت مكون لعمل ذلك.. سأحاول البحث عنه ان شاء الله
وإن وجدته فسأضعه هنا بإذن الله
بارك الله فيكم والسلام عليكم ورحمة الله
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
المشاركات : 171
المواضيع 13
:
: 0
الإنتساب : Nov 2008
السلام عليكم ورحمة الله وبركاته ,,
إقتباس :وكيف يتم حفظ جلسه \معينه\ قام بعمل بعض التغييرات فيها على البرنامج ؟
أهلا أخي ,,
بالطبع في البرمجه يوجد طرق كثيرهـ ,, مننها ini file , Registry , xml file ... إلخ
لكن بدون أدنى شك الـ Registry هو الأفضل بينها ,,
حتى البرامج الكبيرهـ تستحدم الريجستري
بارك الله فيكم جميعا
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
المشاركات : 171
المواضيع 13
:
: 0
الإنتساب : Nov 2008
السلام عليكم ,,
قد يفيدك هذا الموضوع هـنـا إلم تتعامل مع Registry من قبل !
بالتوفيق
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
05-04-2009, 11:14 PM
(آخر تعديل لهذه المشاركة: 29-12-2009, 02:22 PM بواسطة kachwahed.)
السلام عليكم
من الطرق التي أفضلها لسهولتها وشموليتها استعمال TFileStream
الإجراء WriteComponent يقوم بحفظ أي مكون بأكمله مع كل خصائصه، و ReadComponent للقراءة.
هذا مثال لطريقة حفظ مكون TTreeView:
PHP كود :
// Save
procedure TForm1.Button1Click(Sender: TObject);
var
F: TFileStream;
begin
F := TFileStream.Create('c:\TreeView.txt', fmCreate or fmShareCompat);
try
F.WriteComponent(TreeView1);
finally
F.Free;
end;
end;
// Load
procedure TForm1.Button2Click(Sender: TObject);
var
F: TFileStream;
begin
F := TFileStream.Create('c:\TreeView.txt', fmOpenRead or fmShareDenyWrite);
try
F.ReadComponent(TreeView1);
finally
F.Free;
end;
end;
المشاركات : 7
المواضيع 3
:
: 0
الإنتساب : Mar 2009
جزاكم الله خيرا وأخص اخي kachwahed
لكن أردت فقط أن أستفسر عن شئ بسيط
الشفرة التي طرحتها اخي kachwahed لحفظ كل مكون على حدة
ماذا عن الذي عمل برنامجا كبيرا ومتشعبا هل يعقل أن أقوم بالذهاب لكل مكون وكتابة الكود على حدة ؟
كيف أحفظ كل التغييرات التي تم على البرنامج بأكمله من مكونات وكل شئ متعلق به
في إنتظاركم يا اخوة
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
في هذه الحالة تقوم بكتابة شيء مثل:
PHP كود :
procedure TForm1.BtnSaveClick(Sender: TObject);
var i: Integer;
F: TFileStream;
begin
F := TFileStream.Create('Data.dat', fmCreate);
for i:=0 to Self.ComponentCount-1 do
F.WriteComponent(Components[i]);
F.Free;
end;
procedure TForm1.BtnLoadClick(Sender: TObject);
var i: Integer;
F: TFileStream;
begin
F := TFileStream.Create('Data.dat', fmOpenRead);
for i:=0 to Self.ComponentCount-1 do
F.ReadComponent(Components[i]);
F.Free;
end;
المشاركات : 7
المواضيع 3
:
: 0
الإنتساب : Mar 2009
أخي kachwahed جزاك الله خيرا يبدو بأنني أثقلت عليك
مع أنني جربت الشفره التي أعطيتني اياها لكن ليس على شكل زر حفظ وزر تحميل
بل في الحدثين Create والحدث Close للفورم
وللأسف لم يظهر المفعول
لكن سأقوم بتجريب نفس الشفره على شكل زر حفظ وزر تحميل
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
السلام علكيم
أضفت بعض التحسينات:
PHP كود :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: Integer;
F: TFileStream;
begin
F := TFileStream.Create('Data.dat', fmCreate);
try
for i:=0 to Self.ComponentCount-1 do
F.WriteComponent(Components[i]);
finally
F.Free;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
F: TFileStream;
begin
try
F := TFileStream.Create('Data.dat', fmOpenRead);
for i:=0 to Self.ComponentCount-1 do
F.ReadComponent(Components[i]);
except
Exit;
end;
F.Free;
end;
جربت هذه الشيفرة وهي تؤدي المطلوب.
المشاركات : 28
المواضيع 8
:
: 0
الإنتساب : Feb 2008
السلام عليكم
بارك الله فيك يا أخي
إنها تعمل ، لكنها لم تعمل مع الصور