Иллюстрированный самоучитель по Tirbo Pascal




Программа Notebook - часть 5


Txt: array [0..3] of String [52] = ( 

{Справочный текст:}

'Убрать - удалить запись, выделенную цветом ', 

'Искать - искать запись, начинающуюся нужными буквами', 

'Изменить - изменить поле (поля) выделенной записи', 

'Добавить - добавить новую запись'); 

var

R: TRect; 

D: PDlgWin; 

k: Integer; 

begin

R.Assign(7,6,74,15) ;

D := New (PDlgWin, Init (R, 'Выберите продолжение:')); 

with D do begin

for k := 0 to 3 do{Вставляем поясняющий текст} 

begin

R.Assign(1,1+k,65,2+k) ;

Insert (New(PStaticText, Init (R,#3+Txt [k] ) ) ) 

end;

for k := 0 to 4 do {Вставляем кнопки:} 

begin

R.Assign(X+k*DX,6,X+k*DX+L,8) ; 

Insert (New (PButton, Init(R,But [k] ,cmCan+k,bf Normal) ) )

end;

SelectNext (False) ; {Активизируем первую кнопку} 

end;

Control := DeskTop.ExecView(D) ; {Выполняем диалог} 

end; {Control}

{-----------------}

Procedure TInterior.HandleEvent; 

Procedure DeleteItem;

{Удаляет указанный в Location элемент данных} 

var

D: Integer;

PStr: PString;

s: String;

Data: DataType; 

begin

PStr := PS.At(Location); {Получаем текущую запись}

s := copy(PStr,1,LName);

seek(DataFile,0);

D := -1; {D - номер записи в файле}

repeat {Цикл поиска по совпадению поля Name:} 

inc(D) ;

read(DataFile,Data);

with Data do while Length(Name) < LName do 

Name := Name+' '

until Data.Name=s;

seek(DataFile,pred(FileSize(DataFile)));

read(DataFile,Data); {Читаем последнюю запись}

seek(DataFile,D);

write(DataFile,Data); {Помещаем ее на место удаляемой}

seek(DataFile,pred(Filesize(DataFile)));

truncate(DataFile); {Удаляем последнюю запись}

with PS do D := IndexOf(At(Location));

PS.AtFree(D); {Удаляем строку из коллекции}

Draw {Обновляем окно} 

end; {DeleteItem}

{-------------}

Procedure AddItemfEdit: Boolean);

{Добавляет новый или редактирует старый элемент данных} 

const у = 1; 

dy= 2;

L = LName+LPhone+LAddr; 

var

Data: DataType; 




Содержание  Назад  Вперед