Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];

Вниз

создание форм по шаблону   Найти похожие ветки 

 
sergkkk   (2002-04-30 11:55) [0]

вот у меня подобная картина! есть Form1 и Form2. использую Form2 как шаблон для создания ее клонов. на Form1 кнопочка. нажимаю- передаю один параметр (айпи юнита с которым форма будет работать). на форме2- StringGrid1 и таймер. когда создается первая Form2 - все отлично работает. создаю вторую Form2 с другим айпи все запускается только вычисления StringGrid1.Cells, StringGrid1.RowCount в обоих запущеных Form2 мешают друг другу. не знаю как сделать чтобы работающие Form2 не мешали друг другу. Этих запущеных Form2 может быть, например, с десяток. подскажите пожалуйста!


 
Vovchik   (2002-04-30 12:26) [1]

Вообще, "работающие формы" мешать друг другу не могут, если не используют общие ресурсы. Я думаю, у тебя проблема в таймерах. Когда их больше одного и они работают одновременно, это неизбежно приводит к глюкам. Можешь сделать один таймер на главной форме и рассылать сообщения клонам. А можешь посмотреть в RX-либе, там есть что-то с таймерами, но я не смотрел. Таймер - это заведомо неправильный стиль программирования, нужно стараться их избегать так же как и goto.


 
sergkkk   (2002-04-30 15:14) [2]

да нет. дело не в таймерах. я проверил. как бы ей сказать что в TForm2 = class(TForm) при следующем запуске - TForm3= class(TForm) при следующем- TForm4 и тд? или еще как-то. подскажите а?


 
Vovchik   (2002-04-30 15:42) [3]

> sergkkk (30.04.02 15:14)
Никому такое не говори.

TForm2 - это тип и ничего более. Когда ты делаешь

Form2:=TForm2.Create()

то ты создаёшь новый инстанс, т.е. выделяется память под эту форму и всё что на ней есть, и ты получаешь указатель на вновь созданную форму. Если ты опять сделаешь Form2:=TForm2.Create(), то всё повторится точно так же, и ты опять получишь указатель, который будет указывать уже на новый инстанс объекта. При этом с тем (с теми), которые созданы раньше, ничего не случится. Поэтому я и сказал, что они не могут мешать друг другу. На то и нужны объекты (в частности).

Поэтому глюки могут быть, если эти формы используют общие участки памяти или что-нибудь типа этого.

Я бы не был уверен, что у тебя нет глюков с несколькими таймерами, тем более, что ты так и не сказал в чём глюки.


 
sergkkk   (2002-04-30 16:53) [4]

дык я ж говорю. StringGrid1.RowCount при запущеных двух Form2 друг у друга воруют значения. первая запущеная Form2 на основании полученных данных от юнита рисует например 1 строку (и это соотв истине!). все отлично. запускаеи вторую Form2. этот второй клон пытается определить кол-во строк в своем StringGrid1 (а их там не менее 10)первый вдруг начинает пытаться нарисовать строк больше 1 а второй клон вообще затыкается в подсчете строк. и грит "неверное интегер значение" или "деление на 0" другого пути как переделывать код этой второй формы не подскажете?


 
Vovchik   (2002-04-30 17:23) [5]

>sergkkk (30.04.02 16:53)

Очень трудно подсказывать не видя всего текста. Может у тебя есть какая-нибудь грубая ошибка, которую ты не видишь, потомучто думаешь, что это не ошибка. Выброси всё не имеющее значения и приведи текст в форуме или пришли на мыло в полной версии.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
3-49827
Элизабет
2002-04-17 16:42
2002.05.16
Разница между датами в Select-е


1-50026
Malder
2002-05-01 11:00
2002.05.16
Какие события при смене MDIChild окон ?


7-50148
Deep
2002-02-16 04:06
2002.05.16
Сканирование каталогов и ProgressBar


3-49844
DenNNis
2002-04-19 09:36
2002.05.16
Уважаемые Мастера!


1-50052
DiGiTaL
2002-05-01 19:01
2002.05.16
Popup-меню открывается только 1 раз... и всё...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский