Рисование на канве.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Rastamanka, 9 Oct 2012.

  1. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    На форме лежит DrawGrid.
    Заполняю его картинкой
    [​IMG]

    С помощью функции
    Code:
    procedure set_pole(pole:string; DrawGrid: TDrawGrid);
    var
        BSource:Tbitmap;
        i,j:integer;
        Rect1:Trect;
    begin
      BSource:=TBitMap.Create;
      BSource.LoadFromFile('D:\field.bmp');
      for i:=0 to 6 do
       for j:=0 to 6 do
        begin
         application.ProcessMessages;
         Rect1:=Bounds(i*54,j*54,54,54);
         DrawGrid.Canvas.CopyRect(DrawGrid.CellRect(i, j), BSource.Canvas, Rect1);
        end;
      BSource.Free;
    
    end;
    
    Далее необходимо поверх самого крайнего левого квадрата нанести фигуру [​IMG] при этом поставив белый фон как прозрачный.

    Делаю это вот так
    Code:
      BSource := TBitmap.Create;
      BSource.LoadFromFile('D:\mask_gem_green.bmp');
      Rect1:=Bounds(0,0,54,54);
      DrawGrid.Canvas.CopyRect(DrawGrid.CellRect(0, 0), BSource.Canvas, Rect1);
    
    Фигура рисуется поверх первой картинки, но вот только фон так и остается белым.
     
  2. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    PHP:
    BSource := TBitmap.Create;
    BSource.Transparent:=true;
    BSource.LoadFromFile('D:\mask_gem_green.bmp');
    drawgrid1.Canvas.Draw(0,0,k);