Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
1 / 1 / 0
Регистрация: 08.03.2012
Сообщений: 26
1

Создание глобальных переменных для доступа из всех форм

14.04.2015, 18:52. Показов 9819. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток! Только только начал изучать Visual C++. Задача такая: есть несколько форм в проекте. Как можно создать глобальные переменные чтобы они были видны во всех формах. Знаю что глобальные переменные зло, так что согласен на любые альтернативы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2015, 18:52
Ответы с готовыми решениями:

Создание глобальных переменных
тобы объявлёные переменные а=2,b=1 из одной функции (напрмер private static void Main()) были уэе...

создание глобальных переменных
В общем нужна глобальная пиеременная. ДЕлаю все как в инструкции: Создаю класс и описываю в нем...

Массив всех глобальных/локальных переменных
Здравствуйте. Зная основы языков Python и PHP я знаю, что там используются функции globals(),...

Создание глобальных переменных в Excel
Проблема: есть макрос,один лист и собственно книга - нужно где-то хранить числовые значения,...

13
Заблокирован
Автор FAQ
14.04.2015, 19:16 2
fedor-sg, обменивайся между модулями указателями на классы форм и дёргай через указатель нужный метод либо поле.
Цитата Сообщение от fedor-sg Посмотреть сообщение
Знаю что глобальные переменные зло
- да
В принципе есть вариант static полей, но это существенно снизит возможности модернизации проекта.
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
14.04.2015, 19:28 3
Цитата Сообщение от fedor-sg Посмотреть сообщение
Знаю что глобальные переменные зло,
Зло это в неумелых руках, как впрочем и другие конструкции
если знаешь в чем засада и готов рискнуть то вот такой путь
создается два файла
file.c
C++
1
2
3
int global1;
int global2;
int global3;
file.h
C++
1
2
3
extern int global1;
extern int global2;
extern int global3;
и файл file.h подключаешь куда нужно
0
1 / 1 / 0
Регистрация: 08.03.2012
Сообщений: 26
14.04.2015, 19:29  [ТС] 4
-=ЮрА=-, Поможете с примером? Что и где в каких файлах прописывать? Нужен самый тривиальный пример Тупо объявление, инициализация и как через любой компонент формы вызвать.
0
Заблокирован
Автор FAQ
14.04.2015, 19:42 5
Я не знаю какой у тебя проект, тартить время на полный пример жалко, вкратце так
C++
1
2
3
4
5
6
7
8
9
10
11
12
class cForm1{
public:
     float field;
     void method(){};
};
 
class cForm2{
    public:
    void calc(cForm1 * ptr){
         ptr->field += 3;
    }
};
- есно cForm подразумевает класс диалога

Добавлено через 8 минут

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
Зло это в неумелых руках,
- не соглашусь это зло, в больших проектах очень большое зло, лучше статиками разруливать, чтобы переменные прикрыты классом были

0
1 / 1 / 0
Регистрация: 08.03.2012
Сообщений: 26
14.04.2015, 20:26  [ТС] 6
ValeryS, спасибо. Проверил - работает ) Второй способ пока не понял, где класс диалога
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
14.04.2015, 21:07 7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не соглашусь это зло, в больших проектах очень большое зло,
так я про это и говорю
Цитата Сообщение от ValeryS Посмотреть сообщение
в неумелых руках
в большом проекте при куче файлов, библиотек это безусловно зло, кто-то что-то поменял и все рухнуло
ну а в микроконтроллерах, где озу иногда байтами меряется, чаше всего необходимость, не хватает стека параметры передать
Но пользоваться нужно с большой оглядкой, зная к чему это может привести, и когда это меньшее зло
это как с ГоТо, никогда не пользовался и как то обходился,но вот пришлось при определенном пакете микросхема должна идти на полный сброс, ничего лучше ГоТо не придумал, правда структурность лесом пошла
0
-=ЮрА=-
14.04.2015, 21:28
  #8

Не по теме:

ValeryS, как то твой пост лично мне читается в плане мол я даун, ладно ок.
просто в практике я реально неоднократно собирал проекты из 20 - 25 либ с десятками тысяч строк кода и с глобалом почти всегда проблемы. Речь тут шла о высокоуровневом ООП

Цитата Сообщение от fedor-sg Посмотреть сообщение
Задача такая: есть несколько форм в проекте.
а не об асме. Другое дело что с автору проще сделать чтоб работало чем сделать по уму.

0
ValeryS
14.04.2015, 22:17
  #9

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
как то твой пост лично мне читается в плане мол я даун, ладно ок.
Да где ты это вычитал:( и в мыслях такого не было, не первый год общаемся
Я говорю о том что глобальные переменные зло, но надо знать что это за зло, а не потому что низя
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Речь тут шла о высокоуровневом ООП
может быть:scratch:
но я лично встречал и слово формы которые просто относились к диалогу, в проекте на чистом Си, а там без глобальных ой как трудно, хотя и возможно
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а не об асме
я про асм и речи не вел чистейший Си
Извини если что не так:senor:

0
-=ЮрА=-
14.04.2015, 22:50
  #10

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
Извини если что не так
- я перечитал ещё раз, это я прошу прощения, "загнлся" я малость:senor:

0
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
15.04.2015, 00:23 11
Можно еще функцию для этого завести и через нее значения передавать.
0
1 / 1 / 0
Регистрация: 08.03.2012
Сообщений: 26
15.04.2015, 23:18  [ТС] 12
Всем дорого времени суток! Задача такова: необходимо, чтобы элементы массива были видны во всех формах. Я сам кое что набросал по минимуму, Form1 видит массив, а Form2 нет. Подскажите пожалуйста как это можно исправить? Проект создавался в Visual Studio 2005. Здесь массив строкового типа
Вложения
Тип файла: rar testing.rar (1.92 Мб, 17 просмотров)
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
16.04.2015, 09:10 13
Делай extern
0
tezaurismosis
16.04.2015, 18:25     Создание глобальных переменных для доступа из всех форм
  #14
 Комментарий модератора 
fedor-sg, правила запрещают дублировать темы.
Предупреждение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2015, 18:25

Создание глобальных переменных и функций в оконном приложении С++
Доброе утро! Извиняюсь, что беспокою Вас - просто сам недавно перешел с С# на С++, в связи с чем...

Создание глобальных переменных. Найти ошибку в коде
кусок код я немогу использовать глобальные переменные в действиях кнопок выдоет ошибку см. ниже....

Что правильней при работе с функциями: передача аргументов или создание глобальных переменных
Что правильней при работе с функциями: передача аргументов или создание глобальных переменных и...

Объявление форм для доступа к ним из других форм проекта
Поскажите, пожалуйста, как правильно объявить форму, что бы доступ к её элементам можно было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru