Показать сообщение отдельно
  #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;
Выбирай то что больше по душе и вперед...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием