Текущий архив: 2007.12.09;
Скачать: CL | DM;
Вниз
Запись формы. Найти похожие ветки
← →
авыф (2007-11-06 16:12) [0]Здавствуйте, уважаемые мастера.
Нужно сохранять параметры формы при закрытии приложения. Пишу так:
var
s1: tstringlist;
begin
s1:=tstringlist.create;
s1.Add(Form1.Caption);
...
s1.SaveToFile("1.xxx")
s1.Free;
end;
И загружаю так же, но параметры не восстанавливаются. Что я делаю не так?
← →
oldman © (2007-11-06 16:15) [1]
> Что я делаю не так?
все!
← →
Ega23 © (2007-11-06 16:16) [2]Навскидку - надо полный путь к файлу указать. И при сохранении, и при загрузке.
Это при условии, что всё остальное работает.
← →
авыф (2007-11-06 16:21) [3]s1.SaveToFile("c:\1.xxx")
и, при загрузке проги:
s1.LoadFromFile("c:\1.xxx")
а дальше-то что?
← →
oldman © (2007-11-06 16:21) [4]Если уж возникла такая проблема, банальный TIniFile уже не канает?
На фига нужно tstringlist.SaveToFile???
← →
авыф (2007-11-06 16:22) [5]
> oldman © (06.11.07 16:21) [4]
не знаю. Подскажите как это сделать.
← →
boriskb © (2007-11-06 16:33) [6]Подсказали уже.
Или ини файл или работу с реестром читай.
Там обычно такие вещи содержат.
← →
Reindeer Moss Eater © (2007-11-06 16:35) [7]s1.LoadFromFile("c:\1.xxx")
а дальше-то что?
caption := s1.Text;
← →
TUser © (2007-11-06 17:52) [8]TJvFormStorage
← →
Kolan © (2007-11-06 18:01) [9]Изучите систему сериализации Delphi
http://www.rsdn.ru/article/?500
← →
Gadenysh (2007-11-07 11:20) [10]TFormStorage из rxLib есть
← →
Kerk © (2007-11-07 13:07) [11]
> Запись формы.
Когда бегло читаю заголовок, в первом слове после "а" отчетливо видится буква "и" почему-то :[
← →
de. (2007-11-07 16:51) [12]
>
> авыф (06.11.07 16:12)
От сердца отрываю...unit uIniFiles;
interface
uses
uTypes;
//Âûçîâ è ñîõðàíåíèå ñòðîêè
function fnGetIniFileStr(const F, S, I, D: String): String;
procedure prSetIniFileStr(const F, S, I, V: String);
//Âûçîâ è ñîõðàíåíèå öåëîãî çíà÷åíèÿ
function fnGetIniFileInt(const F, S, I: String; D: Integer): Integer;
procedure prSetIniFileInt(const F, S, I: String; V: Integer);
//Âûçîâ è ñîõðàíåíèå âåùåñòâåííîãî çíà÷åíèÿ
function fnGetIniFileRea(const F, S, I: String; D: Real): Real;
procedure prSetIniFileRea(const F, S, I: String; V: Real);
//Âûçîâ è ñîõðàíåíèå ëîãè÷åñêîãî çíà÷åíèÿ
function fnGetIniFileBoo(const F, S, I: String; D: Boolean): Boolean;
procedure prSetIniFileBoo(const F, S, I: String; V: Boolean);
//Âûçîâ è ñîõðàíåíèå çíà÷åíèÿ äàòû è âðåìåíè
function fnGetIniFileDTm(const F, S, I: String; D: TDateTime): TDateTime;
procedure prSetIniFileDTm(const F, S, I: String; V: TDateTime);
//Âûçîâ è ñîõðàíåíèå çíà÷åíèÿ óêàçàííîãî òèïà
function fnGetIniFile(const F, S, I, D: String; T: tpVar): String; overload;
procedure prSetIniFile(const F, S, I, V: String; T: tpVar); overload;
//Âûçîâ è ñîõðàíåíèå íåïîñðåäñòâåí&# 237;î ñòðîêîâîãî çíà÷åíèÿ
function fnGetIniFile(const F, S, I, D: String): String; overload;
procedure prSetIniFile(const F, S, I, V: String); overload;
implementation
uses
SysUtils, IniFiles;
function fnGetIniFileStr(const F, S, I, D: String): String;
begin
Result := "";
with TIniFile.Create(Trim(F)) do
try
Result := Trim(ReadString(Trim(S), Trim(I), Trim(D)));
finally
Free;
end;
end;
procedure prSetIniFileStr(const F, S, I, V: String);
begin
with TIniFile.Create(Trim(F)) do
try
WriteString(Trim(S), Trim(I), Trim(V));
finally
Free;
end;
end;
function fnGetIniFileInt(const F, S, I: String; D: Integer): Integer;
begin
Result := 0;
with TIniFile.Create(Trim(F)) do
try
Result := ReadInteger(Trim(S), Trim(I), D);
finally
Free;
end;
end;
procedure prSetIniFileInt(const F, S, I: String; V: Integer);
begin
with TIniFile.Create(Trim(F)) do
try
WriteInteger(Trim(S), Trim(I), V);
finally
Free;
end;
end;
function fnGetIniFileRea(const F, S, I: String; D: Real): Real;
begin
Result := 0.00;
with TIniFile.Create(Trim(F)) do
try
Result := ReadFloat(Trim(S), Trim(I), D);
finally
Free;
end;
end;
procedure prSetIniFileRea(const F, S, I: String; V: Real);
begin
with TIniFile.Create(Trim(F)) do
try
WriteFloat(Trim(S), Trim(I), V);
finally
Free;
end;
end;
function fnGetIniFileBoo(const F, S, I: String; D: Boolean): Boolean;
begin
Result := False;
with TIniFile.Create(Trim(F)) do
try
Result := ReadBool(Trim(S), Trim(I), D);
finally
Free;
end;
end;
procedure prSetIniFileBoo(const F, S, I: String; V: Boolean);
begin
with TIniFile.Create(Trim(F)) do
try
WriteBool(Trim(S), Trim(I), V);
finally
Free;
end;
end;
function fnGetIniFileDTm(const F, S, I: String; D: TDateTime): TDateTime;
begin
Result := 0;
with TIniFile.Create(Trim(F)) do
try
Result := ReadDateTime(Trim(S), Trim(I), D);
finally
Free;
end;
end;
procedure prSetIniFileDTm(const F, S, I: String; V: TDateTime);
begin
with TIniFile.Create(Trim(F)) do
try
WriteDateTime(Trim(S), Trim(I), V);
finally
Free;
end;
end;
function fnGetIniFile(const F, S, I, D: String; T: tpVar): String;
begin
Result:= "";
case T of
vrString: Result := fnGetIniFileStr(F, S, I, D);
vrInteger: Result := IntToStr(fnGetIniFileInt(F, S, I, StrToInt(D)));
vrReal: Result := FloatToStr(fnGetIniFileRea(F, S, I, StrToFloat(D)));
vrBoolean: Result := BoolToStr(fnGetIniFileBoo(F, S, I, StrToBool(D)));
vrDateTime: Result := DateTimeToStr(fnGetIniFileDTm(F, S, I, StrToDateTime(D)));
end;
end;
procedure prSetIniFile(const F, S, I, V: String; T: tpVar);
begin
case T of
vrString: prSetIniFileStr(F, S, I, V);
vrInteger: prSetIniFileInt(F, S, I, StrToInt(V));
vrReal: prSetIniFileRea(F, S, I, StrToFloat(V));
vrBoolean: prSetIniFileBoo(F, S, I, StrToBool(V));
vrDateTime: prSetIniFileDTm(F, S, I, StrToDateTime(V));
end;
end;
function fnGetIniFile(const F, S, I, D: String): String;
begin
fnGetIniFile(F, S, I, D, vrString);
end;
procedure prSetIniFile(const F, S, I, V: String);
begin
prSetIniFile(F, S, I, V, vrString);
end;
end.
← →
de. (2007-11-07 16:53) [13]Вызываем и сохраняем:
(********************* Ïðèìåíåíèå íàñòðîèê ini- ôàéëà ***********************)
try
ClientHeight := fnGetIniFileInt(cnIniFile, "frmMain",
"ClientHeight", dfMainClientHeight);
ClientWidth := fnGetIniFileInt(cnIniFile, "frmMain",
"ClientWidth", dfMainClientWidth);
Constraints.MaxHeight := fnGetIniFileInt(cnIniFile, "frmMain",
"MaxHeight", dfMainMaxHeight);
Constraints.MaxWidth := fnGetIniFileInt(cnIniFile, "frmMain",
"MaxWidth", dfMainMaxWidth);
Constraints.MinHeight := fnGetIniFileInt(cnIniFile, "frmMain",
"MinHeight", dfMainMinHeight);
Constraints.MinWidth := fnGetIniFileInt(cnIniFile, "frmMain",
"MinWidth", dfMainMinWidth);
Height := fnGetIniFileInt(cnIniFile, "frmMain", "Height", dfMainHeight);
Width := fnGetIniFileInt(cnIniFile, "frmMain", "Width", dfMainWidth);
Left := fnGetIniFileInt(cnIniFile, "frmMain", "Left", dfMainLeft);
Top := fnGetIniFileInt(cnIniFile, "frmMain", "Top", dfMainTop);
case fnGetIniFileInt(cnIniFile, "frmMain",
"WindowState", dfMainWindowState) of
0: WindowState := wsNormal;
1: WindowState := wsMinimized;
2: WindowState := wsMaximized;
end;
except
WindowState := wsMaximized;
end;
(****************************************************************************)(********************* Ñîõðàíåíèå íàñòðîèê ini- ôàéëà ***********************)
case WindowState of
wsNormal:
begin
prSetIniFileInt(cnIniFile, "frmMain", "ClientHeight", ClientHeight);
prSetIniFileInt(cnIniFile, "frmMain", "ClientWidth", ClientWidth);
prSetIniFileInt(cnIniFile, "frmMain", "Height", Height);
prSetIniFileInt(cnIniFile, "frmMain", "Width", Width);
prSetIniFileInt(cnIniFile, "frmMain", "Left", Left);
prSetIniFileInt(cnIniFile, "frmMain", "Top", Top);
prSetIniFileInt(cnIniFile, "frmMain", "WindowState", 0);
end;
wsMinimized: prSetIniFileInt(cnIniFile, "frmMain", "WindowState", 1);
wsMaximized: prSetIniFileInt(cnIniFile, "frmMain", "WindowState", 2);
end;
(****************************************************************************)
← →
de. (2007-11-07 16:55) [14]
(******************************** Îáùèå òèïû **********************************)
unit uTypes;
interface
(************************ Îáúÿâëåíèå òèïîâ ïåðåìåííûõ *************************)
type
tpVar= (vrString, vrInteger, vrReal, vrBoolean, vrDateTime);
(******************************************************************************)
implementation
end.
← →
Dimaxx © (2007-11-07 19:06) [15]TWriter.WriteComponent
Страницы: 1 вся ветка
Текущий архив: 2007.12.09;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.022 c