Redimensionarea timajului

Redimensionarea imaginii

În program există Timage, sau mai degrabă pe formularul MDI. Dimensiunea sa variază, în funcție de dimensiunea ferestrei. Inițial, Timage este invizibil. Problema este că dacă, de exemplu, reduc fereastra și apoi desenez ceva pe TImage invizibil, atunci desenul este desenat în funcție de dimensiunile vechi. A încercat atât actualizarea, cât și repetarea și reîmprospătarea - rezultă zero! Poate cineva știe cum să evite acest lucru! Vă mulțumim în avans!







> reduceți fereastra și apoi trageți ceva pe TImage invizibil

după reducerea ferestrei încercați să schimbați prima imagine
și apoi trageți, de exemplu:

procedura TForm1.FormResize (expeditor: TObject);
începe
DoubleBuffered: = true;
image1.visible: = false;
image1.stretch: = adevărat;
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 ("imagine.bmp");
image1.visible: = true;
se încheie;

sau încă scrie ce faci de fapt

Și aici trageți un cadru de imagine
și aici la image1.stretch = adevărat
tot ce este desenat pe pânză este deformat ca o imagine descărcată.

procedura TForm1.FormResize (expeditor: TObject);
var i, h, w: întreg;
începe
DoubleBuffered: = true;
image1.visible: = false;
//image1.stretch:=true;
image1.top:=0;
image1.left: = 0;

// dacă imaginea este încărcată, atunci aceste linii pot fi eliminate
//image1.picture.bitmap.width:=clientWidth;
//image1.picture.bitmap.height:=clientHeight;

// cadrul:
pentru i: = 1 până la lățimea div 12 nu începe
image1.canvas.Brush.color: =
rgb (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));
se încheie;

Dacă înțeleg corect, imaginea este întreruptă de același dreptunghi, iar parametrul ClipRect nu se modifică când se modifică dimensiunea imaginii. Încercați să schimbați parametrii Timage.canvas.picture.bitmap.height și lățimea pentru a se potrivi timage.height și timage.width

Memorie: 0,73 MB
Durată: 0,048 secunde







Trimiteți-le prietenilor: