TMDIWindow (модуль OWindows)


TObject
 
Init
Done
Free
TWindowsObject
ChildList Parent
Flags Status
HWindow TransferBuffer
Instance
Init GetChildren
LoadGetClassName
Done GetClient
AddChild GetId
At GetSiblingPtr
Canclose GetWindowClass
ChildWithId IndexOf
CloseWindow IsFlagSet
CMExit Next
Create Previous
CreateChildren PutChildPtr
CreateMemoryDC PutChildren
DefChildProc PutSiblingPtr
DefCommandProc Register
DefNotificationProc RemoveChild
DefWndProc SetFlags
Destroy SetupWindow
Disable Show
DisableAutoCreate >Store
DisableTransfer Transfer
DispatchScroll TransferData
Enable >WMActivate
EnableAutoCreate WMClose
EnableKBHandler WMCommand
EnableTransfer WMDestroy
FirstThat >WMNScroll
Focus WMNCDestroy
ForEach WMNQueryEndSession
GetChildPtr >WMVScroll
TWindow
Attr
DefaultProc
Scrol[ler
FocusChildHandle
>Init
InitResource
>Load
>Done
Create
>DefWndProc
FocusChild
GetId
>GetWindowClass
Paint
SetCaption
SetupWindow
>Store
UpdateFocusChild
WMActivate
WMHScroll
WMLButtonDown
WMMDIActivate
WMMove
WMPaint
WMSize
WMSysCommand
WMVScroll
TMDIWindow
ChildMenuPos
ClientWnd
Init
Load
Done
ArrangeIcons
CascadeChildren
CloseChildren
CMArrangeIcons
CMCascadeChildren
CMCloseChildren
CreateChild
DefWndProc
GetClassName
GetClient
GetWindowClass
GetClient
GetWindowClass
InitChild
InitClientWindow
SetupWindow
Store
TileChildren

    Пользовательские окна-рамки интерфейса работы с документами (MDI), представляемые объектом TDMIWindow, представляют собой перекрываемые окна, которые используются в качестве основных окон прикладной программы MDI. Одним из основных средств объекта TDMIWindow является его собственный объект TMDIClient и сохранение его в поле ClientWnd. Другое средство - это меню дочернего окна, предлагающее возможности для работы с дочерними окнами приложения MDI. Для отражения всех выводимых на экран дочерних окон это окно автоматически получает уведомление.

Поля


ChildMenuPos (чтение/запись)

     ChildMenuPos: Integer;

    ChildMenuPos определяет индекс, задающий позицию управляющего меню дочернего окна. В индексе учитываются только элементы верхнего уровня, а верхний левый элемент занимает нулевую позицию.

ClientWnd (только чтение)

     ClientWnd: PMDIClient;

    ClientWnd указывает на обрамляющее окно (окно-рамку) окна клиента MDI, экземпляр объекта TMDIClient.

Методы


    Ниже описываются методы, определенные в данном объекте.

Init (часто переопределяется)


     constructor Init(ATitle: PChar; AMenu: HMenu);

    Строит объект окна-рамки MDI, используя заданный заголовок ATitle и меню, переданное в AMenu. Окна-рамки MDI требуют наличия меню. Окна-рамки не имеют порождающего окна и должны быть основным окном приложения. По умолчанию Init устанавливает ChildMenuPos в ноль, указывая, что меню дочернего окна - это меню верхнего уровня. Чтобы модифицировать ChildPos, переопределите в наследующих типах TMDIWindow.Init, например:

     constructor MyMDIWindow.Init(ATitle: PChar; AMenu: HMenu);
     begin
        TMDIWindow.Init(ATitle, AMenu);
        ChildMenuPos := 3;
     end;

    См. также: TMDIWindow.InitClientWindow.

Load


     constructor Load(var S: TStream);

    Строит и загружает окно-рамку MDI из потока S, вызывая сначала TWindow.Load, а затем получая и считывая дополнительные поля (ClientWnd и ChildMenuPos), введенные в TMDIWindow.

    См. также TWindow.Load.

Done (иногда переопределяется)


     destructor Done; virtual;

    Перед вызовом для уничтожения оконного объекта окна-рамки MDI наследуемого из TWindow деструктора Done уничтожает объект окна клиента MDI, записанный в ClientWnd.

    См. также: TWindow.Done.

ArrangeIcons (переопределяется редко)


     procedure ArrangeIcons;

    Упорядочивает порожденные окна MDI с пиктограммами в нижней части пользовательского окна MDI. Вызывает метод ClientWnd^.ArrangeIcons.

    См. также: TMDIClient.ArrangeIcons.

CascadeChildren (переопределяется редко)


     procedure CascadeChildren;

    Настраивает размер и упорядочивает все безпиктограммные (неминимизированные) дочерние окна MDI в окне клиента MDI, так что они перекрываются и выводится заголовок каждого окна. Вызывает ClientWnd^.CascadeChildren.

    См. также: TMDIClient.CascadeChildren.

CloseChildren (переопределяется редко)


     procedure CloseChildren;

    Завершает все созданные дочерние окна MDI, для которых CanClose возвращает True.

    См. также: TWindow.CanClose.

CMArrangeIcons (переопределяется редко)


     procedure CMArrangeIcons(var Msg: TMessage); virtual
                              cm_First + cm_ArrangeIcons;

    Вызывая ArrangeIcons, отвечает на выбор меню с идентификатором cm_ArrangeIcons.

    См. также: TDMIWindow.ArrangeIcons.

CMCascadeChildren (переопределяется редко)


     procedure CMCascadeChildren(var Msg: TMessage); virtual
                                 cm_First + cm_CascadeChildren;

    Вызывая CascadeChildren, отвечает на выбор меню с идентификатором cm_CascadeChildren.

    См. также: TDMIWindow.CascadeChildren.

CMCreateChild (никогда не переопределяется)


     procedure CMCreateChild(Msg: TMessage); virtual
                             cm_First + cm_CloseChildren;

    Вызывая CreateChild, отвечает на выбор меню с идентификатором cm_CloseChildren.

    См. также: TDMIWindow.CreateChild.

CMTileChildren (переопределяется редко)


     procedure CMTileChildren(var Msg: TMessage); virtual
                              cm_First + cm_TileChildren;

    Вызывая TileChildren, отвечает на выбор меню с идентификатором cm_TileChildren.

    См. также: TDMIWindow.InitChild.

CreateChild


     function CreateChild: PTWindowObject; virtual;

    Вызывая InitChild и MakeWindow, строит и создает новое дочернее окно MDI. Вам нужно переопределить CreateChild, для наследующих дочерних оконных типов MDI аналогично TMDIWindow.InitChild. CreateChild возвращает указатель на новое порожденное окно MDI.

    См. также: TDMIWindow.InitChild, TApplication.MakeWindow.

DefWndProc


     procedure DefWndProc(var Msg: TMessage); virtual;

    Переопределяет выполняемую по умолчанию в TWindow обработку сообщений Windows, вызывая вместо DefWindowProc функцию Windows DefFrameProc.

GetClassName (иногда переопределяется)


     function GetClassName: PChar; virtual;

    Возвpащает имя класса окна Windows объекта TDMIWindow 'TurboMDIWindow'.

GetClient (никогда не переопределяется)


     function CetClient:  PTMDIClient; virtual;

    Возвращает указатель на окно клиента MDI, сохраненное в ClientWnd.

GetWindowClass (иногда переопределяется)


     procedure GetWindowClass(var AWndClass: TWndClass); virtual;

    Модифицирует используемую по умолчанию запись класса окна и передает ее обратно в AWndClass. GetWindowClass устанавливает поле стиля в 0 и удаляет стили, установленные TWindow.GetWindowClass.

    См. также: TWindow.GetWindowClass.

InitChild (часто переопределяется)


     function InitChild: PTWindowsObject; virtual;

    Строит объект дочернего окна MDI (TWindow) с заголовком 'MDI Child' и возвращает указатель на него. Если вы определите тип дочернего окна MDI, наследующий из TWindow, для построения окна своего нового дочернего оконного типа MDI переопределите TMDIWindow.InitChild, например:

     function MyMDIWindow.InitChild: PWindowsObject;
     begin
       InitChild := New(PMyMDIChild, Init(@Self,
                                     'Окно без заголовка');
     end;

    См. также: TDMIWindow.CreateChild.

InitClientWindow (иногда переопределяется)


     procedure InitClientWindow; virtual;

    Строит окно клиента MDI как экземпляр объекта TMDIClient, сохраняя его в ClientWnd.

SetupWindow (часто переопределяется)


     procedure SetupWindow; virtual;

    Строит окно клиента MDI (ClientWnd) соответствующего оконного элемента объекта, вызывая InitClientWindow, и создает его с помощью вызова MakeWindow. Если вы в наследующем типе переопределите SetupWindow, убедитесь в наличии явного вызова TDMIWindow.SetupWindow.

    См. также: TMDIWindow.InitClientWindow, TApplication.MakeWindow.

Store


     procedure Store(var S: TStream);

    Сохраняет окно MDI в потоке S, вызывая сначала TWindow.Store, а затем помещая и записывая дополнительные поля (ClientWnd и ChildMenuPos), введенные в TMDIWindow.

    См. также: TWindow.Store.

TileChildren (переопределяется редко)


     procedure TileChildren;

    Вызывая ClientWnd^.TileChildren, настраивает размер и упорядочивает все безпиктограммные дочерние окна MDI в окне клиента MDI, так что будет использовано без перекрытия все доступное пространство.

    См. также: TMDIClient.TileChildren.

Тип TMessage (модуль OWindows)


    Описание:

     TMessage = record
        Reseiver: HWnd;
        Message: Word;
        case Integer of
           0: (WParam: Word;
               LParam: Longint;
               Result: Longint);
           1: (WParamLo: Byte;
               WParamHi: Byte;
               LParamLo: Word;
               LParamHi: Word;
               ResultLo: Word;
               ResultHi: Word);
        end;

    Назначение: Цикл сообщения в TApplication упаковывает информацию сообщения Windows в записи TMessage перед передачей информации вместе с соответствующим методом реакции на сообщение.

    См. также: TApplication.MessageLoop.

Тип TMultiSelRec (модуль ODialogs)


    Описание:

     TMultiSelRec = record
          Count: Integer;
          Selections: array[0..0] of Integer;
     end;

    TMultiSelRec содержит список выделенных элементов для передачи в блок списка с множественным выбором или из него. Count указывает число выделенных элементов, а Selection - это открытый массив целых значений. Используя AllocMultiSel, вы можете распределить запись с достаточным для используемого блока списка числом выделяемых элементов.

    См. также: AllocMultiSel, FreeMultiSel.