У меня есть форма VCL, в которой есть TImage
с анкерами, установленными для всех сторон, поэтому, когда пользователь меняет размер формы, размер изображения соответствует новому размеру (почти для заполнения, есть некоторые кнопки).Изменение размера изображения искажает мышь X/Y
Однако инструменты рисования, которые у меня для холста изображения, искажаются при изменении размера. Чертеж отлично работает до того, как я изменил размер, а затем, по-видимому, я рисую в каком-то другом месте, затем щелкнув мышью.
Как изменить размер TImage
и ссылаться на X/Y нового изображения, чтобы рисунок получился правильно?
MouseDown:
Drawing := true;
StartX := x;
StartY := y;
EndX := x;
EndY := y;
MouseMove:
if Drawing then begin
Image1.Canvas.Pen.Mode := pmNotXor;
Image1.Canvas.MoveTo(StartX,StartY);
Image1.Canvas.LineTo(EndX,EndY);
Image1.Canvas.MoveTo(StartX,StartY);
Image1.Canvas.LineTo(x,y);
end;
EndX := x;
EndY := y;
Image1.Canvas.Pen.Mode := pmCopy;
MouseUp:
Image1.Canvas.MoveTo(StartX,StartY);
Image1.Canvas.LineTo(x,y);
Drawing := false;
что я могу назвать событием ReSize? 'Image1.Picture.Bitmap.Height: = Image1.Height;' и 'Image1.Picture.Bitmap.Width: = Image1.Width;'? – ikathegreat
'Image1.Picture.Bitmap.SetSize (Image1.Width, Image1.Height);' –
спасибо, я обнаружил, что оба будут работать (устанавливая высоту и ширину или SetSize) и интересно стирают рисунки, если вы измените размер , затем снова большой. но это то, что я искал. – ikathegreat