Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Совмещение инструментальных панелей и MDI в приложениях на Delphi с использованием AdvDockPanel и AdvToolbar

Delphi , Программа и Интерфейс , MDI приложения

В статье будет рассмотрен вопрос совмещения инструментальных панелей (toolbars) с использованием компонентов AdvDockPanel и AdvToolbar от TMS в многооконных приложениях (MDI) на языке программирования Object Pascal в среде Delphi. Основное внимание будет уделено решению проблемы, связанной с отображением и перемещением панелей инструментов в главном окне приложения.


Совмещение инструментальных панелей и MDI в приложениях на Delphi

Многооконные приложения (MDI) являются популярным подходом в разработке программного обеспечения, позволяющим управлять несколькими дочерними окнами внутри одного главного окна. В среде Delphi для реализации подобных приложений часто используются компоненты от TMS Software, в частности, AdvDockPanel и AdvToolbar, которые предоставляют удобные средства для создания интуитивно понятных и функциональных интерфейсов.

Проблема пользователя

Пользователь Charles столкнулся с проблемой при работе с компонентами AdvDockPanel и AdvToolbar. Он создал приложение с главным окном (MainForm) и несколькими дочерними окнами (MDIChild Forms). В главном окне расположены AdvDockPanels на разных сторонах формы для отображения AdvToolbars. Каждое дочернее окно содержит AdvToolbar, родительским элементом которого является AdvDockPanel главного окна. По умолчанию toolbar не виден, но при активации соответствующего MDIChild Form toolbar становится видимым.

Проблема заключается в том, что при попытке перетащить AdvToolbar из одного AdvDockPanel в другой, пересекая при этом середину главного окна, активное дочернее окно скрывается, что приводит к ошибке: "Cannot change Visible in OnShow or OnHide". Пользователь обнаружил, что исключение возникает в процедуре TCustomForm.CMShowingChanged.

Решение проблемы

Для решения проблемы можно проверить, является ли текущий родитель toolbar объектом типа TFloatingWindow, который используется во время перетаскивания. Если родитель не является TFloatingWindow, то toolbar можно скрыть. Это можно сделать, например, в процедуре FormDeactivate, следующим образом:

procedure TForm25.FormDeactivate(Sender: TObject);
begin
   if not (orgaadvtoolbar1.Parent is TFloatingWindow) then
      OrgaAdvToolBar1.Visible := False;
end;

Альтернативные подходы

В случае, если предложенное решение не подходит, можно рассмотреть возможность модификации исходного кода компонентов TMS Software. Однако это может потребовать глубоких знаний в области разработки и поддержки совместимости с будущими обновлениями компонентов.

Заключение

В данной статье был рассмотрен вопрос совмещения инструментальных панелей с использованием компонентов AdvDockPanel и AdvToolbar в многооконных приложениях на Delphi. Представлено решение проблемы, с которой столкнулся разработчик Charles, и предложены альтернативные подходы для дальнейшего изучения и применения в разработке.


Эта статья предназначена для специалистов, работающих с Object Pascal и компонентами от TMS, и может служить полезным руководством при решении подобных задач.

Создано по материалам из источника по ссылке.

В статье обсуждается проблема совместимости инструментальных панелей с компонентами AdvDockPanel и AdvToolbar от TMS в многооконных приложениях на Object Pascal в Delphi, с фокусом на решение проблемы отображения и перемещения па


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: MDI приложения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-15 08:01:14/0.0061659812927246/0