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




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


R: TRect; 

InWin: PDialog;

BName,BPhone,BAddr: PInputLine; 

Control: Word; 

OldCount: Word; 

s: String; 

p: PString; 

begin

Seek(DataFile,Filesize(DataFile));{Добавляем записи

в конец файла} 

repeat {Цикл ввода записей}

if Edit then {Готовим заголовок}

s := 'Редактирование:' 

else 

begin

Str(Filesize(DataFile)+1,s); 

while Length(s) < 3 do

s := '0'+s;

s := 'Вводится запись N '+s 

end;

FillChar(Data,SizeOf(Data),' ');{Заполняем поля пробелами} 

R.Assign(15,5,65,16); 

InWin := New(PDialog, Init(R, s));{Создаем окно} 

with InWin do 

begin

R.Assign(2,y+1,2+LName,y+2); {Формируем окно:}

BName := New(PInputLine, Init(R,LName))

Insert(BName); {Поле имени} 

R.Assign(2,y,2+LName,y+1) ; 

Insert(New(PLabel, Init(R, 'Имя',BName))); 

R.Assign(2,y+dy+1,2+LPhone,y+dy+2); 

BPhone := NewtPInputLine, Init(R,LPhone));

Insert(BPhone); {Поле телефон}

R.Assign(2,y+dy,2+LPhone,y+dy+1); 

Insert(New(PLabel, Init(R, 'Телефон',BPhone))); 

R.Assign(2,y+2*dy+1,2+LAddr,y+2*dy+2) ; 

BAddr := New(pinputLine, Init(R,LAddr)); 

Insert(BAddr); {Поле адреса} 

R.Assign)2,y+2*dy,2+LAddr,y+2*dy+1); 

Insert(New(PLabel, Init(R, 'Адрес',BAddr))); 

{Вставляем две командные кнопки:}

 R.Assign(2,y+3*dy+1,12,y+3*dy+3); 

Insert(New(PButton, Init(R, 'Ввести',cmOK,bfDefault))) ; 

R.Assign(2+20,y+3*dy+1,12+20,y+3*dy+3) ; 

Insert(NewfPButton, Init(R, 'Выход',cmCancel,bfNormal) 

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

end; {Конец формирования окна}

if Edit then with Data do 

begin {Готовим начальный текст:}

p := PS.At(Location); {Читаем данные из записи}

s := p;

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

Phone:= copy(s,succ(LName),LPhone);

Addr := copy(s,succ(LName+LPhone),LAddr);

InWin.setData(Data) {Вставляем текст в поля ввода} 

end;

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

if Control=cmOk then with Data do 




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