Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:11:11
Delphi带背景的工具栏实例

Delphi带背景的工具栏实例

实例说明

工具栏是窗体的组成部分之一,工具栏中的按钮可以设定完成一些较为常用或重要的功能,本例设计了一个工具栏,并为该工具栏做了一些修饰,即使工具栏带有背景。背景的图案可以透过按钮显示,效果如图1.7所示。



技术要点

工具栏中的背景是一副图片,在运行时应该将改图片绘制到工具栏上,当工具栏需要重绘时会触发OnAdvanced CustomDraw事件,利用该事件可以完成对工具栏的绘制。在程序启动时将一幅尺寸合适的图片载入程序,当触发OnAdvancedCustomDraw事件时将图片绘制在工具栏上。退出程序时将图片绘制在工具栏上。退出程序时释放图片资源。这样就可以完成工具栏背景的绘制。

实现过程

1.新建一个标准工程,创建一个新窗体,默认主窗体的Name属性为Form1。

2.在窗体中添加TToolBar、TMemo组件。命名TToolBar组件为TBRbmp,在TBRbmp中添加一个工具栏按钮。

3.设置TMemo组件的Align属性为alClient。

4.程序代码如下。

在单元中声明变量:

var

Form1: TForm1;

Bmp:TBitmap;

窗体建立时载入图片:

procedure TForm1.FormCreate(Sender: TObject);

begin

Bmp:=TBitmap.Create;

bmp.LoadFromFile('mingrisoft.com.bmp');

end;

释放图片资源:

procedure TForm1.FormDestroy(Sender: TObject);

begin

bmp.Free;

end;

将图片绘制到工具栏上:

procedure TForm1.TBRbmpAdvancedCustomDraw(Sender: TToolBar;

const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);

begin

Sender.Canvas.StretchDraw(arect,Bmp);

end;


procedure TForm1.FormResize(Sender: TObject);

begin

TBRbmp.Repaint;

end;




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759