PS ^. Count; {Колишнє кількість записів} ^. Insert (NewStr (s)); {Додаємо в колекцію}
{Перевіряємо додавання}
if OldCount <> PS ^. Count then (DataFile, Data) {Так - додаємо в файл}; Edit or (Control = cmCancel);; {AddItem}
{-------------} SearchItem;
{Шукає потрібний елемент} UpString (s: String): String;
{Перетворює рядок у верхній регістр}
var: Integer; k: = 1 to Length (s) dos [k] in ['a' .. 'z'] then [k]: = chr (ord ('A') + ord (s [k])-ord ('a')) if s [k] in ['а' .. 'п'] then [k]: = chr (ord ('А') + ord (s [k])-ord ('а')) if s [k] in ['р' .. 'я'] then [k]: = chr (ord ('Р') + ord (s [k]) -ord ('р'));: = s; {UpString}: PDialog;: TRect;: String;: PInputLine;: Word; {SearchItem}. Assign (15,8,65,16);: = New ( PDialog, Init (R, 'Пошук запису:')); InWin ^ do.Assign (2,2,47,3);: = New (PInputLine, Init (R, 50)); (p);. Assign ( 1,1,40,2); (New (PLabel, Init (R, 'Введіть зразок для пошуку:', p)));. Assign (10,5,20,7); (New (PButton, Init ( R, 'Ввести', cmOk, bfDefault)));. Assign (25,5,35,7); (New (PButton, Init (R, 'Вихід', cmCancel, bfNormal))); (False);; DeskTop ^. ExecView (InWin) = cmCancel then;: = p ^. Data ^;: = 0; (UpString (s)> = UpString (PString (PS ^. At (Location)) ^)) (Location < pred (PS ^. Count)) do (Location); (Location Delta.Y + pred (Size.Y)) then (Delta.X, Location); {SearchItem}
{-------------}: TPoint; Cls;. HandleEvent (Event); Event.What of: Event.Command of:
begin: Control of {Отримати команду з основного діалогового вікна}
cmCan, cmCancel: EndModal (cmCancel);: AddItem (True);: DeleteItem;: SearchItem;: AddItem (False);;;: exit;;: {Реакція на клацання мишею} (MouseWhere , R); {Отримуємо в R координати покажчика миші}: = Delta.Y + RY;;: {Реакція на клавіші + -} Event.KeyCode of: goto Cls;: if Location> Delta.Y then (Location); ;: if Location
{-------------} TNotebook.Work;
{Робота з даними}: TRect;: PWorkWin;: Word;. Assign (0,0,80,23);: = New (PWorkWin, Init (R));: = DeskTop ^ . ExecView (PW); (PW, Done);
{-------------} TNotebook.HandleEvent (var Event: TEvent);
{Обробник подій програми} {TNotebook.HandleEvent}. HandleEvent (Event); {Обробка стандартних команд cmQuit і cmMenu} Event.What = evCommand thenEvent.Command of
{Обробка нових команд}
cmOpen: FileOpen; {Відкрити файл}
cmSave: FileSave; {Закрити/Зберегти файл}
cmChangeDir: ChangeDir; {Змінити диск}