السلام عليكم
انا جديد في المنتدى
و لا اعلم يكف يتم حفظ ال Dock بعد اغلاق التطبيق بحثت كثيرا في الانترنيت ولم اجد حلا لها كل ما وجدته هو مكونات وغير فعلة بنسب 100%
هل احد لديه حل و شكرا
وعليكم السلام ورحمة الله
يمكنك باستخدام ملفات INI راجع الشرح التالي:
كود :
https://www.thoughtco.com/manipulate-ini-files-from-delphi-1058227
(20-12-2021, 06:08 PM)Delphi4Us كتب : [ -> ]وعليكم السلام ورحمة الله
يمكنك باستخدام ملفات INI راجع الشرح التالي:
كود :
https://www.thoughtco.com/manipulate-ini-files-from-delphi-1058227
احسنت ولكن عند حفظ الاعدادات و اغلاق التطبيق و اعادة تشغيله لا يحمل الاعدادات التي حفظتها
و هذه المشكلة حولت البحث في الانترنيت ولكن لم اجد شيئ عنها فما الحل للعلم انا استخدم دلفي 7
إقتباس :احسنت ولكن عند حفظ الاعدادات و اغلاق التطبيق و اعادة تشغيله لا يحمل الاعدادات التي حفظتها
بل يحمل الاعدادات هناك شئ مفقود عندك لاحظ ان هناك كود للحفظ وكود للتحميل
وهناك طريقة اخرى ربما أسهل
كود :
procedure SaveComponentToFile(Component: TComponent; const FileName: TFileName);
var
FileStream : TFileStream;
MemStream : TMemoryStream;
begin
MemStream := nil;
if not Assigned(Component) then
raise Exception.Create('Component is not assigned');
FileStream := TFileStream.Create(FileName,fmCreate);
try
MemStream := TMemoryStream.Create;
MemStream.WriteComponent(Component);
MemStream.Position := 0;
ObjectBinaryToText(MemStream, FileStream);
finally
MemStream.Free;
FileStream.Free;
end;
end;
وللتحميل
كود :
procedure LoadComponentFromFile(Component: TComponent; const FileName: TFileName);
var
FileStream : TFileStream;
MemStream : TMemoryStream;
i: Integer;
begin
MemStream := nil;
if not Assigned(Component) then
raise Exception.Create('Component is not assigned');
if FileExists(FileName) then
begin
FileStream := TFileStream.Create(FileName,fmOpenRead);
try
for i := Component.ComponentCount - 1 downto 0 do
begin
if Component.Components[i] is TControl then
TControl(Component.Components[i]).Parent := nil;
Component.Components[i].Free;
end;
MemStream := TMemoryStream.Create;
ObjectTextToBinary(FileStream, MemStream);
MemStream.Position := 0;
MemStream.ReadComponent(Component);
Application.InsertComponent(Component);
finally
MemStream.Free;
FileStream.Free;
end;
end;
end;
يمكن مراجعة المثال
كود :
https://coderedirect.com/questions/194475/how-to-save-and-restore-a-form
في lazarus يوجد مكون مرئي TiniPropStorage لحفظ ملفات ini على الفورم ولا تحتاج لكتابة أي كود فقط ضبط الخصائص ويستخدم مثلا في حفظ اعدادات الاتصال بالسيرفر في حالة قواعد البيانات التي تعتمد على سيرفر
ويوجد مكون أخر للحفظ بامتداد xml و مكون اخر للحفظ بامتداد json
لازاروس أولى بالاهتمام والرعاية من دلفي لأن دلفي غير مجانية وباهظمة الثمن
السلام عليكم
اخواني الاعزاء
هناك مثال المطلوب هو حفظ مكان الاطارات على النافذة حاولت به ولكن كل محاولاتي كانت فاشلة
التحميل هنا