Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  135

•  TDictionary Custom Sort  3 315

•  Fast Watermark Sources  3 065

•  3D Designer  4 825

•  Sik Screen Capture  3 320

•  Patch Maker  3 535

•  Айболит (remote control)  3 637

•  ListBox Drag & Drop  2 996

•  Доска для игры Реверси  81 559

•  Графические эффекты  3 927

•  Рисование по маске  3 231

•  Перетаскивание изображений  2 613

•  Canvas Drawing  2 735

•  Рисование Луны  2 561

•  Поворот изображения  2 166

•  Рисование стержней  2 161

•  Paint on Shape  1 564

•  Генератор кроссвордов  2 226

•  Головоломка Paletto  1 764

•  Теорема Монжа об окружностях  2 214

•  Пазл Numbrix  1 682

•  Заборы и коммивояжеры  2 052

•  Игра HIP  1 279

•  Игра Go (Го)  1 224

•  Симулятор лифта  1 471

•  Программа укладки плитки  1 214

•  Генератор лабиринта  1 542

•  Проверка числового ввода  1 352

•  HEX View  1 490

•  Физический маятник  1 355

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Замена Form на FormIni



Автор: Nick Hodges (Monterey, CA)


unit Formini;

{$IFDEF Production}
{$S-,R-,D-,L-,W-}
{$ENDIF}

{
TFormINI новая замена TForm, умеющая автоматически сохранять и восстанавливать
значения свойств Top, Left, Height, Width и WindowState
из программного INI-файла без какого-то либо программирования.

Код берет имя выполняемого файла из Application.EXEName и меняет
расширение на .INI.

В качестве имени секции при хранении величин в INI-файле,
TFormINI использует заголовок формы.

Просто замените все существующие объявления класса TForm на TFormINI,
и TFormINI позаботится обо всем остальном (в пределах функциональности).

Теперь ваши формы будут такие же, как и при их закрытии.

TMyForm = class(TForm) -> TMyForm = class(TFormINI)
}

interface

uses InIFiles, Forms, Controls, SysUtils, WinTypes, Classes;

type
  TFormINI = class(TForm)
  private
    PrgINI: TIniFile;
    FSection: string;
  protected
    procedure WriteInteger(Section, Ident: string; value: longint);
    function ReadInteger(Section, Ident: string; Default: longint): longint;
  public
    constructor Create(AOwner: TComponent); override;
    procedure CreateParams(var Params: TCreateParams); override;

    procedure DoShow; override;
    destructor Destroy; override;
  end;

implementation

constructor TFormINI.Create(AOwner: TComponent);
var
  INIFile: string;
begin
  INIFile := ExtractFileName(Application.EXEName);
  INIFile := ChangeFileExt(INIFile, '.INI');
  PrgINI := TIniFile.Create(INIFile);
  inherited Create(AOwner);
end;

procedure TFormINI.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    FSection := StrPas(Caption);
    Y := ReadInteger('', 'Top', 0);
    X := ReadInteger('', 'Left', 0);
    Width := ReadInteger('', 'Width', Width);
    Height := ReadInteger('', 'Height', Height);
  end;
end;

procedure TFormINI.DoShow;
var
  aWindowState: integer;
begin
  aWindowState := ReadInteger('', 'WindowState', 0);
  case aWindowState of
    0: WindowState := wsNormal;
    1: WindowState := wsMinimized;
    2: WindowState := wsMaximized;
  end;
  inherited DoShow;
end;

procedure TFormINI.WriteInteger(Section, Ident: string; value: longint);
begin
  if Section = '' then
    PrgINI.WriteInteger(FSection, Ident, value)
  else
  begin
    PrgINI.WriteInteger(Section, Ident, value);
    FSection := Section;
  end;
end;

destructor TFormINI.Destroy;
begin
  if WindowState = wsNormal then
  begin
    WriteInteger('', 'Top', Top);
    WriteInteger('', 'Left', Left);
  end;
  WriteInteger('', 'Width', Width);
  WriteInteger('', 'Height', Height);
  case WindowState of
    wsNormal: WriteInteger('', 'WindowState', 0);
    wsMinimized: WriteInteger('', 'WindowState', 1);
    wsMaximized: WriteInteger('', 'WindowState', 2);
  end;
  PrgINI.Free;
  inherited Destroy;
end;

function TFormINI.ReadInteger(Section, Ident: string; Default: longint):
  longint;
begin
  if Section = '' then
    Result := PrgINI.ReadInteger(FSection, Ident, Default)
  else
  begin
    Result := PrgINI.ReadInteger(Section, Ident, Default);
    FSection := Section;
  end;
end;

end.





Похожие по теме исходники

Form Animator

HLS Color Formats

Personalize Form

Skinnable Form

 

Image Deformator

Hollow Form

Round Form

Form in Form

 

DLL Form




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте