请问如何在StatusBar中显示图片,举例子,谢谢!

解决方案 »

  1.   

    unit Main;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ImgList, ComCtrls;type
      TForm1 = class(TForm)
        StatusBar1: TStatusBar;
        ImageList1: TImageList;
        procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
          Panel: TStatusPanel; const Rect: TRect);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    var TempFont:TFontStyles;
    begin
    with StatusBar1.Canvas do
      begin
        Brush.Color := clWhite;
        FillRect(Rect);
        Font.Color := clBlack;
        ImageList1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,Panel.index);
        TempFont:=Font.Style;
        Case Panel.Index of
          0:Font.Style:=[fsBold];
          1:Font.style:=[fsItalic];
          2:Font.Style:=[fsUnderline];
         end;
        TextOut(Rect.left + 30, Rect.top + 2, 'Panel'
           + IntToStr(Panel.Index));
        Font.Style:=TempFont;
      end;
    end;
    end.
      

  2.   

    var    
       Img:  TImage;  
    begin  
       Img:=TImage.Create(Self)  ;  
       Img.Picture.LoadFromFile('c:\1.bmp');  
       Img.Left  :=  2;  
       Img.Top  :=  6;  
       Img.parent  :=  StatusBar1;  
    end;  
      

  3.   

    // 从delphi帮助里复制下来的:
    // 有一点需要注意,需要显示图象的panel的OwnerDraw属性必须设为True;
    procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    begin
    with StatusBar1.Canvas do
      begin
        Brush.Color := clRed;
        FillRect(Rect);
        Font.Color := clYellow;
        ImageList1.Draw(StatusBar1.Canvas ,Rect.Left, Rect.Top, Panel.Index);
        TextOut(Rect.left + 30, Rect.top + 2, 'Panel' + IntToStr(Panel.Index));
      end;
    end;
      

  4.   

    TStatusBarEx=class(TStatusBar)
    public
      constructor Create(AOwner: TComponent); override;
    end;constructor TStatusBarEx.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      ControlStyle:= ControlStyle + [csAcceptsControls];
    end;//即可将TStatusBarEx作为容器使用
      

  5.   

    //将如下代码复制到你的窗体上看看~~
    //注意不要复制注释!~~嘿嘿~~object StatusBar1: TStatusBar
      Left = 0
      Top = 434
      Width = 688
      Height = 19
      Panels = <
        item
          Width = 18
        end
        item
          Width = 50
        end>
      SimplePanel = False
      object Image1: TImage
        Left = 2
        Top = 3
        Width = 16
        Height = 16
        AutoSize = True
        Picture.Data = {
          07544269746D6170F6000000424DF60000000000000076000000280000001000
          000010000000010004000000000080000000120B0000120B0000100000000000
          0000000000000000800000800000008080008000000080008000808000007F7F
          7F00BFBFBF000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
          FF0099999999999999999FFFFFFF8888FFF997FFFFCCCC8888F9977FCCCCCCCC
          8889977CCCC3CCCCC889977CCCC3CCCCC88997CCCC33CCCCC38997CCCC333CCC
          C38997CCC333CCCCC38997CCC3CCCCCC3389977C33333CCC38F9977C33333C3C
          3FF99777C33C33C37FF9977777CCCC7777F99777777777777779999999999999
          9999}
      end
    end