1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| procedure TAffCarte.PaintBoxPaint(Sender: TObject);
// Rafraichissement de l'affichage
var
CentreAff, BordAff: TPoint;
T1, T2: TDateTime;
begin
try
LBmp := TBGRABitmap.Create(DimCarte, DimCarte, BGRAWhite);
// LBmp.PutImage(Dec0.X-Depl.X, Dec0.Y-Depl.Y, bmpCarte, dmSet, 255); // Pas de rotation
LBmp.PutImageAngle(Dec0.X-Depl.X, Dec0.Y-Depl.Y, bmpCarte, tckbAngle.Position,
DemiCarte.X-(Dec0.X-Depl.X), DemiCarte.Y-(Dec0.Y-Depl.Y), $FF, DecalApresRot, False); // Déplacement et rotation
BGRAReplace(LBmp, LBmp.Resample(Round(DimCarte*kZoom), Round(DimCarte*kZoom), rmSimpleStretch));
// LBmp:= TBGRABitmap(SimpleStretch(LBmp, Round(DimCarte*kZoom), Round(DimCarte*kZoom)));
CentreAff.X:= Round(DemiCarte.X*kZoom);
CentreAff.Y:= Round(DemiCarte.Y*kZoom);
LBmp.DrawLine(CentreAff.X, 0, CentreAff.X, Round(DimCarte*kZoom), $FF, true, dmDrawWithTransparency);
LBmp.DrawLine(0, CentreAff.Y, Round(DimCarte*kZoom), CentreAff.Y, $FF, true, dmDrawWithTransparency);
HG.X:= Round((1-kZoom)*(DemiCarte.X))-128;
HG.Y:= Round((1-kZoom)*(DemiCarte.Y))-340;
LBmp.Draw(PaintBox.Canvas, HG.X, HG.Y, False); // Trace la carte avec ses déplacements, zoom et rotation
LBmp.Destroy;
except
LBmp.Destroy;
end;
Mem:= GetHeapStatus;
Edit5.Text:= IntToStr(Mem.TotalFree);
end; |
Partager