delphi4arab منتديات دلفي للعرب

نسخة كاملة : حفظ اخر التغييرات التي تم اجراؤها على البرنامج
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته

اخواني عندما يقوم المستخدم باستخدام البرنامج ويعمل بعض التغييرات او بعض الاختيارات فيه

كيف يتم حفظ ماعمله اخر مرة ؟

وكيف يتم حفظ جلسه \معينه\ قام بعمل بعض التغييرات فيها على البرنامج ؟

من لم يفهم ما اقصده ساوضح له اكثر
اخي الكريم,,, حيّاك الله

اخي يمكنك ذلك عن طريق ملفات ال ini. او قيم في الرجستري,,

هذا هو,,, وهناك دروس في هذا المنتدى عن عمل ذلك بارك الله فيك Smile

+ اعتقد اني رأيت مكون لعمل ذلك.. سأحاول البحث عنه ان شاء الله

وإن وجدته فسأضعه هنا بإذن الله

بارك الله فيكم والسلام عليكم ورحمة الله
السلام عليكم ورحمة الله وبركاته ,,


إقتباس :وكيف يتم حفظ جلسه \معينه\ قام بعمل بعض التغييرات فيها على البرنامج ؟

أهلا أخي ,,

بالطبع في البرمجه يوجد طرق كثيرهـ ,, مننها ini file , Registry , xml file ... إلخ

لكن بدون أدنى شك الـ Registry هو الأفضل بينها ,,

حتى البرامج الكبيرهـ تستحدم الريجستري

بارك الله فيكم جميعا

السلام عليكم ,,

قد يفيدك هذا الموضوع هـنـا إلم تتعامل مع Registry من قبل !

بالتوفيق
السلام عليكم
من الطرق التي أفضلها لسهولتها وشموليتها استعمال 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; 
جزاكم الله خيرا وأخص اخي kachwahed

لكن أردت فقط أن أستفسر عن شئ بسيط

الشفرة التي طرحتها اخي kachwahed لحفظ كل مكون على حدة

ماذا عن الذي عمل برنامجا كبيرا ومتشعبا هل يعقل أن أقوم بالذهاب لكل مكون وكتابة الكود على حدة ؟ Sad

كيف أحفظ كل التغييرات التي تم على البرنامج بأكمله من مكونات وكل شئ متعلق به

في إنتظاركم يا اخوة Sad
في هذه الحالة تقوم بكتابة شيء مثل:
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; 
أخي kachwahed جزاك الله خيرا يبدو بأنني أثقلت عليك

مع أنني جربت الشفره التي أعطيتني اياها لكن ليس على شكل زر حفظ وزر تحميل

بل في الحدثين Create والحدث Close للفورم

وللأسف لم يظهر المفعول Sad

لكن سأقوم بتجريب نفس الشفره على شكل زر حفظ وزر تحميل
السلام علكيم
أضفت بعض التحسينات:
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; 
جربت هذه الشيفرة وهي تؤدي المطلوب.
السلام عليكم
بارك الله فيك يا أخي
إنها تعمل ، لكنها لم تعمل مع الصور
الصفحات : 1 2