Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > доступ к переменным


Автор: Aline 2.5.2006, 10:57
Всем привет!
Где-то я уже видела ответ на этот вопрос, но найти не могу сейчас. Может кто поможет?
Есть форма (MainForm), на ней компоненты и есть public переменные , из неё вызывается форма модально. В этой модальной форме задаются значения, которые надо присвоить переменными из MainForm. Как всё это правильно связать? Т.е. получается что MainForm использует переменные ChildForm, и наоборот 

Автор: megabist 2.5.2006, 12:09
Цитата(Aline @ 2.5.2006,  10:57)
Всем привет!
Где-то я уже видела ответ на этот вопрос, но найти не могу сейчас. Может кто поможет?
Есть форма (MainForm), на ней компоненты и есть public переменные , из неё вызывается форма модально. В этой модальной форме задаются значения, которые надо присвоить переменными из MainForm. Как всё это правильно связать? Т.е. получается что MainForm использует переменные ChildForm, и наоборот

надо этот екстерн обьявить тоесть например вот:
Код

extern int qip;

теперь к переменной qip из этой формы такое же обращение как и из той на которой она обьявлена изначально 

Автор: Aline 2.5.2006, 12:47
megabist,
а что с компонентами делать?
У меня например, TXMLDocument используется. И в основной форме туда считывается инвормация из xml-файла, а в модальной форме туда сохраняются изменения. И вот доступ к этому компоненту должен быть из двух форм 

Автор: megabist 2.5.2006, 12:55
ну для начала прописываем эти формы в юнит точка ашах... *хотя я думаю это у тя и так сделаноесли формы открываются а потом там:
Код

Form2->TXMLDocument1->.....

так нельзя? 

Автор: Aline 2.5.2006, 13:10
megabist
Наверное можно, но мне как-то говорили что это не совсем правльно, точно так же я могу и с переменными поступать, объявлять их в паблике и через имя формы к ним обращаться. Но где то я читала, что перекрестные ссылки - не есть хорошо.... 

Автор: megabist 2.5.2006, 13:19
не наверное оно конечно не очень хотошо но тогда ничем более помочь не могу((
единственный вариант тогда передавать эти значения через какие-то общие переменные, как через буфер, тоесть скинуть значение, считать итд... 

Автор: Aline 2.5.2006, 13:26
megabist
ok, буду дальше разбираться. У меня вообще-то немного другая проблема была, но и этим тоже хотелось бы разобраться... 

Автор: Ctrl_Alt_Del 4.5.2006, 14:19
Aline, я замечал что все нормально работает если в главной форме подключен заголок модальной, а в модальной - заголовок главной. Хотя объяснить это я не могу  smile  

Автор: likehood 4.5.2006, 14:40
Попробуй в заголовочном файле формы (не важно какой) задать класс другой формы в виде
Код

class Form1;

а к cpp-файлу подключи хедер с описанием Form1. Аналогично и для другой формы. Только не надо включать h-файлы друг в друга. Во второй форме просто храни ссылку на главную, которую можно передать конструктору модальной формы. Вроде все должно работать. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)