Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-28971
abcd
2002-12-19 14:15
2003.02.10
Socket ы


1-28850
Ihtiandr
2003-01-29 18:24
2003.02.10
DataTimePicker


1-28698
Separator
2003-01-31 11:31
2003.02.10
У меня глюки


9-28571
Джастер
2002-08-25 22:46
2003.02.10
Продвинутые спецэффекты


9-28565
Kornoman
2002-08-23 09:57
2003.02.10
Создание меню





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский