Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 48 стр.

UptoLike

Составители: 

49
GetExtent(r);
r.b.y:=r.a.y+1;
MenuBar:=New(PMenuBar,Init(r,NewMenu(
NewSubMenu(‘~F~ile’,hcNoContext,
NewMenu(
NewItem(‘~O~pen’,’F3’,kbF3,cmOpenFile,hcNoContext,
NewItem(‘~S~ave’,’F2’,kbF2,cmSaveFile,hcNoContext,
NewLine(
NewItem(‘~Q~uit’,’Alt+X’,kbAltX,cmQuit,0,nil))))),
NewSubMenu(‘~E~dit’,hcNoContext,
NewMenu(
NewItem(‘~C~ut’,’Shift+Del’,kbShiftDel,cmCut,0,
NewItem(‘c~O~py’,’Ctrl+Ins’,kbCtrlIns,cmCopy,0,nil))),
nil)))))
end;
Указатель на созданное меню помещается в переменную MenuBar.
Создание строки статуса. Для формирования строки статуса необ-
ходимо создать объект TStatusLine. Этот объект создается методом Init-
StatusLine, который сохраняет указатель на него
в глобальной переменной
StatusLine. Метод InitStatusLine всегда перекрывается в потомках от TAp-
plication. InitStatusLine создает объект TStatusLine, размещая его в динами-
ческой памяти процедурой New:
StatusLine:=New(PStatusLine,Init(аргументы));
В процедуре New используется конструктор Init объекта TStatusLine.
Constructor TStatusLine.Init(Var Bounds:TRect;ADefs:PStatusDef);
где PStatusDef=^TStatusDef;
TStatusDef=record
next:PStatusDef;
Min,Max:Word;
Items:PStatusItem;
end;
Записи TStatusDef создаются функцией NewStatusDef:
Function NewStatusDef(AMin,Amax:Word;AItems:PStatusItem;ANext:
PStatusDef):PStatusDef;
где PStatusItem=^TStatusItem;
TStatusItem=record
next:PStatusItem;
Text:PString;
KeyCode:Word;
                                    49
     GetExtent(r);
     r.b.y:=r.a.y+1;
      MenuBar:=New(PMenuBar,Init(r,NewMenu(
                   NewSubMenu(‘~F~ile’,hcNoContext,
                    NewMenu(
                    NewItem(‘~O~pen’,’F3’,kbF3,cmOpenFile,hcNoContext,
                    NewItem(‘~S~ave’,’F2’,kbF2,cmSaveFile,hcNoContext,
                            NewLine(

  NewItem(‘~Q~uit’,’Alt+X’,kbAltX,cmQuit,0,nil))))),
               NewSubMenu(‘~E~dit’,hcNoContext,
                 NewMenu(
                 NewItem(‘~C~ut’,’Shift+Del’,kbShiftDel,cmCut,0,

  NewItem(‘c~O~py’,’Ctrl+Ins’,kbCtrlIns,cmCopy,0,nil))),
                        nil)))))
                       end;
     Указатель на созданное меню помещается в переменную MenuBar.

       •Создание строки статуса. Для формирования строки статуса необ-
ходимо создать объект TStatusLine. Этот объект создается методом Init-
StatusLine, который сохраняет указатель на него в глобальной переменной
StatusLine. Метод InitStatusLine всегда перекрывается в потомках от TAp-
plication. InitStatusLine создает объект TStatusLine, размещая его в динами-
ческой памяти процедурой New:
       StatusLine:=New(PStatusLine,Init(аргументы));
       В процедуре New используется конструктор Init объекта TStatusLine.
       Constructor TStatusLine.Init(Var Bounds:TRect;ADefs:PStatusDef);
       где PStatusDef=^TStatusDef;
          TStatusDef=record
                     next:PStatusDef;
                     Min,Max:Word;
                     Items:PStatusItem;
                     end;
       Записи TStatusDef создаются функцией NewStatusDef:
       Function      NewStatusDef(AMin,Amax:Word;AItems:PStatusItem;ANext:
PStatusDef):PStatusDef;
       где PStatusItem=^TStatusItem;
          TStatusItem=record
                     next:PStatusItem;
                     Text:PString;
                     KeyCode:Word;