Тексты программ_________________ _____ 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 = Р;