1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| procedure TAffCarte.PaintBoxPaint(Sender: TObject);
// *** la PaintBox est repainte ***
var
LBmp: TBGRABitmap;
begin
LBmp := TBGRABitmap.Create(PaintBox.Width, PaintBox.Height, BGRAWhite);
try
LBmp.PutImageAngle(Dec0.X-Depl.X, Dec0.Y-Depl.Y, bmpCarte, tckbAngle.Position,
AffXdiv2-(Dec0.X-Depl.X), AffYdiv2-(Dec0.Y-Depl.Y),
$FF, DecalApresRot, False); // Déplacement et rotation
kZoom:= tckbResample.Position / 100;
HG.X:= Round((1-kZoom)*(AffXdiv2));
HG.Y:= Round((1-kZoom)*(AffYdiv2));
LBmp := LBmp.Resample(Round(Lbmp.Width * kZoom), Round(LBmp.Height* kZoom), rmSimpleStretch) as TBGRABitmap; // Zoom
LBmp.Draw(PaintBox.Canvas, HG.X, HG.Y, False); // Trace la carte avec ses déplacements, zoom et rotation
LBmp.Free;
except
LBmp.Free;
end;
Mem:= GetHeapStatus; // A chaque tour, je perd environ 1 ko de mémoire
Edit5.Text:= IntToStr(Mem.TotalFree);
end; |
Partager