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

 
Много окон толку мало, Многооконные приложения
Steam-x
Отправлено: 12.03.2007, 14:54


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

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



Я столкнулся с такой проблемой. Есть родительское окно Форма1, в нем динамически создаются окна Форма2 (чаилд). Окна примитив — одна кнопка, при нажатии меняется ее заголовок на i++. Так вот. Создаю новое окно жму кнопку и i продолжает увеличиваться с предыдущей Формы2. В чем проблема понять не могу, так как i переменная Формы2 и по идее должна быть уникальной для каждой создаваемой формы.

Может мое объяснение выглядит запутанно. Вот суть. Как сделать независимыми переменные в создаваемых динамически дочерних окнах. Мне нужно чтобы два дочерних окна не знали о существовании друг друга.
Doga
Отправлено: 12.03.2007, 15:11


Мастер участка

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



Если эта переменная является членом класса дочерней формы, то такое её поведение без дополнительного кода (напр. переменная-свойство со своими обработчиками доступа) невозможно.
Похоже, у Вас эта переменная является глобальной...
Steam-x
Отправлено: 13.03.2007, 09:22


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

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



QUOTE (Doga @ 12.03.2007, 15:11)
Похоже, у Вас эта переменная является глобальной...

Нет эта переменная не глобальная, если это касается всего приложения, включая родительское окно. Эта переменная глобальная для дочернего окна.
Admin
Отправлено: 13.03.2007, 10:09


Владимир

Группа: Администратор
Сообщений: 1190



Где объявлена переменная i ? В .сpp сверху ?
Надо её засунуть в секцию private дочернего окна.
Steam-x
Отправлено: 13.03.2007, 13:49


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

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



Засунул в Приват все помогло. А чисто теоретический вопрос — почему нужно так. Ведь при создании дочернего окна создается уникальный указатель на форму и по логике все переменные должны быть уникальными для этой формы. Заранее спасибо за помощь
Rius
Отправлено: 13.03.2007, 14:19


Мастер участка

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



переменные и уникальны, когда входят в состав класса формы.
если просто вверху cpp файла — они глобальны и менятся могут так, как программист и не ожидает.
Steam-x
Отправлено: 14.03.2007, 11:03


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

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



Как много чудных нам открытий готовит просветленья дух...
Guest
Отправлено: 16.03.2007, 19:42


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







[Как много чудных нам открытий готовит просветленья дух...]

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