ورود

View Full Version : FontDialog



aras12000
سه شنبه 10 آذر 1383, 09:24 صبح
سلام
کسی می داند چطور می توانم نوع.رنگ و کلیه تغییراتی که کاربر در موقع کار از طریق FontDialog من اعمال می کند را در جایی ذخیره کنم تادفعه بعد
برنامه با آن مشخصات باز شود؟

vcldeveloper
چهارشنبه 11 آذر 1383, 03:44 صبح
برای ذخیره تنظیمات در فایل:


procedure TForm1.btnSaveToFileClick(Sender: TObject);
var
FStream,SStream : TStream;
TempList : TStringList;
begin
FStream := TMemoryStream.Create;
SStream := TMemoryStream.Create;
TempList := TStringList.Create;
try
FStream.WriteComponent (FormDialog1);
FStream.Position := 0;
ObjectBinaryToText (FStream, SStream);
SStream.Position := 0;
TempList.LoadFromStream (SStream);
FileName := ExtractFilePath(Application.ExeName) + '\FontCfg';
TempList.SaveToFile(FileName);
finally
TempList.Free;
SStream.Free;
FStream.Free;
end;
end;
برای بازیابی تنظیمات از فایل:


procedure TForm1.btnLoadFromFileClick(Sender: TObject);
var
FStream,SStream : TStream;
TempList : TStringList;
begin
FileName := ExtractFilePath(Application.ExeName) + '\FontCfg';
if not FileExists(FileName) then
Exit;

FStream := TMemoryStream.Create;
SStream := TMemoryStream.Create;
TempList := TStringList.Create;
try
TempList.LoadFromFile(FileName);
TempList.SaveToStream(FStream);
FStream.Position := 0;
ObjectTextToBinary(FStream, SStream);
SStream.Position := 0;
SStream.ReadComponent(FormDialog1);
finally
TempList.Free;
SStream.Free;
FStream.Free;
end;
end;
از این روش می تونید برای ذخیره تنظیمات هر کامپوننتی استفاده کنید.

aras12000
چهارشنبه 11 آذر 1383, 09:14 صبح
سلام و خسته نباشید.از راهنماییتان خیلی ممنون.خیلی جالب و عالی بود.

shareh
جمعه 17 فروردین 1386, 10:09 صبح
ببخشید میشه بگید که FileName در این کد چی باید باشه ؟
من این کد رو اجرا کردم روی همین Error داد

vcldeveloper
جمعه 17 فروردین 1386, 21:07 عصر
FileName یک متغیر از نوع string باید باشه که نام فایلی را که اطلاعات در آن ذخیره می کند را مشخص می کند.

shareh
جمعه 17 فروردین 1386, 21:57 عصر
ببخشید آزمایش کردم جواب نداد
اگه براتون ممکنه روی این یکی فایل الحاقی انجامش بدین

vcldeveloper
شنبه 18 فروردین 1386, 07:51 صبح
توی btnLoadFromFile خطی که فایل را از C:\Test می خونه اشتباه هست. جای اون آدرس باید FileName رو بزارید:


TempList.LoadFromFile(FileName);