كيف احفظ form انشئ برمجيا
#1
السلام عليكم ورحمة الله وبركاته

هــل استطيــع ان احفظ form انشئ برمجيا

هذا كود الانشاء
كود :
private MyForm: array of TForm; procedure TForm1.CreateForms(Sender: TObject); begin SetLength(MyForm, Length(MyForm) + 1); MyForm[Length(MyForm) - 1] := TForm1.Create(Self); MyForm[Length(MyForm) - 1].Name := 'Form' + IntToStr(Length(MyForm)); MyForm[Length(MyForm) - 1].Caption := 'Form' + IntToStr(Length(MyForm)); MyForm[Length(MyForm) - 1].Show; end;

كيف اســتطيع ان احفظ الفروم واحذفه متى اريــد هذا اي عند الاغلاق وفتحه مجددا يبقى موجود هذا اولاا

ثانيا في الفورم الذي انشأناه برمجياا listview استعمل طريقة حفظ listview.savetofile

عند الحفظ
كود :
listview3.SaveToFile(' list login '+ edit3.Text);

edit3 = هو اسم الفروم

المشكلة هي ب
كود :
listview3.LoadFromFile(' list login '+ edit3.Text);

لا يتم استعادة الحفظ استعمل مكون advlistview

وشكراا
الرد
#2
السلام عليكم ورحمة الله وبركاتة

هل تريد ان تضع في برنامج وجهات يقوم المستخدم بإنشئها وبعد ذلك يحفظ البرنامج الخاص بك خصاائصها ويعد ذلك كتابتها عندما يعاد تشغيله ؟
إذا كان كذلك فإليك الاجابة :

هذا يرجع لطريقة عمل البرنامج ووضيفته فمثلاً توجد هذه الخاصية في متصفح FireFox حيث انه عندما يتم إغلاق
بدون إنذار مسبق مثلاً قتل عمليته من إدارة المهام او إنقطاع التيار عن الكمبيوتر
فإنه يقوم بحفظ عدد الصفحات والعنايون وخصاائص الصفحات التي كانت مفتوحه , وبعد إعادة تشغيله يقوم بسئلك هل تريد إسترجاع النوافذ السابقة << وهنا يتم إعادة كتابة الصفحات بالصفات المخزنة

وهنا في سؤالك حالتك قريبه من حالة المتصفح FireFox .. احتر طريقة تخزينك لصفاة الصفحات الخاصة بك ... سواً من خلال ملف Ini او ملف مشفر او ملف مضغوط ...إلخ
وبعد ذلك تحميلها إلى نافذتك التي تم إنشائها ...

ساعطيك مثال مصغر وجميل وسهل في نفس الوقت ... هذا إذا كانت جميع النوافذ تحمل المكونات نفسها .. أي ان النافذة التي تريد إنشائها تكون عبارة عن Edit1 , 2 Button , List1 ... فهنا ستسهل عملية إعادة كتابة الصفات ... بشكل جميل وبسيط جداً كل ما عليكم هو كتابة النافذة مره واحدة في Frame وبعد ذلك توريثة في جميع الـForms التي تريد ان تنشائها وبعد ذالك إعادة ملء البيانات التي كانت موجودة قبل الاغلاق والتي حفظناها في ملف بجانب البرنامج إما انه Ini .. او على حسب الطربقة التي اخترتها لتخزين المعلومات ... وبعد ذلك ينشئ لنا برنامج ذو وجهات متعدده ويحتفظ بالوجهات بعد إغلاقه ...

حاول ان تطبق ما كتبتة باللون الازرق ... واطلعنا على النتائج

والسلام عليكم ورحمة الله وبركاتة
الرد
#3
شكراا لك اخي
لكن لم افهم طريقة الحفظ

هل يوجد كود للعملية
الرد
#4
طريقة الحفظ انت من يحددها كما ذكرت سابقاً ...

فمثلاً أريـد ان احفظ مواصفات نافذة ما قبل الإغلاق ... وقمت بختياار طريقة الحفظ ان تكون على ملف Ini ساكتب التالي :

في البداية اضيف مكتبة IniFiles ... كي استيطع التعامل مع ملفات Ini
وبعد ذلك اكتب الأسطر التالية لاحفظ مواصفات النافذة التي الريد :
PHP كود :
var
  
PathMyProgram : string;
begin
  PathMyProgram 
:= ExtractFilePath(Application.ExeName);
  
with TIniFile.Create(PathMyProgram + 'Forms.ini') do
  
begin
    WriteString
(Format('%s',[Form1.Name]),'Name',Format('%s',[Form1.Name]));
    
WriteString(Format('%s',[Form1.Name]),'ClassName',Format('%s',[Form1.ClassName]));
    
WriteString(Format('%s',[Form1.Name]),'Caption',Format('%s',[Form1.Caption]));
    
WriteString(Format('%s',[Form1.Name]),'Left',Format('%d',[Form1.Left]));
    
WriteString(Format('%s',[Form1.Name]),'Top',Format('%d',[Form1.Top]));
    
WriteString(Format('%s',[Form1.Name]),'Width',Format('%d',[Form1.Width]));
    
WriteString(Format('%s',[Form1.Name]),'Height',Format('%d',[Form1.Height]));
    
WriteString(Format('%s',[Form1.Name]),'Color',Format('%x',[Form1.Color]));
    
Free
  end
;
end; 

وقد ارفقت مثال على ذلك ...

إذا كنت لا تعرف كيف تتعامل مع مكتبة IniFiles يتوجب عليك قرائة موضوع او مقالة تشرح هذه المكتبة البسيطة والسهله ويوجد بالمنتدى مواضيع تتكلم عن هذه المكتبة
طبعا كما اخبرت تستطع تشفير المعلومات و ضغطها إذا اردت ان تكون سرية او كي لا يعبث بها المستخدم ...إلخ


الملفات المرفقة
.rar   SaveDataForms.rar (الحجم : 3.7 ك ب / التحميلات : 25)
الرد
#5
شكراا اخي جزيت كل الخير
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم