|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
Вопросы по MDI-форме12.12.2010, 08:34. Показов 3537. Ответов 23
Метки нет (Все метки)
Первый вопрос: как в VB организовать панель окон в родительской форме, чтобы можно было перемещаться по дочерним окнам.
0
|
|
| 12.12.2010, 08:34 | |
|
Ответы с готовыми решениями:
23
Отображение библиотечной формы в MDI форме Позиционирование дочерней формы в MDI-форме Как позиционировать фоновый рисунок в MDI форме? |
|
Сумрак
|
|
| 12.12.2010, 17:46 | |
|
Стандарно... допустим меню - Окна, поставь галочку на WindowsList.
Будут отображаться заголовки открытых дочерних окон. |
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 12.12.2010, 18:07 [ТС] | |
|
А так, чтобы выглядело стандартно - как во всех нормальных приложениях - то есть внизу панелька, на ней кнопарики.... Я просто думал, что меню можно делать только через Ctrl+E ...
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
||||||
| 21.12.2010, 19:02 | ||||||
|
Тот же вопрос - нужны кномпки внизу с названиями MDI-child'ов
Мысли по этому поводу: 1. Поискать готовый контрол 2. Помучить
0
|
||||||
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 21.12.2010, 23:38 | |
|
Чем плох toolbar?
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 22.12.2010, 11:09 | |
|
Действительно, ToolBar лучше...
Попытаюсь сделать. Наверное, придется прописывать код на авто-resizing кнопочек Хотелось бы, конечно, найти готовое. Задача-то довольно стандартная, не может быть, чтобы не было готового контрола. = Один из принципов программирования - повторное использования кода (не изобретать велосипед) =
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 22.12.2010, 14:18 | |
|
Нашел на vbAccelerator контрол MDITabs - типа как в Visual Studio закладки. Не совсем то, что хотелось.
Так что нарисую с ToolBar ом. Возникают попутные вопросы: - Хотелось бы, чтоб обновление кнопок на ToolBar'e происходило по событию родителя (frmMDIParent) вроде ... Sub frmMDIParent_ChildLoaded(). Но такового, похоже не имеется. Вариант когда вызов идет по frmChild_Load() не проходит - пишет ошибку типа 'только одна MDI форма может жить' (ToolBar же в frmMDIParent). Что-то запутался я. Как же можно форме frmMDIParent сообщить о том, что frmMDIChild загрузился и пора ToolBar обновлять?
0
|
|
|
Сумрак
|
||||||
| 22.12.2010, 14:20 | ||||||
|
||||||
|
Сумрак
|
|
| 22.12.2010, 14:22 | |
|
хехе.. Заголовок формы прикольный получился :-) Винду перекинул. а кодировку не отредактировал.
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 22.12.2010, 16:42 | |
|
Если все child запускаются из главной формы, тогда понятно с этим
А как быть если один child другого вызывает непосредственно? Вопрос: по какому событию менять состояние ToolBar'а (он ведь должен находиться в родительской форме?) На вызов функции родительской формы из child'а VB пишет ошибку: 'Run-time error '426': Only one MDI form allowed' Кстати, я не силён в теории - почему нельзя так делать, я же не пытаюсь еще одного MDIParent'а создать?
0
|
|
|
Сумрак
|
|
| 23.12.2010, 16:38 | |
|
Как бы то нибыло Child вызывается кодом:
Dim myChild as new Child/ или через Set... Load... show... можно без Load Выход... сделать одну общую функцию, или процедуру. Которая создает myChild. И вызывать ее. А в параметре передать на основе чего создается новая форма. и в этой процедуре прописать код для кнопок. Ведь функционально код одинаковый для всех. только родитель меняется. |
|
|
Сумрак
|
|
| 23.12.2010, 16:41 | |
|
И не важно кто вызывает эту функцию. Главное чтоб родитель формы был Child.
Пусть myChild вызывает или MDI. |
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|||||||||||
| 23.12.2010, 17:51 | |||||||||||
|
Сейчас проект у меня работает так:
MDI форма на которой менюшка с выбором, кого из child'ов первым грузить. Пользователь запускает child, на нем, как и на других, 'ссылки' на другие child'ы. При переходе к другому child'у первый вызывает функцию Start второго, в которой второй выполняет Me.Show. Функция Start вызывается с параметрами, у каждой формы они разные... написал функцию в модуле:
она вызывается перед Start следующего child вообще глюк какой-то: как только в этой функции дело доходит до ссылки на MDI-форму, строка
кстати, ошибки на две MDI как было раньше, почему-то сегодня уже не кажет, хотя код я не менял
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 23.12.2010, 18:07 | |
|
oops...
Ошибка есть, просто в опциях стояло 'Break on unhandled errors' вместо 'Break on all errors' Текст и ситуация в которой она возникает - см. выше
0
|
|
|
Сумрак
|
|
| 24.12.2010, 02:22 | |
|
Да... Дело в том что тебе надо еще контролировать эти формы. Т.е. нажал на кнопку фокус перешел на нужную форму. Если функция одна для всех. То NN=NN+1 и ложи NN в свойство Tag новой формы и Кнопки. И проверяй его при нажатии перебором. For Each...
|
|
|
Сумрак
|
|
| 24.12.2010, 11:45 | |
|
А вообщето, я недопонимаю задания, то бишь зачем грузить MyChild из другого MyChild. Еслиб понимать что происходит .. тогда поточнее рекомендацию дал.
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 26.12.2010, 10:45 | |
|
Ок.
Один child из другого я гружу для того, чтобы организовать следующую модель: (может можно и по другому, но на момент создания у меня не возникло мыслей о том, что такой способ чем-то неудобен) - Программа представляет собой интерфейс базы данных (структура таблиц неизменна, надо только заносить/править/удалять данные) - MDI - интерфейс - Существует несколько 'основных' таблиц, несколько справочных, ну и связующие таблицы(возникают из связей M-to-N, некоторые с дополнительными полями). - Каждая форма в проекте - интерфейс одной таблицы БД - Для связи между ними и осуществления операций - переходы между формами сделаны с помощью вызовов функций Start с разными параметрами у каждой формы (параметры типа: таблица-sender, главный ID записи, тип выполняемой операции и т. д.) такие дела...
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 26.12.2010, 10:49 | |
|
Короче, хотел, чтобы получилось чт-то вроде 1С - там тоже везде работа с БД + функции обработки
И вроде получалось... Тут вот застрял. Для соблюдения логики перехода между формами надо вводить некоторые ограничения. И список открытых внизу окон - почти единственный способ не дать пользователю запутаться...
0
|
|
|
Сумрак
|
|
| 27.12.2010, 12:02 | |
|
Хех.. тогда просто Public функуцию, с параметром указывающим на нужную форму и вызывай ее из любого места кода. Тогда и Счетчик будет работать и контролировать можно созданые Чилды...
|
|
|
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 42
|
|
| 27.12.2010, 12:56 | |
|
---Так и сделал. Усё работает!
Public функция - запускает любую форму, там же код для ToolBar'a, мне удалось стандартизировать запуск любой формы - использовал Optional параметры... Последний вопрос: можно ли как-то без прописывания массива самому, получить список всех форм проекта (Forms содержит только загруженные.?) Большие спасибы за помощь!
0
|
|
| 27.12.2010, 12:56 | |
|
Помогаю со студенческими работами здесь
20
Возможно-ли отобразить Окно Internet Explorer на форме MDI? Как правильно управлять свёрнутым окном в MDI форме Можно ли вместо однотонного фона в MDI форме поместить рисунок? Как в MDI форме фон сделать с плавным переходом цвета Обращение к MDI форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|