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

Диалоговое окно

var
R: TRect;
begin
GetExtent(R);
R.A.Y: = pred(R.B.Y);
StatusLine: = New(PStatusLine, Init(R,
NewStatusDef (0,$FFFF,
NewStatusKey (' ~ALT + X~ Выход', kbALTX, cmQuit,
NewStatusKey (' ~F1~ Вызов окна', kbF1,cm0, NIL)),
NIL)))
end {MyApp.InitStatusLine};
{-----------------}
Procedure MyApp.HandleEvent;
{Обрабатывает нестандартную команду cm0}
begin
Inherited HandleEvent (Event);
case Event. Command of
cm0: GetDialog
else
ClearEvent (Event)
end
end {MyApp. HandleEvent};
{------------------}
Procedure MyApp.GetDialog;
{Создает и использует диалоговое окно}
var
R: TRect; {Координаты элементов}
D: PMyDialog; {Диалоговое окно}
I: PInputLine; {Строка ввода}
RB: PRadioButtons; {Зависимые кнопки}
СВ: PCheckBoxes; {Независимые кнопки}
s: String; {Для вывода сообщения}
const
L = 120; {Длина строки ввода}
type
TDialogData = record {Параметры диалогового окна}
I_Data: String [L]; {Текст в строке ввода}
CB_data: Word; {Независимые кнопки}
RB_Data: Word {Зависимые кнопки}
end;
const
st: array [0..2] of String = ('Первое','Второе','Третье ');
Data: TDialogData =({Начальные параметры диалога}
I_Data: 'Начальный текст';
CB_Data: 3; {1-я и 2-я кнопка}
RB_Data: 2); {3-е продолжение}
begin
R.Assign(5.3.75.18); {Координаты диалогов ого окна}
D: = New(PMyDialog,Init(R,'Пример диалогового окна'));
with D do
begin
R.Assign(1.1.69.3);
Insert(New(PStaticText, {Вставляем статический текст}
Init(R,#3'Это статический текст')));
R.Assign(20.3.60.4);
I: = New(PInputLine, Init(R, L));
Insert (I); {Вставляем строку ввода}
R.Assign(1.3.20.4);
Insert(New(PLabel, {Вставляем метку строки ввода}
Init(R,'~l~ Строка ввода:',I)));
R.Assign(60.3.62.4);
Insert(New(PHistory, {Вставляем список ввода}
Init(R,I,0)));
R.Assign(10.6.30.9);
CB: = New (PCheckBoxes, Init(R,
NewSItem('Первая кнопка',
NewSItem('Вторая кнопка',
NewSItem('Третья кнопка', NIL)))));
Insert(CB); {Вставляем независимые кнопки}
R.Assign(6.5.30.6);
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.