Зміна розміру TImage
У програмі є Timage, вірніше на mdi-формі. Розмір його змінюється, в залежності від розмірів вікна. Спочатку Timage - невидимий. Проблема в тому, що якщо я, наприклад, зменшу вікно, а потім намалюю щось на невидимому TImage, то малюнок малюється за старими розмірами. Пробував і Update і Repaint і Refresh - результату нуль! Може, хто знає, як цього уникнути! Заздалегідь дякую!
> Зменшу вікно, а потім намалюю щось на невидимому TImage
після зменшення вікна спробуй спочатку змінити image
і потім вже малювати, наприклад так:
procedure TForm1.FormResize (Sender: TObject);
begin
DoubleBuffered: = true;
image1.visible: = false;
image1.stretch: = true;
image1.top:=0;
image1.left: = 0;
image1.width: = clientWidth;
image1.height: = clientHeight;
image1.picture.bitmap.width: = clientWidth;
image1.picture.bitmap.height: = clientHeight;
image1.picture.loadFromFile ( "image.bmp");
image1.visible: = true;
end;
або все-таки напиши що робиш насправді
Ось теж малюю рамку для картини
і тут при image1.stretch = true
все що малюється на canvas деформується як завантажена картинка.
procedure TForm1.FormResize (Sender: TObject);
var i, h, w: integer;
begin
DoubleBuffered: = true;
image1.visible: = false;
//image1.stretch:=true;
image1.top:=0;
image1.left: = 0;
// якщо завантажується картинка то ці рядки можна прибрати
//image1.picture.bitmap.width:=clientWidth;
//image1.picture.bitmap.height:=clientHeight;
// рамка:
for i: = 1 to width div 12 do begin
image1.canvas.Brush.color: =
rgb (abs (trunc (255 * cos (i / 32))), trunc (255 * sin (i / 12)), trunc (255 * sin (i / 48)));
image1.canvas.frameRect (rect (i, i, clientWidth-i, clientHeight-i));
end;
Якщо я правильно зрозумів, то зображення відсікається одним і тим же прямокутником, і параметр ClipRect не змінюється при зміні розмірів зображення. Спробуйте змінити параметри Timage.canvas.picture.bitmap.height і width за розміром timage.height і timage.width
Пам'ять: 0.73 MB
Час: 0.048 c