procedure TForm1.btn2Click(Sender: TObject);
var
  g: TGPGraphics;
  b: TGPBrush;
  font: TGPFont;begin
  img1.Transparent:=True;
  img1.Canvas.Brush.Color:=clBlack;
  g := TGPGraphics.Create(img1.Canvas.Handle);
  b := TGPSolidBrush.Create(aclRed);
  font := TGPFont.Create('Arial', 150);
  g.SetTextRenderingHint(TTextRenderingHint(4));
  g.DrawString('delphi', -1, font, MakePoint(0.0,0.0), b);
  font.Free;
  b.Free;
  g.Free;
  img1.Repaint;
end;为啥一片空白呀,如果换成窗口canvas 就可以绘制出来了  求高手告知

解决方案 »

  1.   

    这样:
    var
     g: TGPGraphics;
     b: TGPLinearGradientBrush;
     font: TGPFont;
     Rect: TGPRect;
    begin
        g:=TGPGraphics.Create(img1.Canvas.Handle);
        g.SmoothingMode:=smAntiAlias;
        Rect:=GPrect(Form.ClientRect);  
        b:=TGPLinearGradientBrush.Create(Rect,clBlack,clBlack,90);
        Font:=TGPFont.Create('Arial',Font.Size,[fsbold],utpoint); //Font.Size 是字体的大小.    g.DrawString('delphi', Font, brushs.black, MakePoint(0.0,0.0));
        g.free;
        b.free;
    end;