Переключите поведение приложения GUI между SDI и MDI

У меня в настоящее время есть приложение SDI, которое является сборкой с Delphi 7, я хочу, чтобы заключительный пользователь выбрал тип интерфейса между SDI и MDI во времени выполнения. мой вопрос состоит в том, как я могу изменить поведение приложения между SDI и MDI во времени выполнения?

В настоящее время я знаю несколько сборок приложений с Дельфи, которые позволяют это: EMS менеджер по SQL и ЖАБА.

alt text

заранее спасибо.

14
задан Glorfindel 10 June 2019 в 04:06
поделиться

3 ответа

Скачайте Jedi JVCL, установите его и посмотрите на Демонстрацию для JvDocking "стыковка в коде". Именно это они и делают.

Они означают, что на самом деле вы не используете FormStyle=fsMDIChild, если только не хотите много проблем. MDI "эмулируется", когда вам это нужно, пристыковавшись в коде.

Не конвертируйте окна в рамки. Это плохое решение.

Для среды, похожей на MDI, в которой нет проблем с MDI, используйте стыковочное решение (компоненты с коммерческим или открытым исходным кодом, поддерживающие стыковку). Я использую JvDocking, который входит в JEDI JVCL, свободный и с открытым исходным кодом.

Вы используете свои формы как в режиме "docked", так и в режиме "undocked" (плавающий), и это дает вам пристыкованный вид IDE (VIsual Studio и RAD Studio), и пристыкованный вид IDE (RAD Studio в режиме "undocked", или классический delphi 7).

7
ответ дан 1 December 2019 в 14:21
поделиться

Я бы преобразовал свои текущие окна в рамки и поместил эти рамки с align=alClient либо в дочерние mdi окна, либо в обычные окна в соответствии с настройками.

Но будьте осторожны: на самом деле я никогда этого не делал, так что могут быть проблемы, о которых я не знаю.

4
ответ дан 1 December 2019 в 14:21
поделиться

при установленном времени выполнения Tform.formstyle либо на fsnormal или fsmdichild в зависимости от того, если вы хотите SDI или MDI.

2
ответ дан 1 December 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: