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

Программа Notebook

{---------------------}
Procedure TNotebook.DOSCall;
{Временный выход в ДОС}
const
txt ='Для возврата введите EXIT в ответ'+ ' на приглашение ДОС…';
begin
DoneEvents; {Закрыть обработчик событий}
DoneVideo; {Закрыть монитор экрана}
DoneMemory; {Закрыть монитор памяти}
SetMemTop(HeapPtr); {Освободить кучу}
WriteLn(txt); {Сообщить о выходе}
SwapVectors; {Установить стандартные векторы}
{Передать управление командному процессору ДОС:}
Exec(GetEnv('COMSPEC'),''); {Вернуться из ДОС:}
SwapVectors; {Восстановить векторы}
SetMemTop(HeapEnd); {Восстановить кучу}
InitMemory; {Открыть монитор памяти}
InitVideo; {Открыть монитор экрана}
InitEvents; {Открыть обработчик событий}
InitSysError; {Открыть обработчик ошибок}
Redraw {Восстановить вид экрана}
end; {DOSCall}
{---------------}
Constructor TInterior.Init;
{Создает окно скрроллера}
begin
TScroller.Init(Bounds, Hs, VS);
ReadFile;
GrowMode: = gfGrowHiX+gfGrowHiY;
SetLimit(LLine, РS.Count)
end;
{--------------}
Destructor TInterior. Done;
begin
Dispose (PS, Done);
Inherited Done
end;
{--------------}
Procedure TInterior. ReadFile;
{Читает содержимое файла данных в массив LINES}
var
k: Integer;
s: String;
Data: DataType;
f: text;
begin
PS: = New(PStringGollection, Init (100, 10));
seek(DataFile,0);
while not (EOF(DataFile) or LowMemory) do
begin
ReadfDataFile, data);
with data do
begin
s: = Name;
while Length (s) < LName do
s: = s+ ' ';
s: = s+Phone;
while Length (s) < LName+LPhone do
s: = s+ ' ';
s: = s+Addr
end;
if so'' then PS .insert (NewStr (S))
end;
Location: = 0;
end; {ReadFile}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.