怎么Delphi在图片上写文字,并且是透明背景

解决方案 »

  1.   

    非常简单,立竿见影
      image1.Canvas.Brush.Style:=bsclear;
      image1.Canvas.TextOut(1,1,'HELLO');
      

  2.   

    在窗体的CREATE事件中:
    procedure TForm1.FormCreate(Sender: TObject);
    var rgn:HRGN;
    begin
    Form1.Color:=clRed;
    BeginPath(Canvas.Handle);
    SetBKMode(Canvas.Handle,TRANSPARENT);
    Canvas.Font.Name:='宋体';
    Canvas.Font.Size:=100;
    Canvas.TextOut(150,130,'中国');
    EndPath(Canvas.Handle);
    rgn:=PathToRegion(Canvas.Handle);
    SetWindowRgn(Handle,rgn,true);
    end;
    若要移动就拦截消息。
    procedure TForm1.wmnchittest(var msg: twmnchittest);
    begin
    inherited;
    if (htclient=msg.result) then msg.result:=htcaption;
    end;