|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.11.2011, 19:51 | #1 |
Регистрация: 04.11.2011
Сообщений: 8
|
Движение компонента TImage.
Здравствуйте. Нужна помощь в реализации движения компонента TImage.
В программе есть класс. У каждого объекта класса есть свои параметры, в т.ч указатель на TImage компонент, создаваемый динамически. При попытке изменения параметров Top и Left выдаёт ошибку. Есть ли другой способ организации движения компонента, если да, то какой? Или я что-то не правильно делаю? Ошибка: |
04.11.2011, 20:05 | #2 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Значит не правильно создавался у вас компонент ! Выложите код создания компонента и где происходят изменения Top и Left.
|
04.11.2011, 20:26 | #3 |
Регистрация: 04.11.2011
Сообщений: 8
|
Код функции вызываемой в конструкторе объекта класса:
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; } ------------------------------------------------------------------ Код функции для движения. X и Y-целые. kx,ky -целые. ax,ay-double. void Dot::fly(int i,Dot *K[10],Rectn*R) { .................. .................. .................. X=X+kx*ax; Y=Y+ky*ay; img->Top=Y; img->Left=X; } |
04.11.2011, 20:42 | #4 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
И сразу видно ошибку
Вы передаете указатель в функцию, а потом его меняете там. Но в функцию передается копия указателя ! И меняется так же копия указателя. Если вы хотите изменить указатель, то этот указатель передавать через другой указатель или через ссылку. Передача указателя через ссылку так: Код:
|
04.11.2011, 20:57 | #5 |
Регистрация: 04.11.2011
Сообщений: 8
|
Спасибо большое, позабыл
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение компонента TImage. | Averon | C++ Builder | 0 | 04.11.2011 19:35 |
Синхронизация визуального компонента (label) поверх TImage с возможностью прокрутки/маштабир. последнего | Hmmmm | Мультимедиа в Delphi | 1 | 20.05.2011 15:34 |
Использование компонента idUdpClient без компонента TForm. | Riply | Компоненты Delphi | 2 | 18.02.2011 21:21 |
Почему у компонента TImage не работает метод Perform? | devi409 | Win Api | 7 | 22.12.2008 17:51 |