![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите, пожалуйста. На форме имеется компонент Label. Предполагается, что заголовок его будет постоянно изменяться, но после повторного открытия программы заголовок становится таким, каким я сделал его в начале. Что нужно написать, что бы заголовок, при запуске программы, имел последнее, перед закрытием программы, значение.
|
|
#2
|
|||
|
|||
|
Если по рабоче-крестьянски, то:
1. создаешь файл, туда записываешь заголовки при закрытии, 2. при открытии загружаешь заголовки из файла |
|
#3
|
||||
|
||||
|
Есть 2 варианта:
1. Все настройки хранить в реестре винды. Код:
unit RDUnit;
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Registry;
type
TForm1 = class(TForm)
Memo1: TMemo;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation{$R *.DFM}var
RegFile: TRegIniFile;
const
//Подсекция
SubKey: string = 'Software\RegDemo';
// Элемент для хранения логических данных
BoolKey: string = 'BoolKey';
// Элемент для хранения целочисленных данных
IntKey: string = 'IntKey';
// Элемент для хранения строчных данных
StrKey: string = 'StrKey';
procedure TForm1.FormCreate(Sender: TObject);
begin
// Создать экземпляр класса
RegFile := TRegIniFile.Create(SubKey);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Записать целочисленное значение
RegFile.WriteInteger(IntKey, 'Value', 1998);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// Записать булево значение
RegFile.WriteBool(BoolKey, 'Value', True);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// Записать строку
RegFile.WriteString(StrKey, 'Value', 'Demo');
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
// Считать целочисленное значение
Memo1.Lines.Add('Int Value = ' +
IntToStr(RegFile.ReadInteger(IntKey,
'Value', 0)));
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
// Считать булево значение
if RegFile.ReadBool(BoolKey, 'Value', False) then
Memo1.Lines.Add('Bool Value = True')
else
Memo1.Lines.Add('Bool Value = False');
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
// Считать строку
Memo1.Lines.Add(RegFile.ReadString(StrKey, 'Value', ''));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Удалить секцию
RegFile.EraseSection(SubKey);
// Освободить память
RegFile.Free;
end;
end.Код:
var
IniFile: TIniFile;
//конкретные переменные - мои - храню их в инишке
IniPortItem: integer;
IniRTSChecked: boolean;
const
//значения по умолчанию
DefPortItem = 1;
DefRTSChecked = false;
procedure ReadIni;
var
IniPath: string;
FileName: string;
begin
GetDir(0,IniPath);
FileName:=IniPath+'\muk.ini';
IniFile:=TIniFile.Create(FileName);
IniPortItem:=IniFile.ReadInteger('Port','Number',DefPortItem);
IniRTSChecked:=IniFile.ReadBool('Port','RTS/CTS',DefRTSChecked);
IniFile.Free;
end;
procedure SaveIni;
var
IniPath: string;
FileName: string;
begin
GetDir(0,IniPath);
FileName:=IniPath+'\muk.ini';
IniFile:=TIniFile.Create(FileName);
IniFile.WriteInteger('Port','Number',IniPortItem);
IniFile.WriteBool('Port','RTS/CTS',IniRTSChecked);
IniFile.Free;
end; |
|
#4
|
||||
|
||||
|
Есть еще третий вариант, хранить в ресурсе, но я этот способ не проверял, хотя примерчик вот:
http://www.delphisources.ru/pages/fa...strs_rtti.html |
|
#5
|
||||
|
||||
|
Интересный вариант, вся прога и настройки хранятся в одном файле...
Вот инфа по вышепримененной функции: http://podgoretsky.com/ftp/Docs/Delp...alProtect.html Хотя я думаю это не совсем то... |
|
#6
|
|||
|
|||
|
Спасибо всем. Воспользовался методом записи в реестр. Думал есть варианты без участия стороних приложений.
|
|
#7
|
||||
|
||||
|
За спасибо пожалуйста...
|