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

Движение компонента TImage.

04.11.2011, 20:03. Показов 2217. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужна помощь в реализации движения компонента TImage.
В программе есть класс. У каждого объекта класса есть свои параметры, в т.ч указатель на TImage компонент, создаваемый динамически.
При попытке изменения параметров Top и Left выдаёт ошибку.

Есть ли другой способ организации движения компонента, если да, то какой? Или я что-то не правильно делаю?

Ошибка:
Миниатюры
Движение компонента TImage.  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2011, 20:03
Ответы с готовыми решениями:

Создание компонента Timage
Необходимо создать компонент на основе Timage, со встроенными событиями. при OnMouseDown размеры уменьшались, а при OnMouseUp размер...

bmp-изображения и компонента TImage
Здраствуйте! Подскажите, пожалуйста, решение проблеми. Задача - скопировать определённые пиксели изображения bmp1 в изображение...

Поворот компонента TImage на 90 градусов
Есть ли способ поворота компонента Image вместе с изображением на указанные градусы поворота. Что-бы я мог например в текстовом поле...

13
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.11.2011, 20:09
А попытка изменения свойств TImage точно происходит после его создания?
И какой, кстати, способ движения компонента вы использовали?
0
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 6
04.11.2011, 20:29  [ТС]
Попытка изменения свойств проходит.
Всё-таки тип или способ? Если способ, то изменение координат Top и Left компонента TImage.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.11.2011, 20:34
Цитата Сообщение от Averon Посмотреть сообщение
Есть ли другой способ организации движения компонента, если да, то какой? Или я что-то не правильно делаю?
вы код покажите, а не философствуйте .
0
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 6
04.11.2011, 20:36  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void Dot::fly(int i,Dot *K[10],Rectn*R)
{
 
   if(X-W==R->x1)
   {
     kx=1;
   }
   else
   if(X+W==R->x2)
   {
     kx=-1;
   }
   else
   if(Y-W==R->y1)
   {
    ky=1;
   }
   else
   if(Y+W==R->y2)
   {
    ky=-1;
   }
   X=X+kx*ax;
   Y=Y+ky*ay;
   img->Top=Y;
   img->Left=X;
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.11.2011, 20:40
И в каком месте возникает Access Violation ?
0
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 6
04.11.2011, 20:42  [ТС]
25 строка.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.11.2011, 20:42
это понятно, а вот где создается img и как используется эта fly - неведомо
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.11.2011, 20:47
Вообще, тут явно что-то не так с указателем img - либо TImage позже создается, либо раньше удаляется, проверь....
0
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 6
04.11.2011, 20:50  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
это понятно, а вот где создается img и как используется эта fly - неведомо
Rectn*L - указатель на объект класса Rectn. Является сосудом имеющим форму прямоугольника. wP- параметр ширины и высоты объекта.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 Dot::Dot(int i,Rectn*L)
{
 
 this->xP=L->x1+(L->x2-L->x1)/2;
 this->yP=L->y1+(L->y2-L->y1)/2;
 this->wP=20;
 if(Dots%4==0)
 {this->kx=1;this->ky=1;}
 if(Dots%4==1)
 {this->kx=-1;this->ky=-1;}
 if(Dots%4==2)
 {this->kx=1;this->ky=-1;}
 if(Dots%4==3)
 {this->kx=-1;this->ky=1;}
 Dots++;
 this->ax=1;
 this->ay=1;
 SetImg(i,xP,yP,wP,img);
 
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SetImg(int k,int x,int y,int w,TImage *image)
{
 AnsiString Fpath="K:\\Projects\\p\\ball";  AnsiString Fr;
 image=new TImage(Form1);
 image->Parent=Form1;
 image->Transparent=true;
 image->Top=y;
 image->Left=x;
 image->Height=w;
 image->Width=w;
 Fr=Fpath+IntToStr(k)+".bmp";
 image->Picture->LoadFromFile(Fr);
 image->Visible=true;
 image->Enabled=true;
}
P- сам массив объектов. Пока не используется. G- тип Rectn.
C++
1
2
3
4
5
6
7
while(l<=1000)
{
  //for(int i=0;i<=9;i++)
  int i=0;
  P[i]->fly(i,P,G);
 l++;
}
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
04.11.2011, 20:51
Averon,
Извиняюс...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.11.2011, 20:55
Цитата Сообщение от Programmer. Посмотреть сообщение
Вес код в студию...
зачем, если и так видно, что скрещивают ежа с удавом - получается колючая проволока .
0
0 / 0 / 0
Регистрация: 04.11.2011
Сообщений: 6
04.11.2011, 21:04  [ТС]
Проблему решил, только сейчас дошло, что в SetImg я изменяю копию указателя, а не сам указатель. Поэтому TImage *&image.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
04.11.2011, 21:09
Цитата Сообщение от Averon Посмотреть сообщение
Поэтому TImage *&image
зачем так сложно?
вполне достаточно в функцию SetImg передать адрес img
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2011, 21:09
Помогаю со студенческими работами здесь

Движение обьекта TImage?
Добрый день подскажите пожалуйста как с помощью стрелок двигать обьект в TImage??? Если это возможно? Заранее спасибо за ответы!!!

Переход на использование другого компонента(TImage -> TsImage)
Здравствуйте. Дело такое - в 6 билдере нужно перейти с TImage на TsImage(Может работать с png). Сам TsImage подключен и работает на ура....

Движение TShape вместе с TImage
Изображение движется с помощью мыши. ПКМ ставит TShape на изображении. Нужно что бы при движении изображения вмести с ним двигались и...

TImage/bmp/ico и движение
Добрый день, ребят! Есть идеи как указывать направление движения объекта, если таковое известно? Требуется рисовать стрелку. Можно было...

Движение компонента по форме
Здравствуйте. Работаю с компонентом Таймер в C++ Builder. Требуется, чтобы компонент Button при движении по области формы, если он...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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