На форме имеются созданные вручную 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 -