Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 9

Как подружить юниты

06.03.2015, 10:15. Показов 1939. Ответов 8
Метки нет (Все метки)

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

Есть отдельный юнит, в заголовке которого описан класс, отвечающий за анимацию, т.е. должен с заданой частотой перерисовывать на канвас изображение. В файле.cpp описывается сама логика. Есть другой юнит, который рисует главное окно. В это окно и нужно рисовать анимацию. Как?

Спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2015, 10:15
Ответы с готовыми решениями:

Как вы организуете юниты? По папкам или все сплошняком?
Народ, всем привет! Как Вы организуете юниты? Вот пишу я компонент и чем дальше тем дремучей, хотелось бы чтобы все было по полочкам. Я...

Сортировка. Множества. Юниты
помогите пожалуйста написать несколько программ. 1) Сортировка Разработайте алгоритм методом пошаговой детализации и программу,...

Полезные юниты и методы
Решил создать тему, где пользователи могут публиковать так и найденные полезные материалы, так и те, которые вы написали (перед публикацией...

8
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
06.03.2015, 10:43
А если прописать один юнит в другом юните?
0
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 9
06.03.2015, 10:44  [ТС]
Вы имеете ввиду #include заголовок.h? Если да, тогда подключил.
Если просто перенести все в один юнит, то нет, мне нужно именно подружить их.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
06.03.2015, 11:38
Цитата Сообщение от Nestar Посмотреть сообщение
Если да, тогда подключил.
Да именно это. Уточняю консольное приложенние или нет?
0
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 9
06.03.2015, 11:43  [ТС]
Нет, не консольное.

Вообще, принципиальная проблема в том, что не могу заставить один юнит выполнять функции класса другого юнита.
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
06.03.2015, 11:45
Цитата Сообщение от Sasha Посмотреть сообщение
консольное приложенние или нет?
Автор как бы намекает
тетрис на сдандартных формах
0
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 9
06.03.2015, 13:29  [ТС]
И, если это влияет на ответ, работаю в шестом билдере.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
06.03.2015, 14:08
Лучший ответ Сообщение было отмечено Nestar как решение

Решение

Цитата Сообщение от Nestar Посмотреть сообщение
не могу заставить один юнит выполнять функции класса другого юнита.
Описываем второй модуль:
Код
Unit2.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <vcl.h>
//---------------------------------------------------------------------------
 
class ClassInUnit2
{
private:
        int some;
public:
        int GetSome() const;
        void SetSome( int value );
};
//---------------------------------------------------------------------------
#endif
Unit2.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
#pragma hdrstop
 
#include "Unit2.h"
 
//---------------------------------------------------------------------------
int ClassInUnit2::GetSome() const
{
        return this->some;
}
//---------------------------------------------------------------------------
void ClassInUnit2::SetSome( int value )
{
        this->some = value;
}
//---------------------------------------------------------------------------
#pragma package(smart_init)


Работаем с ним из другого:
Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h" // Подключаем
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
ClassInUnit2 ExempleClassUnit2; // Создаем экземпляр
 
ExempleClassUnit2.SetSome( 666 ); // Работаем
 
ShowMessage( ExempleClassUnit2.GetSome() ); // Результат
}
//---------------------------------------------------------------------------
1
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 9
06.03.2015, 17:31  [ТС]
SatanaXIII, спасибо большое. Проблема была в том, что не создал экземпляр класса во втором модуле и пытался с ним работать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2015, 17:31
Помогаю со студенческими работами здесь

Unity, пиксели и юниты
В исходных данных имеется объекты, которые передают размеры и местоположение в пикселях. Как правильно конвертировать размеры в юниты , что...

Не сохраняет все юниты проекта
BCB 6.В проекте достаточно много юнитов. Пишу по отдельности разные функции объемной программы, потом подключаю к главному проекту через...

Чем можно заменить организационные юниты?
Работа на виндоус сервере. вопрос заключается в - Чем можно заменить организационные юниты? Аналог организационных юнитов.

Debugging с точкой останова, заходит в служебные юниты
Если поставить точку останова, где-нибудь в своем коде, то кроме выполнения по строкам моего кода так же Delphi заходит в служебные юниты...

Прочитать все юниты и их параметры в структуру с помощью XmlReader
Добрый день! Подскажите пожалуйста подходящий метод в XmlReader для решения моей задачи. У меня имеется XML файл примерно такого...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru