Программа Notebook
{-----------------} var R: TPoint; label Cls; begin TScroller. HandleEvent (Event); case Event. What of evCommand: case Event.Command of cmClose: begin Cls: case Control of {Получить команду из основного диалогового окна} cmCan, cmCancel: EndModal (cmCancel); cmEdit: AddItem(True); cmDelete: DeleteItem; cmSearch: SearchItem; cmAdd: AddItem(False); end end; cmZoom: exit; end; evMouseDown: {Реакция на щелчок мышью} begin MakeLocal(MouseWhere, R); {Получаем в R локальные координаты указателя мыши} Location: = Delta.Y+R.Y; Draw end; evKeyDown: {Реакция на клавиши + – } case Event.KeyCode of kbEsc: goto Cls; kbGrayMinus: if Location > Delta.Y then begin dec(Location); Draw end; kbGrayPlus: if Location < Delta.Y+pred(Size.Y)then begin inc(Location); Draw end; end end end; {Tlnterior.HandleEvent} {------------------} Procedure TNotebook.Work; {Работа с данными} var R: TRect; PW: PWorkWin; Control: Word; begin R.Assign(0.0.80.23); PW: = New (PWorkWin, Init (R)); Control: = DeskTop.ExecView(PW); Dispose (PW, Done) end; {-------------------} Procedure TNOtebook.HandleEvent (var Event: TEvent); {Обработчик событий программы} begin {TNOtebook.HandleEvent} TApplication.HandleEvent (Event); {Обработка стандартных команд cmQuit и cmMenu} if Event.What = evCommand then case Event.Command of {Обработка новых команд:} cmOpen: FileOpen; {Открыть файл} cmSave: FileSave; {Закрыть файл} cmChangeDir: ChangeDir; {Сменить диск} cmDOSShell: DOSCall; {Временный выход в ДОС} cmWork: Work; {Обработать данные} else exit {Не обрабатывать другие команды} end; ClearEvent(Event) {Очистить событие после обработки} end; {TNOtebook.HandleEvent}