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

 
Как передать значение переменной из, главной формы в "подчинённую"?
SmAlex
  Отправлено: 05.04.2005, 09:04


Станционный диспетчер

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



Как передать значение переменной из главной формы в любую другую в проекте?

Скажем в случае, если в основной форме пользователь делает какой-то выбор , а вподчинённой форме нужно отобразить определённую инфу?

Объявить эту переменную как глобальную в главной форме?

Ответьте, пожалуйста...

Отредактировано SmAlex — 05/04/2005, 09:51
AVC
Отправлено: 05.04.2005, 09:59


Ветеран

Группа: Модератор
Сообщений: 1583



Самыми разными способами.
Как параметр функции.
Как параметр функции, порождающей SubForm.
Как параметр конструктора класса SubForm.
Как глобальную для приложения.
Как public свойство класса MainForm
Как возврат метода класса MainForm
.....
Быстрее всего, но нименее правильно включить в SubForm MainForm.h
и описать переменную в MainForm
SmAlex
Отправлено: 05.04.2005, 10:03


Станционный диспетчер

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



Спасибо за ответ!

Именно так "...включить в SubForm MainForm.h
и описать переменную в MainForm" я и пытался — но што-то не получается...
Я пока не очень силён в написании кода...

То есть переменную надо описать в MainForm как Global
и точно также в SubForm?

Отредактировано SmAlex — 05/04/2005, 10:13
AVC
Отправлено: 05.04.2005, 10:14


Ветеран

Группа: Модератор
Сообщений: 1583



В MainForm.h в секции public пишите int MyVariable
В SubForm нажимаете Файл — Include unit hdr м выбираете MainForm
или в SubForm.h пишите #include "MainForm.h"
и обращаетесь
CODE
... = MainForm->MyVariable;

Если на экземпляр класса TMainForm указывает MainForm (если вы не стерли строку extern PACKAGE TMainForm *MainForm;
в MainForm.h)
Gedeon
Отправлено: 05.04.2005, 10:17


Ветеран

Группа: Модератор
Сообщений: 1742



Я в таких случаях предпочитаю обьявлять переменную как extern в гдавной форме и юзать ее в остальных
AVC
Отправлено: 05.04.2005, 10:24


Ветеран

Группа: Модератор
Сообщений: 1583



Я для общих переменных использую отдельный файл/ы или класс и подключаю их h'ы там где надо.
А конкреьно в случае SmAlex выбрал бы параметр функции, создающей форму 2.
SmAlex
Отправлено: 05.04.2005, 10:46


Станционный диспетчер

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



Спасибо, Уважаемый AVS — по вашему последнему предложени всё получается...

Но, поскольку хочется попробовать все возможные пути решения- не могли бы Вы, Уважаемый Gedeon, пояснить несколько подробнее относительно пути с "...обьявлять переменную как extern в главной форме... "
Ну хотя бы илои пару строчек кода или намекнуть = а там сам разберусь?
Заранее спасибо за ответ.

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