Не вызывается TCalendarDialog.OnClose !

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Не вызывается TCalendarDialog.OnClose !

Сообщение Роман1971 » 07.12.2008 17:34:29

Не вызывается событие TCalendarDialog.OnClose.
Проблема как минимум в двух компонентах TCalendarDialog, TCalculatorDialog.
В чём причина непонятно, не вызывается также и TCalendarDialog.OnCanClose, TCalculatorDialog.OnClose, TCalculatorDialog.OnCanClose.

Проследил их "предков" вплоть до TCommonDialog, выдержки из кода:
Определение TCommonDialog в файле "..\lazarus\lcl\dialogs.pp",
методы Close, и DoClose определены как виртуальные, но нигде в потомках не видно переопределений (может я пропустил где-то...).
Определения методов в файле "..\lazarus\lcl\include\commondialog.inc ":
Код: Выделить всё
procedure TCommonDialog.Close;
begin
  DoClose;
  TWSCommonDialogClass(WidgetSetClass).DestroyHandle(Self);
  FHandle := 0;
end;

Код: Выделить всё
procedure TCommonDialog.DoClose;
begin
  if Assigned(FOnClose) then FOnClose(Self);
end;

Самое интересное, что многие диалоги являются, так или иначе, наследниками "TCommonDialog", например "TOpenDialog". Его предки "TFileDialog" и "TCommonDialog", но в "TOpenDialog" обработка события "OnClose" происходит нормально.

Как у остальных, кто-нибудь сталкивался с этой проблемой?
Что делать? Без этих событий использовать эти компоненты невозможно.
:!: :?:
Роман1971
новенький
 
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

Re: Не вызывается TCalendarDialog.OnClose !

Сообщение B4rr4cuda » 07.12.2008 18:27:25

а зачем события онклосе?
Код: Выделить всё
if xdialog.execute then
begin
//обработка полученных диалогом данных
end;
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru