Здравствуйте.
Имеем код:
procedure TFormMain.fgPaintBox1Paint(Sender: TObject; const ACanvas: TfgCanvas);
var
aBm: TFgBitMap;
begin
try
aBm := TFgBitMap.Create;
aBm.Size := Tsize.Create(round(fgPaintBox1.Width),
round(fgPaintBox1.Height));
aBm.Canvas.FillColor(TAlphaColorRec.Gray);
aBm.Canvas.Stroke.Kind := TfgBrushKind.Solid;
aBm.Canvas.Stroke.Color := TAlphaColorRec.Red;
aBm.Canvas.Fill.Kind := TfgBrushKind.Solid;
aBm.Canvas.Fill.Color := TAlphaColorRec.Yellow;
aBm.Canvas.DrawCircle(aBm.Width / 2, aBm.Height / 2, aBm.Width / 2);
ACanvas.DrawBitmap(aBm, 0, 0);
finally
aBm.DisposeOf;
aBm := nil;
end;
end;
Скэйл устройства =2.
получили результат:
Два вопроса:
1. на PaintBox битмап выводится с размерами в 2 раза меньше. Насколько я понял это связано со скэйлом устройства, и что бы битмап отобразился на весь PaintBox на экране, нужно задавать физические размеры битмапа в 2 раза (для данного устройства) больше. Где можно узнать скэйл устройства, что бы задать размеры битмапа соответствующие выводу на PaintBox?
2. Не очень понятно, почему примитивы на битмапе рисуются со скэйлом устройства?