![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить переменные?
konusov © (2002-04-06 22:31:00)Как при выходе из программы сохранить переменные разных типов в текстовый файл, а при запуске программы восстановить их из файла?
Sergey Saf (2002-04-08 14:32:00) [1]Получилось ?
Sergey Saf (2002-04-07 13:54:00) [2]Сделай эту прогу,разберешься...
unit Unit1;
interface
uses
Windows, Messages, IniFiles,SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Edit1: TEdit;
Edit2: TEdit;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
F: TIniFile;
names: TStringList;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) +
"window.ini");
Form1.Left := F.ReadInteger("position", "left", 0);
Form1.Width := F.ReadInteger("position", "width", 200);
Form1.Top := F.ReadInteger("position", "top", 0);
Form1.Height := F.ReadInteger("position", "height", 200);
Edit1.Text := F.ReadString("tools", "edit1", "no text");
Edit2.Text := IntToStr(F.ReadInteger("tools", "koef", 0));
CheckBox1.Checked := F.ReadBool("tools", "check", true);
names := TStringList.Create;
F.ReadSection("files", names);
for i := 0 to Names.Count - 1 do
ListBox1.Items.Add(F.ReadString("files", names.Strings[i],
""));
names.Destroy;
F.Destroy;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
F: TIniFile;
i: integer;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) +
"window.ini");
F.WriteInteger("position", "left", Form1.Left);
F.WriteInteger("position", "width", Form1.Width);
F.WriteInteger("position", "top", Form1.Top);
F.WriteInteger("position", "height", Form1.Height);
F.WriteString("tools", "edit1", Edit1.Text);
F.WriteInteger("tools", "koef", StrToIntDef(Edit2.Text, 0));
F.WriteBool("tools", "check", CheckBox1.Checked);
for i := 0 to ListBox1.Items.Count - 1 do
F.WriteString("files", "file" + IntToStr(i+1), ListBox1.Items.Strings[i]);
F.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text);
end;
end.
hooky-mars (2002-04-07 12:53:00) [3]Вот тут всё написано.
http://www.sources.ru/delphi/delphi_my_own_database.shtml
Если не знаеш как заполнить тамашний массив, то делай так:
for i:=1 to 50 do
begin
members[i].name:="";
members[i].eMail:="@";
members[i].Posts:=i
end;
Vcoder (2002-04-07 12:31:00) [4]Можешь сохранять ВСЮ ФОРМУ сразу - почитай про ReadComponentResFile / WriteComponentResFile. Нужны подробности - пиши, объясню.
SPeller (2002-04-07 02:57:00) [5]Тебе обязятельно в текстовый ? Может лучше просто без текста туда их запихать ?
Sergey_n (2002-04-07 00:52:00) [6]А чем реестр не нравиться???
MBo (2002-04-06 22:35:00) [7]TIniFile
y-soft (2002-04-06 22:34:00) [8]Вопрос этот многократно здесь рассматривался. Воспользуйтесь TIniFile, только придется самостоятельно делать приведение для нестандартных типов.