Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form1 и Form2 
V
    Опции темы
artsb
  Дата 25.11.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Есть две формы. На дочерней есть эдит и кнопка. При нажатии на кнопку текст из эдит'а нужно перенести в переменную в главной форме. Как это можно сделать? И как запустить свою функцию, которая находится в Unit1 из Unit2? 
Спасибо.

ЗЫ. Я уже наверное надоел... 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
EEEEEE
Дата 25.11.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Как один из вариантов. Можно вписать в дочернюю форму заголовочный главной и текст из дочерней присвоить открытой переменной главной.
Или создать глобальную переменную. Аналогично присвоить ей значение дочерней. И перебросить в главную. Но, как пишут спецы, глобальные переменные - это некрасиво как минимум с точки зрения серьёзного программирования.
PM MAIL   Вверх
artsb
Дата 25.11.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(EEEEEE @  25.11.2007,  00:40 Найти цитируемый пост)
Можно вписать в дочернюю форму заголовочный главной и текст из дочерней присвоить открытой переменной главной.
Или создать глобальную переменную. Аналогично присвоить ей значение дочерней. И перебросить в главную.


Я так делал, но ничего не получилось. Может я не так делал?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Nat
Дата 26.11.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



А написал Unit1.h в Unit2.cpp и наоборот?
PM MAIL   Вверх
artsb
Дата 26.11.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Да.
После этого пишу так:
Form1->
Но в появившемся списке нет ни переменной, ни функции, которые мне нужны.
Пробовал так:
Form1::pth
Выдаёт ошибку.

Это сообщение отредактировал(а) artsb - 26.11.2007, 09:55


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
EEEEEE
Дата 26.11.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Пример

Присоединённый файл ( Кол-во скачиваний: 27 )
Присоединённый файл  Forms.exe 64,52 Kb
PM MAIL   Вверх
artsb
Дата 26.11.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



EEEEEE спасибо, но почему-то не качается. :( Грузит как html страницу (и браузер и DownloadMaster).
Перезалей или пришли на мыло плиз. [email protected]


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 27.11.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



EEEEEE, спасибо, что выслал(а). Но не запускается, пишет что не найден vcl100.bpi. Но я посмотрел Unit1 и 2. У меня всё сделано также, т.е. в Unit1 добавил "Unit2.h" и наоборот. В Unit1 есть переменная AnsiString aaa. В Unit2 пишу Form1->aaa, но во всплывающем окне нет этой переменной. В чём может быть дело?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 28.11.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Народ!!! Так как обратиться к переменной, которая в другом унит'е?

Это сообщение отредактировал(а) artsb - 28.11.2007, 22:01


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
orthrus
Дата 29.11.2007, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

Репутация: 4
Всего: 16



Если переменная объявлена как public, то она должна быть доступна в другом Unit`е. У тебя скорее всего переменная объявлена как private или protected и доступа к ней со внешней стороны нет. Для доступа к этой переменной необходимо сделать открытые(public) get и set методы.


--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
mrbrooks
Дата 29.11.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Как было отмечено выше с переменной можно работать либо объявив ее как глобальную - либо в классе формы. С классом смотри на пост orthrus 
Глобально еще проще - в Unit1 объявляешь к примеру 
Код

int i = 5555;

в Unit2 используешь класс памяти extern
Код

extern int i;

Вообще это делать не рекомендуется - типа прастранство имен - вдруг такая глобальная переменная имеет уже место быть и т.д.
Но на первой нормально. Можно если много переменных - то объявить какой нибудь пользовательский тип - структуру например. 
А можно и в классе формы - как это делать - смотри выше - непонятно будет - радируй. smile 
PM MAIL   Вверх
artsb
Дата 29.11.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Сделал так:
В Unit1.h в секцию pablic на писал объявление:
AnsiString aaa;
В Unit1.h подключил Unit2.h и наоборот. Теперь всё работает.

Но может так неправильно делать? Отпишитесь плиз.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mrbrooks
Дата 29.11.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Очень даже правильно smile как и говорил orthrus только ты зделал ее явно. Лучше всетаки саму переменную указать в private а с самой переменной уже работать через функции, где ты к прмеру проверяешь правильность значения, типа и т.п.
PM MAIL   Вверх
artsb
Дата 29.11.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Тогда всем спасибо. Вопрос решён.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
secondd
Дата 16.2.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



Вопрос по этой же теме:
Вписал переменные в Public .h первой формы, и сделал ссылку на .h первой формы во второй,
но выдается ошибка, что переменная во второй форме неизвестна? Как так?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.