Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341

Передвигать TImage.

24.07.2009, 13:19. Показов 2226. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как перемещать компонент TImage на форме с помощью мыши?

Добавлено через 5 минут 33 секунды
И еще сразу вопрос:
Как ограничить перемещение TImage в заданой области?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.07.2009, 13:19
Ответы с готовыми решениями:

TImage
Вообщем написал я программу которая при нажатии стрелки влево картинка начинает двигаться влево, только есть одна проблема картина делает...

Перемещение Timage
Как сделать перемещение TImage по клику, т.е нажать на Timage, а затем в место куда ее переместить?

Кнопка из TImage
Сделал кнопку из TImage. При нажатии картинка меняется. Но назад при отпускании не могу вернуть. 2 дня мучаюсь. Подскажите кто знает.

9
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
24.07.2009, 13:20
почитай подробней про Drag-n-Drop. C помощью этой технологии, можно пермещать не только TImage, а и другие объекты.
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
24.07.2009, 13:21  [ТС]
Я читал уже про Drag-n-Drop, только не с компонентами было связанно. Ну лан разберусь
А на 2-й вопрос ответите?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
24.07.2009, 13:44
через драг-дроп некрасиво получается таскать...
лучше картинку кинуть на TPanel, сделать картинке Enabled = false; а на OnMouseDown панели:
C++
1
2
3
4
ReleaseCapture();
Panel1->SetFocus();
Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0);
Panel1->Repaint();
1
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
24.07.2009, 14:05  [ТС]
В OnMouseDown:
C++
1
2
3
4
ReleaseCapture();
Panel1->SetFocus();
Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0);
Panel1->Repaint();
В OnMouseUp :
C++
1
2
Form1->Width=Panel1->Width+Panel1->Left;
Form1->Height=Panel1->Height+Panel1->Top;
Размер формы должен поидее изменяться когда я двигаю панел. Но не изменяеться, почему?
0
10 / 10 / 1
Регистрация: 21.07.2009
Сообщений: 49
24.07.2009, 14:14
А ты сделал
Цитата Сообщение от Falen Посмотреть сообщение
Form1->Width=Panel1->Width+Panel1->Left; Form1->Height=Panel1->Height+Panel1->Top;
в void __fastcall TForm1::Panel1MouseUp(...) или в
void __fastcall TForm1::FormMouseUp(...)????
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
24.07.2009, 14:15
Цитата Сообщение от Falen Посмотреть сообщение
В OnMouseDown:

Код C++1 2 3 4 ReleaseCapture(); Panel1->SetFocus(); Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0); Panel1->Repaint();
В OnMouseUp :

Код C++1 2 Form1->Width=Panel1->Width+Panel1->Left; Form1->Height=Panel1->Height+Panel1->Top;
Размер формы должен поидее изменяться когда я двигаю панел. Но не изменяеться, почему?
А чего добиться то хочешь в итоге?
0
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
24.07.2009, 14:18  [ТС]
в void __fastcall TForm1::Panel1MouseUp(...) конечноже. Когда было Drag-n-Drop, то все ок было а теперь не изменяет размеры...

Добавлено через 1 минуту 53 секунды
Цитата Сообщение от oxotnik Посмотреть сообщение
А чего добиться то хочешь в итоге?
В итоге форма bsNone, тяну за компонент и изменяю размер нестандартной формы.
С драг и дроп все норм было, а с твоим кодом не меняет, хотя не понятно почему. А твое предложение мне понравилось-все гладко перемещаеться.
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
24.07.2009, 14:30
Там же и пиши:
C++
1
2
3
4
5
ReleaseCapture();
Panel1->SetFocus();
Panel1->Perform(WM_SYSCOMMAND, 0xF012, 0);
Width = Panel1->Left + Panel1->Width;
Height = Panel1->Top + Panel1->Height;
единственный косяк: пока мышку не отпустишь, форма не перерисовывается и мышку дальше формы (не перерисованной) не подвинешь. Что бы избавиться надо унаследовать свой класс от TPanel в котором обрабатывать WM_SYSCOMMAND с параметром WParam = 0xF012 и перерисовывать Parent-а
1
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
24.07.2009, 14:35  [ТС]
Спс, то что надо=)

Добавлено через 2 минуты 39 секунд
Цитата Сообщение от oxotnik Посмотреть сообщение
...
Что бы избавиться надо унаследовать свой класс от TPanel в котором обрабатывать WM_SYSCOMMAND с параметром WParam = 0xF012 и перерисовывать Parent-а
Мож поконкретней пример привети=) А то мозги уже не варят...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2009, 14:35
Помогаю со студенческими работами здесь

MouseWheelUp на TImage
Привет! Возможно ли как-то реализовать скроллинг на TImage. У меня есть картинка TImage - график. Его можно масштабировать. При...

TImage и PatBlt
Всем доброго времени суток. Сразу к делу. По таймеру происходит отрисовка на TImage *iPainter; При срабатывании таймера чищу экран...

Работа с TImage
Добрый день может кто подсказать почему выскакивает ошибка из-за наследования класа TImage class TIsland:public TImage { ...

TImage и AutoSize
Загружаю картинку в Image2 таким способом c заранее заданными координатами void __fastcall TEdit_Form::Button3Click(TObject...

StringGrid TImage
Столкнулся со следующей проблемой.Мне надо создать картинку(кнопку) в StringGrid. Делаю вот так TRect Rect; ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru