Тексты программ_________________ _____ 403
procedure HandleEvent(var Event: TEvent); Virtual;
Function GetPalette: PPalette; Virtual;
end;
^———————.———————————__—._——._.___+
I Создаем строку статуса и I I основное диалоговое окно I +————______——.——_—_____-_-_____________-+;
Procedure TVir.InitStatusLine;
{Формирует строку статуса.} var
R: TRect;
begin
GetExtent(R) ;
R.A.Y := pred(R.B.Y); {R - координаты строки статуса! StatusLine :» New(PStatusLine, Init(R, NewStatusDef(0,$FFFF,
NewStatusKey('~ESC~ Выход в ДОС = Стоп',kbFlO,cmQuit, NewStatusKeyl' ~F1~ Справочная служба',
kbFl,c'mHelp, NIL», NIL) ) ) ;
end; {TVir.InitStatusLine} ;-. —————____——-;
Procedure TVir.Run;
{Создает и использует основное диалоговое окно} var
DH; PDWT;
R : TRect;
Cntrl: Word;
const
cl « 'Программа защиты исполняемых файлов';
с2 = '(С) 1992, В.В.Фаронов';
сп = -5; {Левая граница ряда кнопок} begin
Stop := True;
{Создаем окно с поясняющими надписями}
R.Assign(5,5,75,14);
DW := New(PDwt, , Init (R, " )) ;
R.Assign(1,1,69,4) ;
DW.Insert(New(PStaticText,Init(R,#13#3+cl+#13+#3+c2))) ;
{Вставляем кнопки}
R.Assign(cn+7,6,cn+18,8) ;
EW-. Insert (New (PButton, Init (R, 1 •'S~ Стоп ', cmCancel,bfNormai))) ;
R.Assign(cn+18,6,cn+31,8) ;
DW.Insert(New(PButton,Init(R,1~A~ Добавить',cmSet,bfDefault))) ;
R.Assign(cn+31,6,cn+44,8) ;
DH".Insert(New(PButton,Init(R,'~D~ Удалить ',cmDel,bfNormal)));
R.Assign(cn+44,6,cn+58, 8) ;
DW^.Insert(New(PButton,Init(R,'~F~ ОбновитьI,cmFresh,bfNormal) ) ) ;
R«. Assign(cn+58,6,cn+72,8) ;
DW.Insert(New(PButton,Init(R,'~R~ Контроль',cmRun,bfNormal))) ;
DW^.HelpCtx := 1;
Cntrl :=• Desktop^.ExecView(DW);
end; {TVir.Run} {—— ——————._———;
Function TMyHelpWindow.GetPalette;
{Готовит нужную палитру для справки} coast
Р = #16#17#18»19»20#47#21#13;
С: String [81 = Р;