属性 说明 这个属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。缺省时该PasswordChar 属性为#0,即没有掩码。用户可以自己设置一个掩码,如„*‟,则用户在编辑框中输入的字符都将以„*‟字符显示,而隐藏真实的字符。 AutoSize Text MaxLength 确定编辑框是否随字体变化而自动变动尺寸,缺省为True 该属性用于显示和保存编辑框中的字符串 确定编辑框最多可以输入的字符数,缺省时为0,表示可以输入任意多的字符 确定程序运行时,用户是否可以改变编辑框中的内容。若为True,表示不可以编辑。 确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中 ReadOnly AutoSelect Edit常用的几个事件为:OnChange、OnKeyPress、OnEnter事件,下面对它们做简单的介绍:
事件 OnChange 说明 当编辑框中的内容发生变化时,触发该事件,它是Edit中最常用,也是最有用的事件之一 OnKeyPress 当按下一个按键时,触发该事件 OnEnter 编辑框获得输入焦点时,触发该事件 上边介绍的三个编辑框事件非常有用,在Delphi编程中经常用到。使用这三个事件,可以实现一些很有用的功能:
1.使用OnEnter事件,可以在编辑框获得输入焦点时,给出提示或触发其它事件。下面的实例在编辑框Edit1获得输入焦点时给出一个提示信息,并使将Button1失效。
procedure TForm1.Edit1Enter(Sender: TObject); begin
showmessage('请输入您的密码'); Button1.Enabled:=False; end;
2.使用OnKeyPress事件,可以在编辑框中输入的字符的种类。下面的例子了编辑框Edit1中只能输入数字,而不能输入其它的字符。若按下非数字按键,
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台 将发出蜂鸣声。 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin
if not(key in['0'..'9',#8])then begin key:=#0; MessageBeep(-1); end; end;
在上边的例程中,Key为按下的字符,使用not方法来判断输入的字符是否为数字(0至9)或者是删除键#8(注意不要连删除键也屏蔽)。如果是非数字输入,使用语句“Key:=#0”将其屏蔽,#0为空,表示没有输入。
3.使用OnChange事件,可以在编辑框中的内容发生某种变化时,触发其它事件,如使按钮生效或失效,让输入焦点转移到某个控件上。下面的例程在编辑框Edit1中的内容为„123456‟时,使Button1生效,同时将输入焦点转移到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属性值都为6,Edit2的PasswordChar为„*‟;另外Edit1了输入,只接收数字。 当用户在Edit1中输入6个数字后,输入焦点自动跳到Edit2中;当确认Edit1和Edit2中的学号和密码输入正确(学号为950755,密码为123456),Ok按钮被激活,并获得输入焦点。程序界面如下图所示:
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } 下一节--Delphi标准控件--掩码编辑框(MaskEdit) 掩码编辑框(MaskEdit)是一种特殊的编辑框。使用它可以设计出许多复杂的输入 格式。在选用MaskEdit之后,需要为它设计一个输入格式。方法如下: 首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框。
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台
对话框左上角的Input Mask编辑框用于输入掩码格式。掩码格式可以分为三部分,每个部分之间用分号“;”分开,如“!90:90:90:;1;_ ”。下面解释各输入格式符的意义:
1. 输入格式的第一部分是掩码本身,也就是数据输入格式。在这一部分用一些特殊的格式符来表示应输入的字符类型及格式,如“!l0A9:C>ll<”这样一串输入格式掩码。常用的MaskEdit输入格式符有:
格式符 l和L 意义 l表示该位置只可能是一个字母,可以用光标键跳过它,但是不能是其它类型的字符。L该位置必须是一个字符。 a表示该位置只可能是一个字母或数字字符。A表示该位置必须是一个字母或数字字符。 a和A c和C c表示该位置只可能是一个字母,C表示该位置必须有一个字母。 9和0 9表示该位置只可能是一个数字,0表示该位置必须有一个数字。 〈和〉 〈〉 \\ # ! ;和/ <格式符表示随后的字母均以小写的形式显示,直到遇到一个>格式字符或<>格式符。>格式符则和<正好相反。 表示不作大小写转换,以输入时的形式为准。 表示该格式符之后的那个掩码格式符将作为数据中的普通字符对待。当用户想在数据中放进一个掩码格式符时,应该在这个格式符前放一个\\符号。如\\A,\\\\等等。 表示该位置可能是一个数字或正符号。 如有!表示数据前的空格将不被保存在数据中,没有!则数据后的空格不被保存。!格式符只能放在掩码格式符的第一个字符处。 标准的分隔符,可作为数据的一部分。其中/在显示时为„-‟而非/。 2. 在输入格式中的第二部分只有0和1两种选择。如为1,则掩码中的非用
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台 户输入数据和标准分隔符等其它各种字符会作为数据的一部分保存;为0则不保存。 3. 输入格式的第三部分用于表示数据中的空位用那个字符代替显示。 在有了上述知识后,现在来设计一个例子。例如要输入一个汽车牌号如CA-300019 。该数据前两位为字母且为大写,第三位为一个系统分隔符号,后6位为数字。可以这样设计掩码格式:
!>LL/000000;1;_
掩码的第二部分取为1表示系统分隔符„-‟也将作为数据保存。第三部分的“_”表示在掩码编辑框中为空时,用“_”来表示空位。我们也可以用空格来标识空位。 又如一个邮编如PO-100083,其中PO表示邮政,是每个邮政编码中都有的前缀,可以这样设计掩码格式:
!PO/000000;1;_
在掩码设计对话框的右侧是Sample Masks,这里有系统预设的常用的掩码格式,如电话号码(Phone)、日期(Date)等。我们可以选择一个,然后进行必要的调整。对话框左下部是一个Test Input栏,我们可以在这里输入字符,以检测输入格式是否令人满意。
下一节--Delphi标准控件--Memo组件 Edit和MaskEdit组件都只能编辑单行文本,Delphi的Memo组件提供了多行
文本的编辑功能。下面解释Memo组件常用的属性。
属性 Lines 说明 这是Memo组件最常用,也是最有用的属性,它用来显示和保存Memo组件中的内容。 很多组件都有这个属性。用于设定组件有否滚动条。它有四个值:SSNone表 Scrollbar 示既无水平滚动条,也无垂直滚动条;SSHorizontal表示只有水平滚动条;SSVertal表示只有垂直滚动条;SSBoth表示两者都有。当用户要显示的文本或其它的内容较多时,建议选用SSBoth。 WordWrap 用于设定Momo组件是否具有自动折行功能。 这个属性只在Memo、RichEdit和DBMemo组件中使用。通常在切换当前焦 WantTabs 点控件时,我们通常使用Tab键。但在上述三种组件中,编辑文本时常用Tab键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将WantTabs设置为True,这样子在组件内就可以使用Tab键来编辑文本。 http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台 Memo组件常用的方法: 1. 使用剪贴板(Clipboard)
我们可以使用CutToClipboard、CopyToClipboard和PastFromClipboar这三种方法,实现将Memo组件中被选择文本剪切或复制到剪贴板上,以及将剪切板上的内容粘贴到Memo组件中。
将Memo中的选中文本剪切到剪贴板的语句如下: if Memo1.SelLength>0 then 2. 文本的添加
利用Lines属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到Memo中的最后一行:
Memo1.Lines.Add('将文本添加到Memo中‟);
3. 文件的保存和装载
我们可以将Memo组件中的文本保存成文本文件,也可以将文本文件装载到Memo中。这须要配合使用SaveDialog组件和OpenDialog组件。将Memo中的文本保存为文件的语句为:
If SaveDialog1.Execute then //打开保存对话框
Memo1.Lines.SaveToFile(SaveDialog1.FileName); //保存为文件
上边的语句先打开保存对话框,然后将Memo中的文本保存到一个文件中,文件名为我们在SaveDialog中输入的文本。 在Memo中装载文本文件的语句为:
if Opendialog1.Execute then
Memo1.Lines.LoadFile(Opendialog1.FileName);
执行上边语句将打开Opendialog对话框,然后将选中的文本文件装载到Memo中。 下面我们使用Memo组件的这些特性制作一个简单的文本编辑器,可以实现文本的拷贝复制,并可以进行文本的保存和装载。当然程序的功能还很简单,我们还可以进一步扩展。这里是入门教程,所以不宜太复杂。 程序的界面如下图所示:
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台
源代码如下:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, F StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); 下一节--Delphi标准控件--单选按钮组 单选按钮组(RadioBox)是单选按钮的组合。当我们需要对不同的单选按钮进行选择时,为了使不同组之间互不干涉,就需要使用单选按钮组。
单选按钮组有两个重要得属性:Items和ItemIndex。在窗体上选中RadioBox组件在对象查看器上双击Items属性,将打开一个对话框,如下图所示:
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台
在该对话框的编辑窗口中输入各项标题,每项一行。
ItemIndex属性用于表明单选按钮组中哪一项被选中了。若为-1(缺省值),表示没有被选中的项;若为0,表示第一项被选中;若为1,表示第二项被选中;其他依次类推。
我们在前面编制的文本编辑器的基础上,使用单选按钮组代替单选按钮,并添加字体选择功能。程序用到两个RadioGroup组件,属性如下:
属性 Caption Items ItemIndex RadioGroup1 颜色 红色;蓝色;绿色 0 RadioGroup2 字体 Aria;Symbol;宋体 2 由于RadioGroup1的IntemIdex为0,则第一项为初始被选中的项,即“红色”被选中,所以程序在初始化时应将Memo1中的文本颜色设置为红色;同样,RadioGruop2的初始项为第三项“宋体”(ItemIndex为2),也应在初始化时将Memo的文本字体设置为宋体。初始化语句放在Form1的OnCreate事件中,即在创建窗体时对Memo组件进行初始设置。相应得程序如下:
procedure TForm1.FormCreate(Sender: TObject); begin
memo1.Lines.Text:='这里是RadioGroup组件示例'; memo1.Font.Color:=clRed; //设定文本的初始颜色为红色 memo1.Font.Name:='宋体' //设定文本字体为宋体
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台 end; 改变字体颜色的程序代码如下:
procedure TForm1.RadioGroup1Click(Sender: TObject); begin
if radiogroup1.ItemIndex=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' else if radiogroup2.ItemIndex=1 then Memo1.font.name:='Symbol' else Memo1.Font.Name:='宋体'; end;
程序界面如下图所示:
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台 完整的程序代码如下: unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; RadioGroup1: TRadioGroup; 下一节
--Delphi标准控件--单选按钮和复选框
单选按钮(RadioButton)和复选按框(CheckBox)都是很常用的组件,尤其是在对话框中。单选按钮(RadioButton)是一种具有排他性的选择组件,用户每一次只能选择其中的一个(在同一个容器组件中,如同一Form上或RadioBox中)。而复选框(CheckBox)则不同,可以同时选择多个。
两种组件都有一个Checked属性,用于标识和检测是否被选中。我们使用这两个组件,给上一节(Memo组件介绍)的例程(简单编辑器)添加一些新的功能,使它可以选择字体颜色和字体的样式。 程序的界面如下图所示:
http://www.ygjj.com 家教网 找家教上阳光家教网 找家教,到阳光 阳光家教网 全国最大家教平台
程序如下:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; CheckBox1: TCheckBox;
http://www.ygjj.com 家教网 找家教上阳光家教网
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务