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

نسخة كاملة : كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
كثيراً ما يغيير المستخدم شكل البرنامج كألوان العناصر أو الخطوط أو أي شيء في البرنامج وهذه طريقة الإحتفاظ بهذه التغييرات في التشغيل التالي للبرنامج :
1- أضف في القسم public التصريح التالي:

PHP كود :
public
    { Public 
declarations }

    
constructor Create(AOwner: TComponent); override; // (1)
    
procedure BeforeDestruction; override;  // (2) 

2-أضغط على Ctrl+Shift+C لتعبئة قلب الإجرائيتن:

PHP كود :
procedure TForm1.BeforeDestruction;
begin
  inherited
;
  
with TFileStream.Create(PreservePath + ClassName + '.sav',    fmCreate) do
  try
    
WriteComponent(Self);
  finally
    
Free;
  
end; 

و

PHP كود :
constructor TForm1.Create(AOwner: TComponent);
begin  
  PreservePath 
:= ExtractFilePath(Application.ExeName) + 
    
'Preserve';
  if 
not DirectoryExists(PreservePath) then
    CreateDir
(PreservePath);
  
PreservePath := PreservePath + '\';
  if FileExists(PreservePath + ClassName + '
.sav') then
  begin
    CreateNew(AOwner, 0);
    with TFileStream.Create(PreservePath + ClassName + '
.sav',
                            fmOpenRead or fmShareDenyWrite) do
    try
      ReadComponent(Self);
    finally
      Free;
    end;
  end
  else
  inherited Create(AOwner);
end; 

وبذلك سيتم حفظ الإعدادات في مجلد PreservePath و بملف بلاحقة .sav في نفس مجلد البرنامج.

والله الموفق للجيمع.
بارك الله لك اخ عصآم, جميل,

لكن هل لك ان ترفق مثآل بارك الله لك, ؟

وهل يحتفظ البرنآمج بكل التغيّيرآت لكل المكمبننتات ؟ (لا يوجد لووب يعيد الكود على كل الكومبننتات)

شكرا لك, وبارك الله فيك,
لعيونك أخي العزيز :
1- في المثال التالي جرب إحداث تغيير على العناصر الموجودة في الفورم ثم أغلق البرنامج وأعد تشغيله من جديد وستجد بأن ألوان البانيلات قد أحتفضت باللون السابق وكذلك عناصر ال checkboxs


وفقك الله .
جرب إضافة عنصر TEdit على الفورم وأكتب داخلها وستشاهد أن البرنامج أحتفظ حتى بالكتابة الموجودة داخل العنصر السابق دون الحاجة لملفات ال ini لحفظ الأعدادات وهذه الطريقة تحتفظ بكل التغييرات على كل العناصر .

وفقكم الله . وأفاد بعلمكم الجميع
راجع أيضا الروابط الموجودة هنــــــــــــــــــا :
http://www.delphi4arab.net/forum/showthr...p?tid=2246
عفواً ولكني شاهت الموضوع السابق وهو يختلف إختلاف جذري عن الموضوع الذي ذكرته أنا .

فأستخدام الرجستري وارد وكذلك ملفات ال ini ولكن هنا الموضوع مختلف تماماً.

تحياتي للجميع .
مشكووور أخي على المشاركة الرائعة ، و لكنني فقط أردت أن ألفت انتباه كل قارئ لهذا الموضوع ، لمواضيع أخرى شبيهة و تصب في نفس الوادي.
أكيد هناك اختلاف كما تقدمت أخي لكن الهدف واحـــــد : _ حفظ إعدادات البرنـــــامج _

بالتوفيق.
على عيوني أخي العزيز . وشكراً جداً على مشاركتك .

وفقك الله .
إقتباس :لعيونك أخي العزيز :

في الحقيقة, شئ مذهل,
لم اتوقع هذه السهولة ما شاء الله, اسهل من الرجستري و اسهل من ملفآت ال Ini

اخي الكريم, هل ممكن اثتثنآء مكون او مكونات من حفظ المعلموت ؟

شكرا لك اخ عصآم, :bye1:
في الحقيقة اخي أنا لم أجرب أن أقوم بإستثناء لبعض العناصر لكن الخاصية WriteComponent(Self)
والتي تأخذ الوسيط Self يمكن إستبدالها بالكود
PHP كود :
for i:=0 to ComponentCount-1 do
    
WriteComponent(Components[i]); 

والتي تسمح بإستثناء بعض العناصر حسب قيمة المتحول i وكذلك الأمر بالنسبة للإجرائية
PHP كود :
ReadComponent(Self); 

وفقك الله والجيمع .
الصفحات : 1 2