请问如何在StatusBar中显示图片 请问如何在StatusBar中显示图片,举例子,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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;beginwith 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. var Img: TImage; begin Img:=TImage.Create(Self) ; Img.Picture.LoadFromFile('c:\1.bmp'); Img.Left := 2; Img.Top := 6; Img.parent := StatusBar1; end; // 从delphi帮助里复制下来的:// 有一点需要注意,需要显示图象的panel的OwnerDraw属性必须设为True;procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);beginwith 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; TStatusBarEx=class(TStatusBar)public constructor Create(AOwner: TComponent); override;end;constructor TStatusBarEx.Create(AOwner: TComponent);begin inherited Create(AOwner); ControlStyle:= ControlStyle + [csAcceptsControls];end;//即可将TStatusBarEx作为容器使用 //将如下代码复制到你的窗体上看看~~//注意不要复制注释!~~嘿嘿~~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} endend 奇怪的问题 家花为何没有野花香? 这是为什么,是不是还需要什么步骤 不是问题!BORLAND有没有微软的股份? intraweb开发的程序怎么动态调用DLL 在用ADO连接数据库时,怎样才能在运行时不显示数据库登录提示框? 两个问题 请问,怎么确定A驱中是否有软盘 多线程与数据库问题。 delphi的简单问题 使用delphi7 调用 ASP.Net编写的一个webservices 急在线等待!谁有delphi5的补丁包的序列号和注册码?
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.
Img: TImage;
begin
Img:=TImage.Create(Self) ;
Img.Picture.LoadFromFile('c:\1.bmp');
Img.Left := 2;
Img.Top := 6;
Img.parent := StatusBar1;
end;
// 有一点需要注意,需要显示图象的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;
public
constructor Create(AOwner: TComponent); override;
end;constructor TStatusBarEx.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle:= ControlStyle + [csAcceptsControls];
end;//即可将TStatusBarEx作为容器使用
//注意不要复制注释!~~嘿嘿~~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