Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1194804112
pirks
2007-11-11 21:01
2007.12.09
объединение RadioButton в группу...


2-1194846459
KSergey
2007-11-12 08:47
2007.12.09
Передача строки в параметр PChar


15-1194848225
Slider007
2007-11-12 09:17
2007.12.09
С днем рождения ! 12 ноября 2007 понедельник


2-1195295756
infom
2007-11-17 13:35
2007.12.09
Сохранение rtf с помощью TRichEdit.


11-1180190605
Kustarnik
2007-05-26 18:43
2007.12.09
RbControls for Kol