我用的是delphi2007,在xp系统下写的程序,在xp系统下运行正常。但拿到win2000或者win2003下label的透明属性就没用了,因为我的背景是张图片,如果不透明的话就很难看了。请问一下要怎么解决这个问题呢?有没有什么办法让label在2000或者2003下也是透明的呢?

解决方案 »

  1.   

    将label1.Transparent设置为True。如果不行的话,你就画吧,用form1.Canvas.TextOut();方法,不过要事先设置画笔笔刷透明。
      

  2.   

    关于用Canvas.TextOut的方法你自己在网上搜吧,必定你才给20分。如果分多点的话,或者就有人抢着帮你着代码了。
      

  3.   

    接分。var
      BMP: TBitmap;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if BMP=nil then BMP := TBitmap.Create;
      BMP.LoadFromFile('c:\test.bmp');////BMP!
      Image1.Picture.Bitmap := BMP;
      Image1.Canvas.Brush.Style := bsClear;
      Image1.Canvas.TextOut(50, 50, '楼主,你好,我接分');
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      if BMP<>nil then BMP.Free;
    end;
      

  4.   

    改一下:var
      BMP: TBitmap;procedure TForm1.Button1Click(Sender: TObject);
    var
      DC: HDC;
    begin
      if BMP=nil then BMP := TBitmap.Create;
      BMP.LoadFromFile('c:\test.bmp');
      Image1.Picture.Bitmap := BMP;
      DC := Image1.Canvas.Handle;
      SetBkMode(DC, TransParent);
      SetTextColor(DC, clRed);
      TextOut(DC, 50, 50, '你好,楼主,把分给我,哈哈', 26);
      ReleaseDC(0, DC);
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      if BMP<>nil then BMP.Free;
    end;