IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Масштабирование компонентов
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Привет всем.

На форме имеются созданные вручную TImage'и. Каждому я вручную присвоил необходимые события. Собственно, нужно сделать возможность изменения размеров компонента, чтобы при подводе курсора к границе (но не к углу!) имаджа курсор менялся на обоюдоострую стрелочку, и можно было растягивать компонент. Вот что получилось:

Procedure TLine_Road.onMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
xmouse:=x;ymouse:=y;
down:=true;
end;

Procedure TLine_Road.onMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
down:=false;
end;

Procedure TLine_Road.OnMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var m:TImage;
begin
m:=(sender as TImage);
if (x>m.left) and (x<m.left+m.width) and ((y=m.top) or (y=m.top+m.height)) then
begin
m.Cursor:=crSizeNS;
if down then begin
if y=m.top then begin
m.height:=m.height+(y-m.top);
m.Top:=y-1;
end;
end;
end else
if down then
begin
m.Cursor:=crDefault;
m.left:=m.left+(x-xmouse);
m.top:=m.top+(y-ymouse);
end;
end;


В процедуре OnMove я уже сделал перетаскивание компонента, работает. А вот чуть выше, в этой процедуре - попытка сделать ресайз, но там пробно только для верхней границы. Какое-то странное поведение: имадж создаётся на панели с координатами (1,1), уже с картинкой. Если его не двигать, то при подводе курсора к верхней границе, он, курсор, меняет, как и должно быть, форму, но ничего не меняет. А если имадж подвинуть ниже, то и вовсе курсор не меняется. Подвинули на исходную - меняется. Чертовщина, хотя сравнивал координаты - вроде правильно всё.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Набрал код Rian'а (ренейм? smile.gif ) и скачков не заметил. Правда, морагние есть небольшое smile.gif
Цитата
к чему относится
Методом трассировки выяснил, что этот код отвечает за перемещение имеджа при нажатии мыши в области, не включающую в себя рамку smile.gif
PtInRect(Rect(2, 2,  m.Width - 2, m.Height - 2), Point(X, Y))
Это "point in rect" ? т.е. область не влючая рамку (2 пикселя) ?

Добавлено через 2 мин.
Цитата
Хочешь, покажу тебе "уличную магию"?
Не-не-не, только не это, Дэвид Блэйн lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Unconnected   Масштабирование компонентов   23.02.2010 0:24
volvo   OnMove - это что? Какое сообщение обрабатывается?   23.02.2010 0:41
Unconnected   OnMouseMove, и с остальными так же. И ещё, у имад…   23.02.2010 0:55
volvo   А собственно, с чего ты решил, что TImage.OnMouseM…   23.02.2010 1:42
Unconnected   Код интересный, спасибо, повожусь с ним :)   23.02.2010 1:58
Unconnected   Во дела. Ресайз не работал, пока я не отключил Aut…   23.02.2010 4:31
volvo   Proportional в True устанавливать не пробовал? :)   23.02.2010 5:22
Unconnected   В итоге я сделал массивом из размеров, они мне ещё…   23.02.2010 20:25
volvo   Хочешь, покажу тебе "уличную магию"? :)…   23.02.2010 21:40
Unconnected   Уже лучше стало, уличная магия заключалась в …   24.02.2010 1:50
volvo   Попробуй сделать так, чтоб мыша вылезла за пределы…   24.02.2010 4:04
Rian   вот такое тож работает, правда курсоры не делал …   24.02.2010 17:40
volvo   Работать и работать правильно - это разные вещи...…   24.02.2010 19:06
Client   Набрал код Rian'а (ренейм? :) ) и скачков не …   24.02.2010 20:43
Rian   Набрал код Rian'а (ренейм? :) ) и скачков не…   24.02.2010 21:40
volvo   Я про скачки не говорил я говорил про непропорцион…   24.02.2010 22:02
Rian   Это что, мне только кажется, или так и должно быт…   24.02.2010 22:20
Client   Ну с чего такие мысли? тебе тут все рады   24.02.2010 22:47
Unconnected   Если кому интересно, вот немного модифицированный …   25.02.2010 2:10
Гость   да кстати а чем видео делаете?   25.02.2010 13:22
volvo   Ну, это кто чем... Я - вот этим: http://camstudio.…   25.02.2010 14:39


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.02.2021 9:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name