很多的软件为了拥有良好的对话,在工作过程中向用户提供一些动态信息,使用户随时随地了解当前状况。使用状态行是目前采用较多的手段之一。所谓状态行就是位于窗口下方,用于显示一些提示性文字的显示板,利用状态行可以向用户动态提示有关信息,如:当前打开的文件名称、文件大小;当前打开的数据库名称、数据库记录数等。 (1)在窗体中增加状态行,状态行设计分以下几个步骤: 在窗体中加入一个TPanel构件Panel1,其特性设置如下: *Align为alBottom,状态行总是位于窗体的下部。 *Caption为空。 *Alignment为taLeftJustify,显示文字为左对齐方式。 *Bevelinner为bvLowered;Borderwidth为〉1,产生具有粗线内外框且具有凹下效果的状态 行。 (2)显示系统状态 通过给Panel1的标题(Caption)赋值来更新状态行的显示。如想知道按钮构件(Button1)在键入后,系统打开的文件及其大小,可在Button1的OnClick事件输入如下内容: ProcedureTForm1.Button1Click(Sender:TObject); begin Panel1.Caption:=‘文件名:’+S1+‘文件大小:’+S2 end; 其中:S1和S2均是字符串,S1为文件名,S2为文件大小。 (3)显示各个构件的提示 Windows中有很多的软件使用飞行提示,即当鼠标指定到某部分时,状态行出现其提示;而当鼠标移走后,则该提示消失;Delphi工具同样可以完成上述功能,具体做法如下: type TForm1=class(TForm) Button1:TButton; Panel1:TPanel; Edit1:TEdit; procedureFormCreate(Sender:TObject); Private {Privatedeclarations} public procedureDisplayHint(Sender:TObject); end; var Form1:TForm1; implementation {$R*.FRM} procedureTForm1.DisplayHint(Sender:TObject); begin Panel1.Caption:=Application.Hint: end; procedureTForm1.FormCreate(Sender:TObject); begin Application.OnHint:=DisplayHint; end; 在程序中增加了上述内容后,只要Button1的Hint中有内容,当鼠标移动到Button1时,状态行出现Hint中的内容;而当鼠标移走后,状态行中Hint的内容消失。
巧用回车键 用过Foxpro的用户都知道,键入回车键,程序自动从一个输入框转入到下一个输入框。但Delphi工具采用的方式与Windows完全一样,必须键入Tab键,程序才从一个输入框转入到下一个输入框。这对于用惯了Foxpro的人来说,十分不方便。 Delphi工具提供两种命令按钮,按钮构件(TButton)和图示按钮(TBitbtn)。假设在窗体Form1中有两个输入框Edit1和Edit2,一个按钮构件(Button1)。键入Tab键,程序从输入框Edit1转入到下一个输入框Edit2。若想达到键入回车键,程序从输入框Edit1转入到下一个输入框Edit2,我们可以通过控制按钮构件的特性来达到上述要求。具体方法如下:
第一种方法 (1)首先将按钮构件Button1的Default特性设置为True,这样在程序执行期间若有回车键键入,则Button1的OnClick事件被执行,在Button1的OnClick事件中编写程序,就可以达到从Edit1输入框到Edit2输入框的目的。 (2)编写TForm1.Button1Click事件程序 procedureTForm1.Button1Click(Sender:TObject); begin ifEdit1.Focusedthen Edit2.SetFocus; end;
第二种方法 (1)与第一种方法(1)同样,将按钮构件Button1的Default特性设置为True。 (2)编写Edit2—Focused子程序 procedureTForm1.Edit2—Focused(Sender:TObject); begin Edit2.SetFocus; end; 同时在Unit1中填写:
public {Publicdeclarations} procedureEdit2—Focused; (3)编写TForm1.Edit1Enter事件 procedureTForm1.Edit1Enter(Senter:TObject); begin Button1.OnClick:=Edit2—Focused; end; 这样,当键入回车键后,Button1的OnClick事件被响应,同于Button1的OnClick事件被定义为子程序Edit2—Focused,所以最终执行的程序是子程序Edit2—Focused的内容,即:Edit2输入框成为焦点。
|