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 функцию.
|
|