![]() |
|
|
Регистрация | << Правила форума >> | 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 |
#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; |