Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
ВнизКол-во экземпляров формы Найти похожие ветки
← →
Alik1313 (2003-01-31 15:12) [0]Мастера, есть проблема:
сущ-т mdi-приложение, в меню которого можно создавать экземпляры окон с определенным функционалом каждое...
...
Application.CreateForm(TForm20, Form20);
...
например, создали форму, а пункт меню с созданием этой формы остается активным, т.е. можно создать ещё один экземляр...
так вот, нужно делать неактивные некоторые кнопки на форме, есть существуют дубликаты этой формы.
как проверить на наличие дубликатов?
← →
D (2003-01-31 15:31) [1]может, при создании формы делать соотв.пункт недоступным.
А при закрытии - наоборот.
← →
alik1313 (2003-01-31 15:32) [2]в том-то и дело, что блокировать нельзя из других соображений... нужно делать неактивными некоторые функции на всех эекхемплярах, если есть хоть оин дубликат
← →
D (2003-01-31 15:36) [3]Не совсем понятно. В смысле - Создаются доч.формы, экземпляры одного класса, но чем-то различающиеся; если еще раз создана форма с такой-то функциональностью, то что-то запретить для всех доч.форм? Так?
← →
myor (2003-01-31 15:43) [4]б-р-р-р.
еще раз можно?
← →
D (2003-01-31 15:44) [5]Может, массивчик создать (логич.или просто числ.), кол-во эл-тов - по числу видов форм. Если создаем форму i-го вида, то на это место в массиве ставим 1 (или массив[i]:=массив[i]+1 - получим кол-во откр.окон). Перед созданием проверяем - если массив[i]>0 то запретить что-то
← →
alik1313 (2003-01-31 15:49) [6]а если один из дубликатов создает ещё одну форму, в которой происходит обращение к оригиналу: id:=form20.query1.fieldvalues["id"];
как быть, чтобы обращение было к окну, из которого это окно с обращением создавалось?
← →
D (2003-01-31 15:51) [7]может лучше все общие данные вынести в дата модуль?
У меня немного похоже, а данные в неск.экземплярах, так уже путаюсь
← →
alik1313 (2003-01-31 15:58) [8]вот именно!
проблема в этом!
важно иметь различные данные и независимо перемещаться по ним, например, для сравнения некоторых показателей.
следовательно общие данные (data module) не подходят, т.к. курсор будет двигаться и в дубликатах.
← →
D (2003-01-31 16:08) [9]Да, трудно что-то ответить, не зная подробностей
Стоит ли создавать столько форм, а из них другие формы..., да еще и не модально.
← →
kva (2003-01-31 16:22) [10]Приблизительно так
Count:=0;
for i := 0 to Screen.FormCount-1 do
begin
if (Screen.Forms[i] is TMyForm) then
//TMyForm это тип твоей формы
Inc(Count);
end; //for
if Count>0 then много
← →
alik1313 (2003-01-31 16:43) [11]спасибо! вот это и хотелось увидеть:
вариант прямого пересчета кол-во форм по типу!!!
← →
Y (2003-01-31 16:57) [12]Так бы сразу и написал :)
← →
Chubais (2003-01-31 18:48) [13]туда же ищщо и MDIChildren[i] мона...
← →
Mike_Goblin (2003-01-31 19:04) [14]Попробуй использовать атомы - функция API AddAtom
в качестве строки атома используй имя класса формы
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c