Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43

Связка всех форм одной переменной

28.10.2013, 11:13. Показов 1515. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Прежде всего хочу сказать, что новичек в C++, но не в пользовании интернетом. Поискал уже и так и сяк, видел много тем, но все никак не получается реализовать это у себя. А не получается вот что:
Есть три формы(три окна). Нужно сделать так, чтобы для них всех одна переменная стала общая, меняла и сохраняла свое значение на протяжении всей работы окон. Нужно это для того, чтобы я сначала(в первом окне) выбрал за кем будет первый ход), передал это значение в основное окно, там уже, основываясь на полученном, значение начал игру, ну и, наконец, последнее окно должно объявить победителя, основываясь на последнем значении этой переменной.Переменная в коде зовется "lead"(так же "m_lead" и "main_lead") и по сути должна принимать два значения "1" и "2". Пробовал уже и static в отдельном хедере. Пробовал extern тоже прописав в отдельных хедере и cpp. В данный момент в коде попытка сделать это сигналами, но QT ругается на мою реализацию. Проект прикладываю.
Заранее спасибо!
P.S. Прошу прощения за сырость в коде. Мне бы сейчас хотя бы полностью отладить работу программы.
Вложения
Тип файла: rar untitled1.rar (8.2 Кб, 3 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2013, 11:13
Ответы с готовыми решениями:

Задать область видимости переменной для всех форм
Как заставить проделывать работу без отображения формы. Например есть button1 на form1 нажимаем на кнопку, переходим к другому...

Связка 2 форм
я сделал прогу "Библиотека",в главной форме у меня есть кнопка поиск,я ее жму и открывается 2-я форма для поиска,я там ввожу данные и...

Связка форм
У меня три формы, связанные между собой. Я сделала что при переходе с 1 формы на 2, 1 форма становилась не видимой , и так же со2 на 3 , на...

9
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
28.10.2013, 11:21
Выдели класс бизнес-логики, сделай его синглтоном, создающимся при старте приложения и из всех форм к нему обращайся.
0
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43
28.10.2013, 18:34  [ТС]
Пытался осознать и понять как реализуется синглтон. Так и не понял, честно говоря.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.10.2013, 20:09
Retper, будь проще! Объяви в одном месте свою lead не в хедере, а просто вне функций, перед ними. Без слова extern. Там же можешь ей дать начальное значение. В других модулях где она нужна, объявляешь ее также вне функций, но со словом extern
Цитата Сообщение от Retper Посмотреть сообщение
Мне бы сейчас хотя бы полностью отладить работу программы.
Должно помочь. А уж потом, когда снимется стресс, займись синглтонами и прочими интересными вещами. Кстати, это красивое слово я тоже вижу впервые.
А в стиле С++ можно сделать еще так. Создать класс с приватной статической переменной lead, снабдить его сеттером и геттером (наверное, статическими, да?), и далее в ус себе не дуть...
0
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43
28.10.2013, 20:36  [ТС]
Спасибо, опробую, отпишусь.
0
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43
28.10.2013, 22:00  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Retper, будь проще! Объяви в одном месте свою lead не в хедере, а просто вне функций, перед ними. Без слова extern. Там же можешь ей дать начальное значение. В других модулях где она нужна, объявляешь ее также вне функций, но со словом extern Должно помочь. А уж потом, когда снимется стресс, займись синглтонами и прочими интересными вещами. Кстати, это красивое слово я тоже вижу впервые.
А в стиле С++ можно сделать еще так. Создать класс с приватной статической переменной lead, снабдить его сеттером и геттером (наверное, статическими, да?), и далее в ус себе не дуть...
Вот черт! не получается никак. С экстерном сразу не получилось, поэтому перешел на сеттеры и геттеры, все шло хорошо, пока не пропали все ошибки, проект собрался и оказалось, что ничерта не получилось у меня(фу, рак!). По логике все должно работать, я геттером передал значение в класс, а оттуда в другом окне взял это значение, но нифига. Оно в нужное окно приходит нулем. Вот проект с сеттерами и геттерами(если кому-то еще интересно ).
Вложения
Тип файла: rar Proekt.rar (8.5 Кб, 4 просмотров)
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
29.10.2013, 00:25
Парень, у тебя проблемы не с Qt, а с обычным С++. И тебе лучше вначале прочитать какую-нибудь хорошую книгу по С++. В свой класс добавь слово static к set, get и int. Конструктор убери, он там не нужен. int лучше засунуть в приватную часть класса. Обращаться к функция можешь спокойно через Lead::set и Lead::get. Впрочем, как я посмотрел, у тебя там и без этого ошибок целая куча. Например ты хочешь присвоить значения limit_numbers и array_length прямо в заголовке класса при их объявлении. И, разумеется, компилятор на это ругаются. Если надо присваивать значения - делай это в конструкторе класса или в его функциях.
В общем, в качестве итога, советы:
1) Прочитать хорошую книгу по С++. Или учебник.
2) Прочитать соглашение по оформлению кода.
2
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43
29.10.2013, 09:10  [ТС]
Цитата Сообщение от Shtirliz72 Посмотреть сообщение
Парень, у тебя проблемы не с Qt, а с обычным С++. И тебе лучше вначале прочитать какую-нибудь хорошую книгу по С++. В свой класс добавь слово static к set, get и int. Конструктор убери, он там не нужен. int лучше засунуть в приватную часть класса. Обращаться к функция можешь спокойно через Lead::set и Lead::get. Впрочем, как я посмотрел, у тебя там и без этого ошибок целая куча. Например ты хочешь присвоить значения limit_numbers и array_length прямо в заголовке класса при их объявлении. И, разумеется, компилятор на это ругаются. Если надо присваивать значения - делай это в конструкторе класса или в его функциях.
В общем, в качестве итога, советы:
1) Прочитать хорошую книгу по С++. Или учебник.
2) Прочитать соглашение по оформлению кода.
Да я и не говорил, что с C++ у меня все хорошо. Спасибо, попробую. Да, код сырой и с большим количеством ошибок, я знаю. Ибо пишу в спешке, поэтому и времени на книги нет. Если бы у меня была уйма свободного времени, я бы, конечно, по изучал бы литературу.
0
29.10.2013, 11:53

Не по теме:

Цитата Сообщение от Retper Посмотреть сообщение
Ибо пишу в спешке, поэтому и времени на книги нет.
Простите, но вы мне напоминаете человека, севшего за руль и совершенно не знающего, какие и зачем там рычажки и педальки. В такой спешке вы далеко не уедите. Хорошо еще, если обойдется без ДТП.:)

0
 Аватар для Retper
0 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 43
29.10.2013, 15:48  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение

Не по теме:

Простите, но вы мне напоминаете человека, севшего за руль и совершенно не знающего, какие и зачем там рычажки и педальки. В такой спешке вы далеко не уедите. Хорошо еще, если обойдется без ДТП.:)

Прекрасно это осознаю, но и поделать ничего не могу. Как бы не хотелось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2013, 15:48
Помогаю со студенческими работами здесь

Связка двух форм
Пишу курсач. MSVS 2010 Задача на данном этапе: Имеется две формы Form1(главное окно) и Form2(некое окно настроек). Нужно их свзяать...

Вывод на экран всех значений одной переменной
Здравствуйте. Есть задание: Вводить последовательно числа (используя для этого одну переменную), пока сумма этих чисел не будет равна...

Связка нескольких форм обратной связи
Каким образом будет корректно привязать несколько разных форм обратной связи к одному PHP-файлу? На конкретном примере -4.11 Картинки и...

Связка двух форм и непонятное окно
Доброе время суток эксперты, подскажите пожалуйста чайнику, что это может быть? Unit2 я прописал в Uses, как положено, но при компиляции...

Связка двух форм в VB.Net 2015 + SQL Server 2008
Всем привет. Вновь обращаюсь за помощью к знающим и понимающим. Проблема такого плана : есть две формы, одна содержит DataGridView с...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru