|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
За спасибо пожалуйста...
В начале был Бит, потом Байт и только потом появилось Слово... |