Читать «Виртуальная библиотека Delphi» онлайн - страница 68

Unknown

Модифицированный модуль system.pas – http://xcl.cjb.net

4. Библиотека WinLite

////////////////////////////////////////////////////////////////////////////////

// WinLite, библиотека классов и функций для работы с Win32 API

// (c) Николай Мазуркин, 1999-2000

// ___________________________________________________________

// Оконные классы

////////////////////////////////////////////////////////////////////////////////

unit WinLite;

interface

uses Windows, Messages;

Инициализационные структуры

Объявление структур, которые используются для формирования параметров вновь создаваемых окон и диалогов соответственно.

////////////////////////////////////////////////////////////////////////////////

// Параметры для создания окна

////////////////////////////////////////////////////////////////////////////////

type

  TWindowParams = record

    Caption     : PChar;

    Style       : DWord;

    ExStyle     : DWord;

    X           : Integer;

    Y           : Integer;

    Width       : Integer;

    Height      : Integer;

    WndParent   : THandle;

    WndMenu     : THandle;

    Param       : Pointer;

    WindowClass : TWndClass;

  end;

////////////////////////////////////////////////////////////////////////////////

// Параметры для создания диалога

////////////////////////////////////////////////////////////////////////////////

type

  TDialogParams = record

    Template    : PChar;

    WndParent   : THandle;

  end;

Декларация базового класса TLiteFrame

Базовый класс для окон и диалогов. Инкапсулирует в себе дескриптор окна и объявляет общую оконную процедуру. Реализует механизм message-процедур.

////////////////////////////////////////////////////////////////////////////////

// TLiteFrame

// ____________________________________________________________

// Базовый класс для объектов TLiteWindow, TLiteDialog, TLiteDialogBox

////////////////////////////////////////////////////////////////////////////////

type

  TLiteFrame = class(TObject)

  private

    FWndCallback: Pointer;

    FWndHandle  : THandle;

    FWndParent  : THandle;

    function    WindowCallback(hWnd: HWnd; Msg,

WParam, LParam:Longint):Longint; stdcall;

  protected

    procedure   WindowProcedure(var Msg: TMessage); virtual;

  public

    property    WndHandle: THandle read FWndHandle;

    property    WndCallback: Pointer read FWndCallback;