Консультация № 63209
19.11.2006, 01:27
0.00 руб.
0 3 3
Здравствуйте.

Возник ещё один вопрос. Никак не могу придумать способ его решить, а идея простая.
У меня на Form‘e есть PageControl и мне надо сделать чтобы при открывании закладок (1 из них) выполнялась одна процедура. Кaк это сделать? Я не нашёл подходящих "Событий" этот счёт. Ha "OnShow" там есть "событие", но это не то.
Пример.
При смене тарифа оплаты, должен задавать вопрос, типа: "Вы уверены что хотите сменить тариф?" и кнопки <OK> и <Отмена>.
Вот и всё.

С уважением,
Алекс

Обсуждение

Неизвестный
19.11.2006, 06:06
общий
это ответ
Здравствуйте, AlexD!
Необходимо ловить onChange для PageControl. В обработчике проверяте ActiveIndex - Номер откпытой закладки
Неизвестный
19.11.2006, 06:17
общий
это ответ
Здравствуйте, AlexD!
Думаю, что правильнее ловить PageControl1Changing - тогда можно и не переходить на новую закладку. Пример в приложении.

Приложение:
procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean);beginif MessageDlg(‘Вы уверены что хотите сменить тариф?‘, mtConfirmation, [mbOK, mbcancel],0) = 1 thenAllowChange:=trueelseAllowChange:=falseend;
Неизвестный
19.11.2006, 11:06
общий
это ответ
Здравствуйте, AlexD!
1.
procedure TForm1.PageControl1Change(Sender: TObject);
begin
MessageDlg(‘Вы уверены что хотите сменить тариф?‘,mtConfirmation, [mbYes, mbNo], 0);
end;
2.
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePage.Caption=‘Тариф1‘ then
MessageDlg(‘Вы уверены что хотите сменить тариф?‘,mtConfirmation, [mbYes, mbNo], 0);
end;
Форма ответа