如题

解决方案 »

  1.   

    试试这样:
    procedure TForm1.ToolBar1CustomDraw(Sender: TToolBar; const ARect: TRect;
      var DefaultDraw: Boolean);
    begin
      Sender.Canvas.Brush.Color := clRed; //这里两行改成画图片就行了
      Sender.Canvas.FillRect(ARect); 
      DefaultDraw := True;
    end;或者用CoolBar+ToolBar,CoolBar支持背景
      

  2.   

    CustomDraw的方法中,ToolBar的Flat需要设置为True,不过我想你应该是设置成True了
      

  3.   

    复xtao:
    可否再详细点,关于如何将图片放入canvas的代码,不胜感激
      

  4.   

    procedure TForm1.ToolBar1CustomDraw(Sender: TToolBar; const ARect: TRect; var DefaultDraw: Boolean);
    var
      Bitmap: TBitmap;
      I, J, W, H, BW, BH: Integer;
    begin
      Bitmap := TBitmap.Create;
      try
        Bitmap.LoadFromFile('C:\WINNT\Coffee Bean.bmp');
        BW := Bitmap.Width;
        BH := Bitmap.Height;
        with ARect do
        begin
          W := (Right - Left) div BW;
          H := (Bottom - Top) div BH;
        end;
        for J := 0 to H do
          for I := 0 to W do
            Sender.Canvas.Draw(I * BW, J * BH, Bitmap);
      finally
        Bitmap.Free;
      end;
    end;
      

  5.   

    如果用一个范围较小的bitmap,去填充一个范围较大的Timage空间,也是用这种方法???我曾经简单的试过把image的picture属性设为某个bitmap,并将strech属性设为true,但显示结果失真。。