C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Загрузка из dll MDIChildForm
lll
Отправлено: 02.03.2006, 23:45


Не зарегистрирован







Можно ли ограничить количество открываемых MDIChildForm
olegenty
Отправлено: 03.03.2006, 07:15


Ветеран

Группа: Модератор
Сообщений: 2412



Можно
см MDIChildCount
** Werti
Отправлено: 03.03.2006, 09:06


Не зарегистрирован







а если в dll у меня несколько форм MDIChild
?
olegenty
Отправлено: 03.03.2006, 09:56


Ветеран

Группа: Модератор
Сообщений: 2412



1. Ничто не мешает в DLL иметь счётчик MDI форм каждого типа и перед созданием очередного экземпяра проверять его значение
2. MDI-форма (контейнер) имеет свойство MDIChildren. Можно, пробегая по этому массиву, подсчитывать количество конкретных MDI Child (посредством проверки dynamic_cast) перед созданием экземпляра коскретного MDI Child, и если количество равно некоторому предопределенному максимуму, запрещать создание.

лично я воспользовался бы способом 1. при этом, если максимальное количество должно регулироваться, я передавал бы в DLL значение максимального количества, а в DLL проверял бы конкретный счётчик.
Werti
Отправлено: 03.03.2006, 11:13


Дежурный стрелочник

Группа: Участник
Сообщений: 30



ну вот и мучаюсьне могу отличить отду MDIChildForm в dll от второй
сначала счетчик вкрутил по count но понял то что 2 разных mdi формы а теперь запутался как их отличить то
olegenty
Отправлено: 03.03.2006, 12:30


Ветеран

Группа: Модератор
Сообщений: 2412



в цикле по MDIChildren воткни проверку
CODE

   TMDIForm1 *test1 = dynamic_cast<TMDIForm1 *>(MDICildren[i]);
   if (test1)
   {
       MDIForm1Counter ++;
       if (MDIForm1Counter >= MDIForm1MaxCount)
       {
           ShowMessage("MDIForm1 уже слишком дофига");
           return;
       }
       continue;
   }
   TMDIForm2 *test2 = dynamic_cast<TMDIForm2 *>(MDICildren[i]);
   if (test2)
   {
       MDIForm2Counter ++;
       if (MDIForm2Counter >= MDIForm2MaxCount)
       {
           ShowMessage("MDIForm2 уже слишком дофига");
           return;
       }
       continue;
   }
Werti
Отправлено: 04.03.2006, 12:19


Дежурный стрелочник

Группа: Участник
Сообщений: 30



что то я не понял в какой обработчик это вставить то
в dll ?
olegenty
Отправлено: 07.03.2006, 15:30


Ветеран

Группа: Модератор
Сообщений: 2412



перед тем, как вызвать создающую MDIChild функцию.

Вернуться в Вопросы программирования в C++Builder