delphi4arab منتديات دلفي للعرب
كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : مصادر دلفي مفتوحة تعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=14)
+--- الموضوع : كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه (/showthread.php?tid=1470)

الصفحات: 1 2


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 04-01-2010

كثيراً ما يغيير المستخدم شكل البرنامج كألوان العناصر أو الخطوط أو أي شيء في البرنامج وهذه طريقة الإحتفاظ بهذه التغييرات في التشغيل التالي للبرنامج :
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 في نفس مجلد البرنامج.

والله الموفق للجيمع.


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - AL-MOB4RM3G - 04-01-2010

بارك الله لك اخ عصآم, جميل,

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

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

شكرا لك, وبارك الله فيك,


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 04-01-2010

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


وفقك الله .


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 04-01-2010

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

وفقكم الله . وأفاد بعلمكم الجميع


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - nabilkeb - 04-01-2010

راجع أيضا الروابط الموجودة هنــــــــــــــــــا :
http://www.delphi4arab.net/forum/showthread.php?tid=2246


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 05-01-2010

عفواً ولكني شاهت الموضوع السابق وهو يختلف إختلاف جذري عن الموضوع الذي ذكرته أنا .

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

تحياتي للجميع .


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - nabilkeb - 05-01-2010

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

بالتوفيق.


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 05-01-2010

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

وفقك الله .


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - AL-MOB4RM3G - 05-01-2010

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

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

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

شكرا لك اخ عصآم, :bye1:


كيف يحتفظ البرنامج بأخر شكل بعد التغييرات عليه - issamdnn - 06-01-2010

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

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

وفقك الله والجيمع .