1、Delphi标准控件Delphi标准控件-编辑框(Edit)下一节编辑框也是Windows程序中常用的组件,它主要用于输入单行文字。下面解释编辑框一些常用属性。属性说明PasswordChar这个属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。缺省时该属性为#0,即没有掩码。用户可以自己设置一个掩码,如*,则用户在编辑框中输入的字符都将以*字符显示,而隐藏真实的字符。AutoSize确定编辑框是否随字体变化而自动变动尺寸,缺省为TrueText该属性用于显示和保存编辑框中的字符串MaxLength确定编辑框最多可以输入的字符数,缺省时为0,表示可以输入任意多的字符ReadOnl
2、y确定程序运行时,用户是否可以改变编辑框中的内容。若为True,表示不可以编辑。AutoSelect确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中Edit常用的几个事件为:OnChange、OnKeyPress、OnEnter事件,下面对它们做简单的介绍:事件说明OnChange当编辑框中的内容发生变化时,触发该事件,它是Edit中最常用,也是最有用的事件之一OnKeyPress当按下一个按键时,触发该事件OnEnter编辑框获得输入焦点时,触发该事件上边介绍的三个编辑框事件非常有用,在Delphi编程中经常用到。使用这三个事件,可以实现一些很有用的功能:.使用OnEnter事件,可
3、以在编辑框获得输入焦点时,给出提示或触发其它事件。下面的实例在编辑框Edit1获得输入焦点时给出一个提示信息,并使将Button1失效。procedure TForm1.Edit1Enter(Sender: TObject);begin showmessage(请输入您的密码); Button1.Enabled:=False; end;2.使用OnKeyPress事件,可以限制在编辑框中输入的字符的种类。下面的例子限制了编辑框Edit1中只能输入数字,而不能输入其它的字符。若按下非数字按键,将发出蜂鸣声。procedure TForm1.Edit1KeyPress(Sender: TObjec
4、t; var Key: Char);begin if not(key in0.9,#8)then begin key:=#0; MessageBeep(-1); end; end;在上边的例程中,Key为按下的字符,使用not方法来判断输入的字符是否为数字(至)或者是删除键8(注意不要连删除键也屏蔽)。如果是非数字输入,使用语句“Key:=#0”将其屏蔽,#0为空,表示没有输入。3.使用OnChange事件,可以在编辑框中的内容发生某种变化时,触发其它事件,如使按钮生效或失效,让输入焦点转移到某个控件上。下面的例程在编辑框Edit1中的内容为123456时,使Button1生效,同时将输入焦点
5、转移到Button1上。procedure TForm1.Edit1Change(Sender: TObject);begin if Edit1.Text=123456 then begin button1.Enabled:=true; Form1.FocusControl(button1); end; end;下面我们将使用Edit控件的这些特性编写一个简单的“身份验证”程序,程序中使用了两个Label、两个Edit和两个BitBtn控件。其中Edit1、Edit2的MaxLength属性值都为,Edit2的PasswordChar为*;另外Edit1限制了输入,只接收数字。当用户在Edit
6、1中输入个数字后,输入焦点自动跳到Edit2中;当确认Edit和Edit中的学号和密码输入正确(学号为950755,密码为123456),Ok按钮被激活,并获得输入焦点。程序界面如下图所示:-Delphi标准控件-掩码编辑框(MaskEdit)下一节掩码编辑框(MaskEdit)是一种特殊的编辑框。使用它可以设计出许多复杂的输入 格式。在选用MaskEdit之后,需要为它设计一个输入格式。方法如下:首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框。对话框左上角的Input Mask编辑框用于输入掩
7、码格式。掩码格式可以分为三部分,每个部分之间用分号“;”分开,如“!90:90:90:;1;_ ”。下面解释各输入格式符的意义:1.输入格式的第一部分是掩码本身,也就是数据输入格式。在这一部分用一些特殊的格式符来表示应输入的字符类型及格式,如“!l0A9:Cll”这样一串输入格式掩码。常用的MaskEdit输入格式符有:格式符意义l和Ll表示该位置只可能是一个字母,可以用光标键跳过它,但是不能是其它类型的字符。L该位置必须是一个字符。a和Aa表示该位置只可能是一个字母或数字字符。A表示该位置必须是一个字母或数字字符。c和Cc表示该位置只可能是一个字母,C表示该位置必须有一个字母。9和09表示该
8、位置只可能是一个数字,0表示该位置必须有一个数字。 和格式字符或格式符。格式符则和LL/000000;1;_掩码的第二部分取为表示系统分隔符也将作为数据保存。第三部分的“_”表示在掩码编辑框中为空时,用“_”来表示空位。我们也可以用空格来标识空位。又如一个邮编如PO-100083,其中PO表示邮政,是每个邮政编码中都有的前缀,可以这样设计掩码格式:!PO/000000;1;_在掩码设计对话框的右侧是Sample Masks,这里有系统预设的常用的掩码格式,如电话号码(Phone)、日期(Date)等。我们可以选择一个,然后进行必要的调整。对话框左下部是一个Test Input栏,我们可以在这里
9、输入字符,以检测输入格式是否令人满意。 -Delphi标准控件-Memo组件下一节Edit和MaskEdit组件都只能编辑单行文本,Delphi的Memo组件提供了多行文本的编辑功能。下面解释Memo组件常用的属性。属性说明Lines这是Memo组件最常用,也是最有用的属性,它用来显示和保存Memo组件中的内容。Scrollbar很多组件都有这个属性。用于设定组件有否滚动条。它有四个值:SSNone表示既无水平滚动条,也无垂直滚动条;SSHorizontal表示只有水平滚动条;SSVertal表示只有垂直滚动条;SSBoth表示两者都有。当用户要显示的文本或其它的内容较多时,建议选用SSBot
10、h。WordWrap用于设定Momo组件是否具有自动折行功能。WantTabs这个属性只在Memo、RichEdit和DBMemo组件中使用。通常在切换当前焦点控件时,我们通常使用Tab键。但在上述三种组件中,编辑文本时常用Tab键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将WantTabs设置为True,这样子在组件内就可以使用Tab键来编辑文本。Memo组件常用的方法:. 使用剪贴板(Clipboard)我们可以使用CutToClipboard、CopyToClipboard和PastFromClipboar这三种方法,实现将Memo组件中被选择文本剪切或复制到剪贴板上,以及将剪切
11、板上的内容粘贴到Memo组件中。将Memo中的选中文本剪切到剪贴板的语句如下:if Memo1.SelLength0 then2. 文本的添加利用Lines属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到Memo中的最后一行:Memo1.Lines.Add(将文本添加到Memo中);3. 文件的保存和装载我们可以将Memo组件中的文本保存成文本文件,也可以将文本文件装载到Memo中。这须要配合使用SaveDialog组件和OpenDialog组件。将Memo中的文本保存为文件的语句为:If SaveDialog1.Execute then/打开保存对话框Memo1.Li
12、nes.SaveToFile(SaveDialog1.FileName);/保存为文件上边的语句先打开保存对话框,然后将Memo中的文本保存到一个文件中,文件名为我们在SaveDialog中输入的文本。在Memo中装载文本文件的语句为:if Opendialog1.Execute thenMemo1.Lines.LoadFile(Opendialog1.FileName);执行上边语句将打开Opendialog对话框,然后将选中的文本文件装载到Memo中。下面我们使用Memo组件的这些特性制作一个简单的文本编辑器,可以实现文本的拷贝复制,并可以进行文本的保存和装载。当然程序的功能还很简单,我们
13、还可以进一步扩展。这里是入门教程,所以不宜太复杂。程序的界面如下图所示:源代码如下:-Delphi标准控件-单选按钮组下一节单选按钮组(RadioBox)是单选按钮的组合。当我们需要对不同的单选按钮进行选择时,为了使不同组之间互不干涉,就需要使用单选按钮组。单选按钮组有两个重要得属性:Items和ItemIndex。在窗体上选中RadioBox组件在对象查看器上双击Items属性,将打开一个对话框,如下图所示:在该对话框的编辑窗口中输入各项标题,每项一行。ItemIndex属性用于表明单选按钮组中哪一项被选中了。若为(缺省值),表示没有被选中的项;若为0,表示第一项被选中;若为,表示第二项被选
14、中;其他依次类推。我们在前面编制的文本编辑器的基础上,使用单选按钮组代替单选按钮,并添加字体选择功能。程序用到两个RadioGroup组件,属性如下:属性RadioGroup1RadioGroup2Caption颜色字体Items红色;蓝色;绿色Aria;Symbol;宋体ItemIndex02由于RadioGroup1的IntemIdex为,则第一项为初始被选中的项,即“红色”被选中,所以程序在初始化时应将Memo1中的文本颜色设置为红色;同样,RadioGruop2的初始项为第三项“宋体”(ItemIndex为),也应在初始化时将Memo的文本字体设置为宋体。初始化语句放在Form1的On
15、Create事件中,即在创建窗体时对Memo组件进行初始设置。相应得程序如下: procedure TForm1.FormCreate(Sender: TObject); begin memo1.Lines.Text:=这里是RadioGroup组件示例; memo1.Font.Color:=clRed; /设定文本的初始颜色为红色 memo1.Font.Name:=宋体 /设定文本字体为宋体 end; 改变字体颜色的程序代码如下:procedure TForm1.RadioGroup1Click(Sender: TObject); begin if radiogroup1.ItemIndex
16、=0 then Memo1.Font.Color:=clRed else if radiogroup1.ItemIndex=1 then Memo1.Font.Color:=clBlue else Memo1.Font.Color:=clGreen; end; 改变字体的程序代码如下:procedure TForm1.RadioGroup2Click(Sender: TObject); begin if radiogroup2.ItemIndex=0 then Memo1.Font.Name:=Arial elseif radiogroup2.ItemIndex=1 then Memo1.fo
17、nt.name:=Symbol else Memo1.Font.Name:=宋体; end;程序界面如下图所示:完整的程序代码如下:-Delphi标准控件-单选按钮和复选框下一节单选按钮(RadioButton)和复选按框(CheckBox)都是很常用的组件,尤其是在对话框中。单选按钮(RadioButton)是一种具有排他性的选择组件,用户每一次只能选择其中的一个(在同一个容器组件中,如同一Form上或RadioBox中)。而复选框(CheckBox)则不同,可以同时选择多个。两种组件都有一个Checked属性,用于标识和检测是否被选中。我们使用这两个组件,给上一节(Memo组件介绍)的例程(简单编辑器)添加一些新的功能,使它可以选择字体颜色和字体的样式。程序的界面如下图所示:程序如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1