Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.11.2009, 22:37
m1kpo m1kpo вне форума
Прохожий
 
Регистрация: 17.11.2009
Сообщения: 2
Репутация: 10
Сообщение Сохранение значений при закрытии программы

Помогите, пожалуйста. На форме имеется компонент Label. Предполагается, что заголовок его будет постоянно изменяться, но после повторного открытия программы заголовок становится таким, каким я сделал его в начале. Что нужно написать, что бы заголовок, при запуске программы, имел последнее, перед закрытием программы, значение.
Ответить с цитированием
  #2  
Старый 18.11.2009, 01:34
Boris the Blade Boris the Blade вне форума
Прохожий
 
Регистрация: 17.09.2009
Сообщения: 27
Репутация: 10
По умолчанию

Если по рабоче-крестьянски, то:
1. создаешь файл, туда записываешь заголовки при закрытии,
2. при открытии загружаешь заголовки из файла
Ответить с цитированием
  #3  
Старый 18.11.2009, 09:53
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Есть 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.
2. Все настройки хранить в файле *.ini
Код:
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  
Старый 18.11.2009, 11:14
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Есть еще третий вариант, хранить в ресурсе, но я этот способ не проверял, хотя примерчик вот:
http://www.delphisources.ru/pages/fa...strs_rtti.html
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 18.11.2009, 11:42
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Интересный вариант, вся прога и настройки хранятся в одном файле...
Вот инфа по вышепримененной функции:
http://podgoretsky.com/ftp/Docs/Delp...alProtect.html
Хотя я думаю это не совсем то...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #6  
Старый 18.11.2009, 23:19
m1kpo m1kpo вне форума
Прохожий
 
Регистрация: 17.11.2009
Сообщения: 2
Репутация: 10
Сообщение

Спасибо всем. Воспользовался методом записи в реестр. Думал есть варианты без участия стороних приложений.
Ответить с цитированием
  #7  
Старый 18.11.2009, 23:53
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

За спасибо пожалуйста...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter