Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:11:11 Delphi带背景的工具栏实例
实例说明工具栏是窗体的组成部分之一,工具栏中的按钮可以设定完成一些较为常用或重要的功能,本例设计了一个工具栏,并为该工具栏做了一些修饰,即使工具栏带有背景。背景的图案可以透过按钮显示,效果如图1.7所示。技术要点工具栏中的背景是一副图片,在运行时应该将改图片绘制到工具栏上,当工具栏需要重绘时会触发OnAdvanced CustomDraw事件,利用该事件可以完成对工具栏的绘制。在程序启动时将一幅尺寸合适的图片载入程序,当触发OnAdvancedCustomDraw事件时将图片绘制在工具栏上。退出程序时将图片绘制在工具栏上。退出程序时释放图片资源。这样就可以完成工具栏背景的绘制。实现过程1.新建一个标准工程,创建一个新窗体,默认主窗体的Name属性为Form1。2.在窗体中添加TToolBar、TMemo组件。命名TToolBar组件为TBRbmp,在TBRbmp中添加一个工具栏按钮。3.设置TMemo组件的Align属性为alClient。4.程序代码如下。在单元中声明变量:varForm1: TForm1;Bmp:TBitmap;窗体建立时载入图片:procedure TForm1.FormCreate(Sender: TObject);beginBmp:=TBitmap.Create;bmp.LoadFromFile('mingrisoft.com.bmp');end;释放图片资源:procedure TForm1.FormDestroy(Sender: TObject);beginbmp.Free;end;将图片绘制到工具栏上:procedure TForm1.TBRbmpAdvancedCustomDraw(Sender: TToolBar;const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);beginSender.Canvas.StretchDraw(arect,Bmp);end;
procedure TForm1.FormResize(Sender: TObject);beginTBRbmp.Repaint;end;
赞