上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
DELPHI语言编程基础(2)
作者:未知 申领版权
2010年12月12日 共有 1514 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    编辑型组件
    
    
    
    3.5.1 Edit 组件
    
    1. Edit 组件的常用属性
    
    文本框组件(Edit 组件)也是 Windows 程序中常用的组件,它主要用于输入单行文字。 表 3-7 给出了文本框组件的一些常用属性。
    
    表 3-7   Edit 组件的常用属性
    

    
属 性
    
说 明
    
 
    
    PasswordChar
    
这个属性在一些文本框类组件如 MaskEdit、DBEdit 中都有。默认时该属性为#0,即 没有掩码。用户可以自己设置一个掩码,如“*”,之后用户在文本框中输入的字符 都将以“*”字符显示,而隐藏真实的字符
    
AutoSize
    
确定文本框是否随字体变化而自动变动尺寸,默认为 True
    
Text
    
用于显示和保存文本框中的字符串
    
MaxLength
    
确定文本框最多可以输入的字符数,默认为 0,表示可以输入任意多的字符
    
ReadOnly
    
确定程序运行时,用户是否可以改变文本框中的内容。若为 True,表示不可以编辑
    
AutoSelect
    
确定当文本框获得输入焦点时,文本框中的文字是否自动被选中
    

 
    2. Edit 组件的常用事件
    
    Edit  组件常用的几个事件为 OnChange  事件、OnKeyPress  事件和 OnEnter  事件(见 表 3-8),下面对它们做简单的介绍。
    
    表 3-8   Edit 组件的常用事件
    

    
事 件
    
说 明
    
OnChange
    
当文本框中的内容发生变化时,触发该事件,它是最常用也是最有用的事件之一
    
OnKeyPress
    
当在文本框中按下一个按键时,触发该事件
    
OnEnter
    
当文本框获得输入焦点时,触发该事件
    

 
    使用 OnEnter 事件,可以在文本框获得输入焦点时,给出提示或触发其他事件。
    使用 OnKeyPress 事件,可以限制在文本框中输入的字符的种类。下面的例子限制了文 本框中只能输入数字,而不能输入其他的字符。若按下非数字按键,将发出蜂鸣声。
    
    Procedure TForml.Edit1keyPress(Sender:Tobject;var Key:Char); Begin
    If not (key in ['0'..'9',#8]) then
    Begin
    Key:=#0; MessageBeep(-1);
    End; End;
    在上边的例程中,Key 为按下的字符,使用集合运算符 in 来判断输入的字符是否为数 字(0~9)或者是删除键#8(注意不要连删除键也屏蔽)。如果输入的不是数字,则使用语句 “Key:#0”将其屏蔽,#0 为空,表示没有输入。
    使用 OnChange 事件,可以在文本框中的内容发生某种变化时,触发其他事件,如使 按钮生效或失效,让输入焦点转移到某个控件上。下面的例子在文本框 Edit1 中的内容为 “123456”时,使 Button1 生效,同时将输入焦点转移到 Button1 上。
    
    Procedure TForml.Edit1Change(Sender:Tobject); Begin
    
    If Edit1.Text='123456' then
    Begin Button1.Enabled:=True; Self.FoucusControl(Button1);
    End; End;
    
    3.5.2 MaskEdit 组件
    
    MaskEdit 组件(也称掩码编辑框)在【Additional】选项卡中,它是一种特殊的文本框, 它的主要属性是 EditMask。使用它可以设计许多复杂的输入格式。在选用 MaskEdit 之后, 需要为它设计一个输入格式。方法如下:
    首先在窗体上选中 MaskEdit,在对象查看器(Object  Inspector)中找到 MaskEdit 属性并 双击它,弹出【Input Mask Editor】对话框,如图 3.6 所示。
    
    
    
    图 3.6   【Input Mask Editor】对话框
    
    在【Input Mask Editor】对话框中选择想要的模式。如选择【Date】时,【Input Mask】 为“!90:90:90:;1;_”,在程序运行时在 MaskEdit 组件中将出现“_ -_ -_”的格式, 这样在输入数据时,只要输入数字而不必输入“-”,这就是掩码输入。
    对话框左上角的【Input Mask】文本框用于输入掩码格式。掩码格式可以分为 3 个部分, 每个部分之间用分号“:”分开,如“!90:90:90:;1;_”,下面解释各输入格式符的 意义。
    (1)  输入格式的第一部分是掩码本身,也就是数据输入格式。 在这一部分用一些特殊的格式符来表示应输入的字符类型及格式,如“!10A9:C>11<”。
    MaskEdit 常用输入格式符见表 3-9。
    
    表 3-9   MaskEdit 输入格式符
    

    
格 式 符
    
意 义
    
1 和 L
    
1 表示该位置只可能是一个字母,可以用光标键跳过它,L 表示该位置必须是一个字母
    
a  和 A
    
a 表示该位置只可能是一个字母或数字字符,A 表示该位置必须有一个字母或数字字符
    
c  和 C
    
c 表示该位置只可能是一个字母,C 表示该位置必须有一个字母
    
9  和 0
    
9 表示该位置只可能是一个数字,0 表示该位置必须有一个数字
    
 
    <  和 >
    
“<”格式符表示随后的字母均以小写的形式显示,直到遇到一个“>”格式字符或“<>” 格式符。“>”格式符则与“<”正好相反
    
<>
    
表示不做大小写转换,以输入时的形式为准
    

 
    (续)
    

    
格 式 符
    
意 义
    
 
    \
    
表示该格式符之后的那个掩码格式符将作为数据中的普通字符对待。如果想在数据中放进 一个掩码格式符,应该在这个格式符前放一个“\”符号。如“\A”
    
#
    
表示该位置可能是一个数字或正符号
    
 
    !
    
如有“!”表示数据前的空格将不被保存在数据中,没有“!”则数据后的空格不被保存。 “!”格式符只能放在掩码格式符的第一个字符处
    
;和/
    
标准的分隔符,可作为数据的一部分。其中“/”在显示时为“-”而非“/”
    

 
    (2)  在输入格式中的第二部分只有 0 和 1 两种选择。如为 1,则掩码中非用户输入数据
    和标准分隔符等其他各种字符会作为数据的一部分保存;为 0 则不保存。 (3)  输入格式的第三部分用于表示数据中的空位用哪个字符代替显示。 例如,要输入一个汽车牌号 CA-300019。该数据前两位为字母且大写,第三位为一个
    系统分隔符,后 6 位为数字。可以这样设计掩码格式:
    !>LL/000000;1;_
    其中,掩码的第二部分取为 1,表示系统分隔符“-”也将作为数据保存。第三部分的“_”
    表示在掩码编辑框中为空时,用“_”来表示空位。也可以用空格来标识空位。 又如一个邮编 PO-100083,其中 PO 表示邮政,是每个邮政编码中都有的前缀,可以这
    样设计掩码格式:
    
    !PO/000000;1;_
    
    注意:在掩码设计对话框的右侧是【Sample Masks】列表,其中有系统预设的常用的掩码格 式,如电话号码(Phone)、日期(Date)等。可以从中选择一个,然后进行必要的调整。 掩码设计对话框左下侧是一个【Test Input】栏,可以在其中输入字符,以检测输入 格式是否令人满意。
    
    3.5.3 Memo 组件
    
    Memo 组件是在 TMemo 类中定义的,与 TEdit 有着共同的祖先类 TCustomEdit。所以 Memo 组件与 Edit 组件有着很多共同的特性,不同的是,Edit 组件处理的是单行文本,而 Memo 处理的是多行文本。Memo 组件的常用属性见表 3-10。
    
    表 3-10 Memo 组件的常用属性
    

    
属 性
    
属 性 类 型
    
说 明
    
CaretPos
    
Tpoint
    
光标在 Memo 中的位置(行和列)
    
 
    Lines
    
 
    TStrings
    
是一个字符串数组,表示 Memo 中以行为单位的文本。是 Memo 中最 重要的属性
    
Modified
    
Boolean
    
确定文本是否被改动
    
ScrollBars
    
枚举型
    
决定 Memo 是否具有滚动条和滚动条的类型
    
WordWrap
    
Boolean
    
设置文本是否可以换行
    

 
    (续)
    

    
属 性
    
属 性 类 型
    
说 明
    
WantReturns
    
Boolean
    
设置 Memo 编辑时是否能插入回车符
    
WantTabs
    
Boolean
    
设置 Memo 编辑时是否能插入 Tab
    

 
    这里做几点说明:
    (1)  CaretPos 属性记录光标在 Memo 中的位置,如 Memo1.CaretPos.y 表示光标所在的 行号。
    (2) Lines 属性实际上就是代表 Memo 组件中的文本,如 Memo1.Lines[0]代表第一行, Memo1.Lines[5]代表第六行,以此类推……这就是 Memo  组件最重要的属性。在 Object Inspector(对象查看器)中单击 Lines 属性右边的按钮,就会进入【String List Editor】编辑 框,在其中可以直接输入多行文本。
    
    Memo.Lines.Add('增加一个新行。'); //在 Memo 最后一行添加一个新行的文本 Memo.Lines.Delete(5); //删除第六行 Memo.Lines.Insert(3,''); //在第四行插入一个新行的文本 Memo.Lines.Move(2,4); //将第三行移至第五行
    
    (3)  ScrollBars 属性的取值主要有以下几个常量:ssNone(无滚动条)、ssHorizontal(只有 水平滚动条)、ssVertical(只有垂直滚动条)和 ssBoth(同时具有水平和垂直滚动条)。如果没有 水平滚动条而文本长度又超过 Memo 组件所能显示的长度,则 Memo 组件自动将超出文本 折回到下一行显示。
    Memo 组件的主要方法是 Lines 属性的 Add 方法、Clear 方法、LoadFromFile 方法、
    SaveToFile 方法、Insert 方法、Delete 方法。
    
    3.5.4 RichEdit 组件
    
    RichEdit 组件在 Win32 标签页中。RichEdit 组件和 Memo 组件非常相似,但是 RichEdit 组件功能更强大,能够对文字进行格式化,如设置字体、颜色等,可以插入 OLE 文档,支 持鼠标拖放,还可以对文本进行搜索和打印。一般用 RichEdit 组件制作文本编辑器,但它 本身并没有提供完整的用户界面,如打开、保存、剪切、复制、搜索等操作,需要通过编 程配合其他组件完成。将 RichEdit 组件中的内容保存到文件或把文本文件内容载入组件中, 可使用 Lines 属性及 SaveToFile 和 LoadFromFile 方法完成。访问被选中的文本可以通过运 用 SelText、SelStart、SelLength 属性完成。读者可以使用 RichEdit 组件自己设计一个简单 的文本编辑器。
    【例 3.3】 按钮类组件与 Memo 组件的使用。
    1)  新建应用程序
    启动 Delphi,从【Fi1e】菜单中选取【New Application】命令,开始一个新的应用文件。 此时,应用程序将有一个默认的窗体“Form1”。
    2)  设置窗体属性
    把窗体的 Height 属性设置为 304,Width 属性设置为 300。
    3)  向窗体中添加组件
    向窗体中添加 1 个 GroupBox 组件:GroupBox1,3 个按钮组件:Button1、Button2、
    
    Button3,1 个 RadioGroup 组件:RadioGroup1,1 个 ColorDialog 组件:ColorDialog1,1 个
    FontDialog 组件:FontDialog1 和 1 个 Memo 组件:Memo1。
    4)  设置组件属性 窗体中的组件属性见表 3-11。
    表 3-11   组件属性
    

    
组 件
    
名 称
    
属 性
    
属  性  值
    
属 性
    
属  性  值
    
GroupBox
    
GroupBox1
    
Caption
    
改变文本
    
 
    
 
    
 
    
    Button
    
Button1
    
Caption
    
颜色…
    
 
    
 
    
Button2
    
Caption
    
字体…
    
 
    
 
    
Button3
    
Caption
    
内容
    
 
    
 
    
 
    
    RadioGroup
    
 
    
    RadioGroup1
    
 
    
    Caption
    
 
    
    对齐
    
 
    
    Items
    
左对齐 居中 右对齐
    
ColorDialog
    
ColorDialog1
    
 
    
 
    
 
    
 
    
FontDialog
    
FontDialog1
    
 
    
 
    
 
    
 
    
 
    
    
    
    Memo
    
 
    
    
    
    Memo1
    
 
    
    
    
    Lines
    
睡觉 大地公公睡觉,静悄悄。 月亮婆婆睡觉,眯眯笑。 老爷爷睡觉,胡子翘。 小娃娃睡觉,呼噜呼噜,像只大花猫
    

 
    添加组件并设置属性后窗体布局如图 3.7 所示。
    5)  编写事件响应代码
    编写 Button1、Button2、Button3、RadioGroup1 的 OnClick 事件的响应代码:
    procedure TForm1.Button1Click(Sender: TObject); //设置颜色
    begin
    with ColorDialog1 do begin Color:=Memo1.Color; if Execute then Memo1.Color:=Color; end;
    end;
    
    procedure TForm1.Button2Click(Sender: TObject); //设置字体
    begin
    with FontDialog1 do begin Font:=Memo1.Font;
    if Execute then Memo1.Font:=Font; end;
    end;
    
    procedure TForm1.Button3Click(Sender: TObject); //修正内容
    begin
    Memo1.Lines.Text:='布娃娃要睡觉' chr(13) chr(13) //chr(13)为回车符
    '布娃娃,' chr(13) '要睡觉。' chr(13)
    '小棉被,' chr(13) '盖盖好,' chr(13)
    '伸出脚丫' chr(13) '乘风凉,' chr(13)
    '阿嚏一声,' chr(13) '吓走小花猫。';
    end;
    
    procedure TForm1.RadioGroup1Click(Sender: TObject); //对齐设置
    begin
    case RadioGroup1.ItemIndex of
    0:Memo1.Alignment:=taLeftJustify;
    1:Memo1.Alignment:=taCenter;
    2:Memo1.Alignment:=taRightJustify;
    end;
    end;
    
    6)  保存程序 将单元文件保存为“Unit3_3.pas”,将项目文件保存为“Project3_3.dpr”。
    7)  编译运行程序 单击工具栏上的【Run】按钮即可运行程序。运行后:
    (1)  单击【颜色】按钮,在【颜色】对话框中选择黑色,文本背景色由白色变为黑色。
    (2)  单击【字体】按钮,在【字体】对话框中选择 10 号大小、白色,文本字符由 8 号 字变为 10 号字,由黑色变为白色。
    (3)  单击【内容】按钮,文本内容变为“布娃娃要睡觉”。
    (4)  单击【居中】单选按钮,文本排列由左对齐变为居中。其效果如图 3.8 所示。
    
    
    
    图 3.7   例 3.3 的界面 图 3.8   例 3.3 的运行效果

    

 

相关新闻

肢体语言塑造你自己
每一个程序员要遵守的一些优秀编程风格
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
《VB程序设计基础》选择题
设计模式之Iterator

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》