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

Перемещение Image

27.04.2013, 17:18. Показов 2863. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, в общем такая проблема: надо при нажатии левой кнопки (Left Arrow) переместить изображение влево, или наче в право.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    if(GetKeyState(VK_LEFT)){
        Character->Left++;
        }
    else {
       Character->Left--;
    }
}
Но ничего не происходит. Возможно вопрос обсуждался не раз
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2013, 17:18
Ответы с готовыми решениями:

Перемещение Image
Нужно,чтобы шашки перемещались. Файл cpp //--------------------------------------------------------------------------- #include...

Перемещение Image на форму
Мне нужно отобразить TImage который не описан в классе формы, а находится в другом месте, и мне надо этот Image отобразить на ней.. как мне...

Перемещение картинки внутри Image
итак, вот что мне в голову пришло, зачемто: есть Image1, в который загружена картинка, больше чем сам Имаг.ни свойство стречь, ни...

15
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2013, 17:24
может, в OnKeyDown или OnKeyPress формы, а не в кострукторе?

Добавлено через 1 минуту
А как же, вопрос попыток программирования методом научного тика
Цитата Сообщение от TheEnd Посмотреть сообщение
обсуждался не раз
.
1
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
27.04.2013, 17:25
А зачем ты пишешь этот код в конструкторе формы???
Установи у формы свойство KeyPreview в true, создай обработчик события OnKeyPress и пиши в нём
C++
1
2
3
4
if(Key == VK_LEFT)
    Character->Left++;
else
    Character->Left--;
1
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 29
27.04.2013, 17:32  [ТС]
Дело в том что C++ Builder установил только сегодня, до этого программировал в C#, можно отдельный кусок кода?

Добавлено через 51 секунду
А все, нашел вкладку Events

Добавлено через 2 минуты
Сделал так:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::EventPress(TObject *Sender, char &Key)
{
        if(Key == VK_LEFT){
                Character->Left++;
        }
        else {
                Character->Left--;
        }
}
Все равно не работает.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
27.04.2013, 17:35
На чём бы ты не программировал, что такое конструктор тебе должно быть известно.

Одним куском кода не обойтись...
Кликни по форме, чтобы фокус был на ней и нажми F11
Попадёшь в инспектор объектов. Там найди свойство KeyPreview и установи у него значение true
Затем в инспекторе объектов перейди на вкладку Events, найди событие OnKeyPress и два раза кликни в пустом поле. Создастся обработчик события.
Туда вставь приведённый мной выше код

Добавлено через 46 секунд
Что сам нашёл - молодец. А про KeyPreview, наверное, забыл
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 29
27.04.2013, 17:35  [ТС]
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
На чём бы ты не программировал, что такое конструктор тебе должно быть известно.

Одним куском кода не обойтись...
Кликни по форме, чтобы фокус был на ней и нажми F11
Попадёшь в инспектор объектов. Там найди свойство KeyPreview и установи у него значение true
Затем в инспекторе объектов перейди на вкладку Events, найди событие OnKeyPress и два раза кликни в пустом поле. Создастся обработчик события.
Туда вставь приведённый мной выше код
Я так и сделал, прочитайте сообщение выше. Все равно не работает.

Добавлено через 36 секунд
KeyPreview поставил на true
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.04.2013, 17:35
Ну как бы С# это не C++ и тем более не Builder ....
Цитата Сообщение от TheEnd Посмотреть сообщение
Все равно не работает.
Ясно дело, половину буКов съели ?
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 29
27.04.2013, 17:37  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Ну как бы С# это не C++ и тем более не Builder ....

Ясно дело, половину буКов съели ?
Конечно же ясно. А вот про половину буков я не понял.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
27.04.2013, 17:38
TheEnd, а ты обработчик-то создал для формы? Может для кнопки или для картинки?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.04.2013, 17:38
Цитата Сообщение от TheEnd Посмотреть сообщение
А вот про половину буков я не понял.
Цитата Сообщение от TheEnd Посмотреть сообщение
C++
1
TForm1::EventPress
C++
1
2
3
4
5
6
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyPress(TObject *Sender, System::WideChar &Key)
{
 
}
//---------------------------------------------------------------------------
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
27.04.2013, 17:40
Цитата Сообщение от Avazart Посмотреть сообщение
System::WideChar &Key
Avazart, у него не RAD Studio, сейчас ведь начнёт исправлять
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 29
27.04.2013, 17:52  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
2
3
4
5
6
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyPress(TObject *Sender, System::WideChar &Key)
{
 
}
//---------------------------------------------------------------------------
Я назвал эвент EventPress, или это имеет сильное значение?

Добавлено через 9 минут
Всем спасибо за помощь, сделал так:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        if(Key == VK_LEFT){
                Character->Left++;
        }
        else {
                Character->Left--;
        }
}
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
27.04.2013, 17:52
нет, не имеет, если правильно переименовал везде, где надо. Но потом в таком коде сложно разобрать, непонятно к какому компоненту относится обработчик
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.04.2013, 17:53
Событие KeyDown, а не KeyPress
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
 
{
  static const int h=10;
 
  switch(Key)
   {
     case VK_LEFT:  Image1->Left-= h; break;
     case VK_RIGHT: Image1->Left+= h; break;
     case VK_UP:    Image1->Top -= h; break;
     case VK_DOWN:  Image1->Top += h; break;
   }
}
//---------------------------------------------------------------------------
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.04.2013, 17:55
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
не RAD Studio
что-то из CodeGear.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.04.2013, 18:00
Цитата Сообщение от TheEnd Посмотреть сообщение
Я назвал эвент EventPress, или это имеет сильное значение?
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
нет, не имеет, если правильно переименовал везде, где надо. Но потом в таком коде сложно разобрать, непонятно к какому компоненту относится обработчик
Эвент нельзя переименовать- это свойство компонента, можно назвать только его обработчик, но зачем если среда сама создает,называет, сама связывает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2013, 18:00
Помогаю со студенческими работами здесь

Маштаб и перемещение рисунка в Image
Подскажите:Я загружаю на Image рисунок. Какую функцию надо использовать чтобы изменить размер этого рисунка?И какую функцию надо...

Медленное перемещение image по форме
Добрый день всем! Подскажите как програмно задать медленное перемещение image по форме. Поиск по форум пробовал, Sleep тоже не...

Перемещение множества Image по форме
пишу игру шашки. все шашки бросаю на компоненты image. Для перемещения Image нужно прописывать MouseDown, MouseMove и MouseUp, но что...

Image, перемещение и масштабирование изображения
Есть программа которая загружает изображение в форму (я сделал на Image), необходимо при помощи средней кнопкой мыши перемещать и...

Как вставить Jpeg в Image? И какие форматы можно вставить в Image?
Подскажите как вставить Jpeg в Image? И какие форматы можно вставить в Image? Добавлено через 53 секунды вставка в image из...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru