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

•  TDictionary Custom Sort  508

•  Fast Watermark Sources  874

•  3D Designer  1 804

•  Sik Screen Capture  1 457

•  Patch Maker  1 460

•  Айболит (remote control)  1 388

•  ListBox Drag & Drop  1 159

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

•  Графические эффекты  1 337

•  Рисование по маске  1 275

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

•  Canvas Drawing  963

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

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

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

•  Paint on Shape  486

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

•  Головоломка Paletto  659

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

•  Пазл Numbrix  607

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

•  Игра HIP  551

•  Игра Go (Го)  522

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

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

•  Генератор лабиринта  560

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

•  HEX View  596

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

•  Задача коммивояжера  556

 
скрыть


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

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



Замена 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-2022 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram