Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

........ гм... в общем, читайте....

7.2K
03 июня 2004 года
Антидот
10 / / 03.06.2004
Билдер 5.0 начал использовать недавно, но и сейчас больше пишу на БЦ++ 3.11... Классы и указатели не люблю... очень :devil: ... вот...
Пробую писать в Билде, но не знаю (стыд мне и позор! P( ), как решить махонькую траблу:
Есть 2 формы, одна основная, вторая дополнительная...
Хочу создать переменную... да так хочу создать, чтобы её контент можно было изменить как из первой формы, так и из второй...
тоесть создать формонезависимую (о какую!) переменную... а то у мну получаются только такие,
что изменить её в теле формы1 можно, а формы2 - увы, нет... :x

как лепить вызов одной формы из другой я научился... (правда прошло дня два экспериментов, чтобы понять с нуля, как сделать (и вызвать, соответственно) формочку "Об этом..." ;) )...

вот, собсно и всё... сёдня буду ещё пробовать, но вы, уважаемые, не побрезгуйте ответом...
Спасибо...
621
04 июня 2004 года
Бешеный кролик
151 / / 23.03.2004
Каждая форма - это класс. Поэтому, чтобы создать такую переменную, о которой ты пишешь, можно сделать ее членом одного из классов. Т.е., например, заходишь в Unit1.h, в разделе public объявляешь переменную int i. Затем объявляешь ее же в Unit1.cpp. В Unit2.cpp пишешь #include "Unit1.h". Все, теперь в Unit1.cpp обращаешься к своей переменной просто, т.е., например, i=2. А в Unit2.cpp следующим образом: Form1->i=2.
Надеюсь не очень путанно написал.
4
04 июня 2004 года
mike
3.7K / / 01.10.2002
#include "Unit1.h"
#include "Unit2.h"

Если переменая глобальная, то как и в BC3.1, если переменная является аттрибутом класса формы, то

Form1->имя_переменной.

Страуструп тебе поможет
860
04 июня 2004 года
Abell2000
138 / / 15.01.2003
Цитата:
Originally posted by Бешеный кролик
Каждая форма - это класс. ...


Судя по:

Цитата:
Классы и указатели не люблю... очень]:devil: ... вот...


могу предположить, что разговоры про классы вызовут не очень хорошии эмоции:) .

Можно еще описать переменную как extern, т.е. после описания класса в заголовочном файле (там где что-то типа extern PACKAGE TForm *Form1;) записать например extern int var1;. Теперь достаточно подключить этот хидер туда где тебе нужно использовать эту переменную и все.

272
04 июня 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by Abell2000

Судя по:

могу предположить, что разговоры про классы вызовут не очень хорошии эмоции:) .

Можно еще описать переменную как extern, т.е. после описания класса в заголовочном файле (там где что-то типа extern PACKAGE TForm *Form1;) записать например extern int var1;. Теперь достаточно подключить этот хидер туда где тебе нужно использовать эту переменную и все.


А потом запаришься определять кто и когда изменил твою глобальную переменную, не лучше поступи так как тебе до этого советовали так проще ошибки отлавливать...

3
04 июня 2004 года
Green
4.8K / / 20.01.2000
Не люблю классы, фигурные скобки, указатели, переменные и прочую лабуду, больше всего не люблю #include.
Как мне написать программу на С++, где есть 2 формы, одна основная, вторая дополнительная...


Ответ: пиши на другом языке, где нет классов, фигурных скобочек, указателей и прочей ненужной ерунды.
7.2K
04 июня 2004 года
Антидот
10 / / 03.06.2004
Спасибо за ответы! А тепрь по-порядку:
2 Бешеный кролик: я понял, то, что Вы описали... Собственно я именно так сейчас и делаю, за неимением того, что хочу...
2 mike: в этом случае мне выдаёт ворнинг, дескать имя_переменной объявлено в обеих хпп - в юнит1 и юнит2... (без добавления хедера второго юнита в первый и наоборот (нажатие Альт+Ф11(или Ф12, не помню)) не вызывается какая-либо из форм... типа неивестно что это такое)
2 Abell2000: этого я ещ не пробовал... спасибо, поэкспериментирую...
2 vladsoft: если не возражаете, попытаюсь не писать кода, в котором не буду знать, кто что изменил... ;)
2 Green: мдя... плохо, что Вы обо мне так подумали...
3
04 июня 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Антидот
2 Green: мдя... плохо, что Вы обо мне так подумали...



Конечно, каждый имеет свои пристрастия, но не понятно зачем писать на языке не используя его основные достоинства и основные механизмы?

4
04 июня 2004 года
mike
3.7K / / 01.10.2002
Цитата:
2 mike: в этом случае мне выдаёт ворнинг, дескать имя_переменной объявлено в обеих хпп - в юнит1 и юнит2... (без добавления хедера второго юнита в первый и наоборот (нажатие Альт+Ф11(или Ф12, не помню)) не вызывается какая-либо из форм... типа неивестно что это такое)



Unit1.c:

 
Код:
#include "Unit2.h"

int x;


Unit2.c:
 
Код:
#include "Unit1.h"

extern int x;


А вообще Green правильно сказал. Рабирись лучше с классами и ты их полюбишь :)
7.2K
04 июня 2004 года
Антидот
10 / / 03.06.2004
хех, не думал, что вы так быстро среагируете... =))) спасибо...
2 mike :
Unit1.c:
#include "Unit1.h"
#include "Unit2.h" // после добавления второй формы... и включения её хедера в си-файл...

Unit2.c:
#include "Unit2.h"
#include "Unit1.h" //после и включения хедера в си-файл...

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

ЗЫ а как Вы делаете этот отступ с заголовком [COLOR=blue]code:[/COLOR] ???
ЗЗЫ а насчёт классов и другого: так уж сложилось, что не сильно нравятся они мне...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог