用Delphi实现选单的自动隐藏功能
|
源代码网整理以下在Windows 9x操作系统中,都有选单自动隐藏功能,不仅可以扩大应用软件的可视范围,而且又不耽误开始选单的操作,特别是同时打开多个应用程序时,能进行方便地切换,不让别人知道你后台运行的程序。在这里,我为大家介绍一下用Delphi实现该项功能的方法。 源代码网整理以下首先,建立一个新的Project。然后,在form1中添加一个Panel控件,它的Align属性为alBottom,Visible属性为true,并记下top属性的值,这里为307。在form1中添加一个Image控件,它的Align属性为alClient。在Panel控件中添加三个Button控件。Button1的Caption属性为“开启自动隐藏”,Enabled属性为true;Button2的Caption属性为“关闭自动隐藏”,Enabled属性为false;Button3的Caption属性为“退出”,Enabled属性为false。 软件开发网 www.mscto.com 源代码网整理以下最后,要对各个控件的操作进行编程。在这里要设置一个Boolean类型的全局变量flag,初值为false。 源代码网整理以下完整程序如下: 源代码网整理以下unit test; 源代码网整理以下interface 软件开发网 www.mscto.com 源代码网整理以下uses 源代码网整理以下Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 源代码网整理以下StdCtrls, ExtCtrls; 源代码网整理以下type 源代码网整理以下TForm1 = class(TForm) 软件开发网 www.mscto.com 源代码网整理以下Image1: TImage; 源代码网整理以下Panel1: TPanel; 源代码网整理以下Button1: TButton; 源代码网整理以下Button2: TButton; 源代码网整理以下Button3: TButton; 源代码网整理以下procedure Button1Click(Sender: TObject); 源代码网整理以下procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, 源代码网整理以下Y: Integer); 源代码网整理以下procedure Button2Click(Sender: TObject); 源代码网整理以下procedure Button3Click(Sender: TObject); 软件开发网 www.mscto.com 源代码网整理以下procedure FormShow(Sender: TObject); 源代码网整理以下private 源代码网整理以下{ Private declarations } 源代码网整理以下public 源代码网整理以下{ Public declarations } 源代码网整理以下end; 软件开发网 www.mscto.com 源代码网整理以下var 源代码网整理以下Form1: TForm1; 源代码网整理以下flag:boolean=false; 源代码网整理以下{对开启/关闭自动隐藏选单进行标志} 源代码网整理以下implementation 源代码网整理以下{$R *.DFM} 源代码网整理以下procedure TForm1.FormShow(Sender: TObject); 源代码网整理以下begin 源代码网整理以下image1.Picture.LoadFromFile(′c:pwin98安装程序.bmp′); 源代码网整理以下{在Image控件中装载图片} 源代码网整理以下end; 源代码网整理以下procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, 源代码网整理以下Y: Integer); 源代码网整理以下begin 源代码网整理以下if flag then 源代码网整理以下if y〉307 then panel1.Visible:=true 源代码网整理以下{这里的307就是先前Panel中Top属性的值} 源代码网整理以下else panel1.Visible:=false; 源代码网整理以下end; 源代码网整理以下procedure TForm1.Button1Click(Sender: TObject); 源代码网整理以下begin 软件开发网 www.mscto.com 源代码网整理以下flag:=true; {开启自动隐藏选单} 源代码网整理以下button1.Enabled:=false; 软件开发网 www.mscto.com 源代码网整理以下button2.Enabled:=true; 源代码网整理以下end; 源代码网整理以下procedure TForm1.Button2Click(Sender: TObject); 源代码网整理以下begin 源代码网整理以下flag:=false;{关闭自动隐藏选单} 源代码网整理以下button1.Enabled:=true; 软件开发网 www.mscto.com 源代码网整理以下button2.Enabled:=false; 源代码网整理以下end; 源代码网整理以下procedure TForm1.Button3Click(Sender: TObject); 软件开发网 www.mscto.com
源代码网整理以下begin 源代码网整理以下close;{关闭程序} 源代码网整理以下end; 源代码网整理以下end. 源代码网整理以下运行程序,看一下该功能的表现。 软件开发网 www.mscto.com 源代码网整理以下单击“开启自动隐藏”按钮,则窗口下部的控制选单被隐藏。移动鼠标,当鼠标接近窗口的底部时,控制选单出现,鼠标移出某个范围后选单又自动消失。效果 源代码网整理以下单击“关闭自动隐藏”按钮,程序又恢复初始状态,鼠标的移动对选单没有。 软件开发网 www.mscto.com 源代码网整理以下该程序主要是对Image1MouseMove过程中鼠标x值的判断,实现选单的隐藏。同样的,如果应用程序的控制选单位于窗口的左边或右边时,对该过程的y值进行判断也能达到同样的功能。 源代码网整理以下以上是我对Delphi编程的一点经验,希望对大家有用。上述代码在Delphi 4.0+Win 98中运行通过。 源代码网推荐 源代码网供稿. |
