![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
На форме имеются созданные вручную TImage'и. Каждому я вручную присвоил необходимые события. Собственно, нужно сделать возможность изменения размеров компонента, чтобы при подводе курсора к границе (но не к углу!) имаджа курсор менялся на обоюдоострую стрелочку, и можно было растягивать компонент. Вот что получилось: Procedure TLine_Road.onMouseDown(Sender: TObject; Button: TMouseButton; В процедуре OnMove я уже сделал перетаскивание компонента, работает. А вот чуть выше, в этой процедуре - попытка сделать ресайз, но там пробно только для верхней границы. Какое-то странное поведение: имадж создаётся на панели с координатами (1,1), уже с картинкой. Если его не двигать, то при подводе курсора к верхней границе, он, курсор, меняет, как и должно быть, форму, но ничего не меняет. А если имадж подвинуть ниже, то и вовсе курсор не меняется. Подвинули на исходную - меняется. Чертовщина, хотя сравнивал координаты - вроде правильно всё. Сообщение отредактировано: Unconnected - 22.02.2010 20:26 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Набрал код Rian'а (ренейм?
![]() ![]() Цитата к чему относится Методом трассировки выяснил, что этот код отвечает за перемещение имеджа при нажатии мыши в области, не включающую в себя рамку ![]() PtInRect(Rect(2, 2, m.Width - 2, m.Height - 2), Point(X, Y))Это "point in rect" ? т.е. область не влючая рамку (2 пикселя) ? Добавлено через 2 мин. Цитата Хочешь, покажу тебе "уличную магию"? Не-не-не, только не это, Дэвид Блэйн ![]() |
Rian |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
Набрал код Rian'а (ренейм? ![]() ![]() моргание убирается через doublebufferd:=true; ![]() Добавлено через 12 мин. Работать и работать правильно - это разные вещи... Твой код - работает... Ибо при попытке растянуть картинку за нижнюю границу, она начинает увеличиваться с первой космической скоростью при малейшем движении мыши вниз... Исправляй. Добавлено через 4 мин. P.S. Кстати, а вот это: к чему относится? Это был первый вопрос на засыпку. А второй - как ты думаешь, когда отработает изменение Image1.Top? При каких условиях? убегает с космической скоростью?... не заметил.... последняя проверка перемещает всю картинку image1.top отработает если y<5 и... есть флаг нажатия ЗЫ. я уже боюсь чего это volvo опять загадает ![]() Прикрепленные файлы ![]() -------------------- Objective-C, Unity3d
|
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 4:10 |