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

Отладка программ

Например, в следующей программе показан способ включения контрольного окна, создаваемого в этом объекте, в верхний правый угол экрана:

Uses Objects,Views,App, HeapView;
var
H: PHeapView;{Окно для MemAvail}
W: PWindow;
G: PGroup;
R: TRect;
P: TApplication;{Стандартная программа}
begin
P.Init;
R.Assign(70.0.80.1);{Верхний правый угол}
New(H, Init(R));{Создаем окно контроля}
P.Insert(H);{Помещаем его на экран}
ReadLn; {Пауза – показываем начальный размер кучи}
R.Assign(10.5.70.20);
W: = New(PWindow,Init(R,'',0)); {Создаем окно}
R.Assign(5.3.55.12);
G: = New(PGroup, Init(R));
W.Insert(G); {Вставляем в окно группу}
DeskTop.Insert(W); {Выводим на экран}
Н.Update; {Обновляем окно контроля}
ReadLn; {Пауза – размер кучи перед освобождением}
Dispose(W, Done); {Освобождаем окно и группу}
НА.Update; {Обновляем окно контроля}
ReadLn; {Пауза – размер после освобождения}
Р.Done
end.

Для получения текущего значения общего размера кучи используется вызов метода THeapView.Update в нужных местах программы. Вы можете автоматизировать обновление окна контроля, если включите вызов Update в перекрываемый метод TProgramIdle. В следующем варианте показан способ отображения MemAvail в фоновом режиме. Кроме того, в программе иллюстрируется возможное использование функции MessageBox.

{$Х+} {Используется расширенный синтаксис вызова функции MessageBox}
Uses Objects,Views,App,HeapView,MsgBox;
type
MyApp = object (TApplication)
Procedure Idle; Virtual;
end;
var
H: PHeapView;
Procedure MyApp.Idle;
begin
H^.Update
end;
var
W: PWindow;
G: PGroup;
R: TRect;
P: MyApp;
begin
P.Init;
R.Assign(70.0.80.1);
New(H,Init(R));
P.Insert(H);
MessageBox(#3'Размер кучи до размещения',NIL,0);
R.Assign(10.5.70.20);
W: = New(PWindow, Init(R,'',0));
R.Assign(5.3.55.12);
G: = New(PGroup, Init(R));
WA.lnsert(G);
DeskTop.Insert(W);
MessageBox(#3'Размер кучи после размещения', NIL,0);
Dispose(W, Done);
MessageBox(#3'Размер кучи после освобождения', NIL,0);
Р.Done
end.

Константа #3 вставляется в начало строки сообщения в том случае, когда требуется центрировать эту строку (расположить ее симметрично относительно границ окна сообщения).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.