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

Программа Notebook

{-----------}
Procedure TInterior.Draw;
{ Выводит данные в окно просмотра}
var
n, {Текущая строка экрана}
k: Integer; {Текущая строка массива}
В: TDrawBuffer;
Color: Byte;
p: PString;
begin
if Delta.Y >Location then
Location: = Delta.Y;
if Location >Delta.Y+pred(Size.Y) then
Location: = Delta. Y+pred (Size. Y);
for n: = 0 to pred(Size.Y) do
{Size. Y – количество строк окна}
begin
k: = Delta. Y+n;
if k=Location then
Color: = GetColor(2)
else
Color: = GetColor(1);
MoveCharfB,' ', Color, Size. X);
if k < pred(PS .count) then
begin
p: = PS.At(k);
MoveStr(B, Copy (р, Delta. X+1, Size. X), Color);
end;
WriteLine(0,N,Size.X,1,B)
end
end; {Tlnterior.Draw}
{---------------}
Function Control: Word;
{Получает команду из основного диалогового окна}
const X = 1;
L = 12;
DX= 13;
But: array [0..4] of String [13] = {Надписи на кнопках:}
('~l~ Выход ', ' ~2~ Убрать ','~3~ Искать ','~4~ Изменить ','~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}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.