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

Диалоговое окно выбора режима

Этот текст не связан с диалогом и называется статическим. Для вставки статической строки в любой видимый элемент используется конструктор TStaticTextJnit, которому в качестве параметров передаются координаты строки и сама строка. Как Вы уже могли заметить, идентификаторы объектов в Turbo Vision начинаются на букву Т, а идентификаторы типов-указателей на экземпляры этих объектов начинаются на букву Р. Таким образом, PStaticText – это тип-указатель на экземпляр объекта TStaticText, поэтому оператор:

Insert(New (PStaticText, Init(R,'Текст'))

Помещает строку "Текст" на место, заданное координатами переменной R. Отметим, что если строка начинается на символ #3, то при выводе на экран она будет размещаться в центре прямоугольника R. Мы используем это соглашение и дополняем каждую выводимую строку этим символом. В цикле:

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

В окно вставляются пять кнопок. При их инициации используется то обстоятельство, что определенные нами команды cmCan,…, cmAdd образуют непрерывное множество [205..209].

Особо следует остановится на операторе:

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

Дело в том, что по умолчанию активизируется тот элемент диалогового окна, который задан (вставлен в окно) последним. Чтобы изменить активность по умолчанию, используется вызов процедуры SelectNext, которая смещает активность к следующему элементу. Так как элементы образуют замкнутую цепь (от последнего элемента активность переходит к первому), параметр обращения к этой процедуре указывает направления смещения: если он имеет значение False, активным станет следующий в цепи элемент, если True – предыдущий.

Прежде, чем Вы попробуете запустить эту программу на счет, внесем в нее несколько изменений. Во-первых, пора убрать имитацию данных, показываемых в окне просмотра. Для этого в процедуре TInterior.ReadFile необходимо удалить строки:

s: = copy(ParamStr(O),1,pos('.',ParamStr(0)))+'pas';
assign(f,s);
…..
exit;

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

seek (DataFile, 0);
while not (EOF (DataFile) or LowMemory) do
begin
…..
end;
Location: = 0
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.