![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите, плз, как нарисовать на FMX.Canvas рисунок VCL.Bitmap?
Есть событие: Код:
GridDrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); |
|
#2
|
|||
|
|||
|
Copilot дает вот такой ответ:
Код:
var
VCLBitmap: Vcl.Graphics.TBitmap;
DestRect: TRectF;
begin
VCLBitmap := Vcl.Graphics.TBitmap.Create;
try
// Load or create your VCL Bitmap
VCLBitmap.LoadFromFile('example.bmp');
// Define the destination rectangle
DestRect := RectF(10, 10, 200, 200);
// Draw on FMX Canvas (e.g., inside a TPaintBox.OnPaint event)
DrawVCLBitmapOnFMXCanvas(VCLBitmap, Canvas, DestRect);
finally
VCLBitmap.Free;
end;
end;Еще вот тут посмотреть можно: https://stackoverflow.com/questions/...napi-functions |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Elijah (18.08.2025)
| ||
|
#3
|
|||
|
|||
|
Что за функция DrawVCLBitmapOnFMXCanvas? Где она находится?
|
|
#4
|
|||
|
|||
|
Цитата:
Код:
procedure DrawVCLBitmapOnFMXCanvas(VCLBitmap: Vcl.Graphics.TBitmap; FMXCanvas: TCanvas; const DestRect: TRectF);
var
FMXBitmap: FMX.Graphics.TBitmap;
BitmapData: TBitmapData;
x, y: Integer;
begin
// Create an FMX Bitmap
FMXBitmap := FMX.Graphics.TBitmap.Create(VCLBitmap.Width, VCLBitmap.Height);
try
// Lock the FMX Bitmap for writing
if FMXBitmap.Map(TMapAccess.Write, BitmapData) then
try
// Copy pixel data from VCL Bitmap to FMX Bitmap
for y := 0 to VCLBitmap.Height - 1 do
for x := 0 to VCLBitmap.Width - 1 do
BitmapData.SetPixel(x, y, VCLBitmap.Canvas.Pixels[x, y]);
finally
FMXBitmap.Unmap(BitmapData);
end;
// Draw the FMX Bitmap onto the FMX Canvas
FMXCanvas.DrawBitmap(FMXBitmap, RectF(0, 0, FMXBitmap.Width, FMXBitmap.Height), DestRect, 1.0);
finally
FMXBitmap.Free;
end;
end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Elijah (18.08.2025)
| ||
|
#5
|
|||
|
|||
|
Спасибо за помощь, вопрос решил. Написал собственный TGridBox.
|
|
#6
|
|||
|
|||
|
Правильный архив здесь (забыл ElLists).
|