Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 108

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

Решил сделать красивую панель меню
Проблема возникла при использовании TMS компонентов.
Суть:
Добавил на форму №1.1 (которую создаю из формы №1 и отображаю как ShowModal)
DockPanel: TAdvDockPanel; В нее добавил два TAdvToolBar'а:
1- меню с выпадающими списками (обчное как во всех прогах)
2- панель со значками быстрого вызова

Проблема в следующем. При закрытии дочерней формы №1.1 все нормально, а когда закрываю форму 1, вылетает ошибка (рис. прикреплен) и при нажатии на Break ставиться точка в нижеуказанной процедуре на строке
Result := CallWindowProc(FDefWndProc, WindowHandle, Msg, WParam, LParam);

Так вот я заметил, что если эти TAdvToolBar'ы удалить, то ошибки не выкидывает.

Делал вроде все как в описании, но что не так?

Спасибо

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. procedure TWinControl.DefaultHandler(var Message);
  2. {$IF DEFINED(CLR)}
  3. var
  4. Msg: TMessage;
  5. {$IFEND}
  6. begin
  7. if WindowHandle <> 0 then
  8. begin
  9. {$IF DEFINED(CLR)}
  10. Msg := UnwrapMessage(TObject(Message));
  11. with Msg do
  12. {$ELSE}
  13. with TMessage(Message) do
  14. {$IFEND}
  15. begin
  16. if (Msg = WM_CONTEXTMENU) and (Parent <> nil) then
  17. begin
  18. Result := Parent.Perform(Msg, WParam, LParam);
  19. if Result <> 0 then Exit;
  20. end;
  21. case Msg of
  22. WM_CTLCOLORMSGBOX..WM_CTLCOLORSTATIC:
  23. Result := SendMessage(LParam, CN_BASE + Msg, WParam, LParam);
  24. CN_CTLCOLORMSGBOX..CN_CTLCOLORSTATIC:
  25. begin
  26. SetTextColor(WParam, ColorToRGB(FFont.Color));
  27. SetBkColor(WParam, ColorToRGB(FBrush.Color));
  28. Result := FBrush.Handle;
  29. end;
  30. else
  31. {$IF NOT DEFINED(CLR)}
  32. if Msg = RM_GetObjectInstance then
  33. Result := Integer(Self)
  34. else
  35. {$IFEND}
  36. Result := CallWindowProc(FDefWndProc, WindowHandle, Msg, WParam, LParam);
  37. end;
  38. if Msg = WM_SETTEXT then
  39. SendDockNotification(Msg, WParam, LParam);
  40. end;
  41. end
  42. else
  43. inherited DefaultHandler(Message);
  44. end;
  45.  


Aндрей Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Aндрей (статус: 1-ый класс)
Вопрос отправлен: 30 апреля 2010, 13:17
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 30 апреля 2010, 17:38; участников в обсуждении: 1.
min@y™

min@y™ (статус: Доктор наук), 30 апреля 2010, 17:38 [#1]:

Похоже, этот вопрос - для авторов TMS компонентов. Хрен их знает, что они там понаписали.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 28 марта 2023, 09:02
Выполнено за 0.02 сек.
Рейтинг@Mail.ru