1 / 30

Keep on walking

Keep on walking. 《Delphi 程序设计 》 工学结合特色精品课程. —— 杨丽敬. Delphi 中的类 窗体 容器类组件 文本显示与编辑组件 按钮 选项按钮. 列表组件 组件的布局 Timer 组件. Chap3 可视化程序设计与基本组件. 组件与 TComponet 类. 组件的分类. 返回. 窗体(一). 窗体也是一个组件,也具有属性。 窗体的主要属性 name 、 caption :名称和标题 left 、 top :窗体的位置 height 、 width :窗体的高度和宽度

tehya
Download Presentation

Keep on walking

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Keep on walking 《Delphi程序设计》工学结合特色精品课程 ——杨丽敬

  2. Delphi中的类 窗体 容器类组件 文本显示与编辑组件 按钮 选项按钮 列表组件 组件的布局 Timer组件 Chap3 可视化程序设计与基本组件

  3. 组件与TComponet类

  4. 组件的分类 返回

  5. 窗体(一) • 窗体也是一个组件,也具有属性。 • 窗体的主要属性 name、caption:名称和标题 left、top:窗体的位置 height、width:窗体的高度和宽度 Color、font:窗体客户区的背景颜色与窗体的字体 visible、 enabled:窗体组件的可视性和有效性 windowsState:窗体运行时的初始状态 position、borderStyle:窗体运行时的位置和边框类型(详见参考书)

  6. 窗体(二) • 窗体的主要事件 OnCreate(分配资源设置窗体的标题、位置、是否最大化等初值)和OnDestroy(释放资源) OnActivate(窗体被激活)OnDeactivate (窗体失去焦点) OnCloseQuery(是否关闭窗体)和OnClose (枚举类型的参数action决定它关闭from的操作,多用于MDI的子窗体)值为: canone:form不关闭,无任何操作; cafree:释放form所占的内存; cahide:隐藏form; caminimize:最小化form 4.Onkeydown (在窗体上按下任意键触发)与onkeyup(释放时)

  7. OnCanResize和OnResize(组件改变大小时触发) OnShow和OnHide(组件隐藏时触发) • 小结: • 窗体事件有多种,常见的如上所述,其它可慢慢积累。 建立窗体的顺序:见2.3.1演示窗体创建和获得焦点事件例子 OnCreate Onshow OnActivate 其它事件 结论:每个组件激发的事件是有顺序性的。 返回

  8. 实验五、窗体练习 • 试验目的:进一步熟悉可视化编程的步骤 • 实验内容: 如何改变窗体上几个组件获得焦点的次序; 修改窗体的简单属性观察效果,例:窗体的图标(*.ico); 分别实验窗体上的五个事件(create\closequery\close\keydown\keypress); 嵌入窗口的创建; 创建启动画面。(两种方式)

  9. 消息框函数 • 1.格式1MessageDlg(‘提示信息串',消息框类型,按钮类型,0); 例:MessageDlg( '继续吗?', mtwarning, [mbyes,mbno], 0); ①信息串可以是任意字符。 ②消息框类型决定窗口的标题和图标,有5种MtWarning、mtError、mtinformation、mtconfirmation、mtcustom ③按钮类型有16种按钮类型要加方括号,且多个按钮用逗号隔开:如  [mbok,  mbcancel]。但以下类型不用加方括号: mbyesnocancel,  mbokcancel,  mbAbortRetryIgnor。 ④函数返回值为:所按的按钮文本字符前加 mr。 即:mryes,  mrno,  mrok,  mrcancel,  mrAbort,  mrRetry,  mrIgnore等。   2.格式2MessageDlgPos(‘提示信息串',消息框类型,按钮类型,0,  x,  y );x, y 表示信息框出现的位置,为屏幕像素值。如:MessageDlgpos( '继续吗?', mtwarning, [mbyes,mbno], 0,  200, 200 );

  10. MessageBox函数MessageBox函数是WindowsAPI函数,在DELPHI6中能够直接使用。1.格式1:MessageBox( hWnd,  Text,Caption,  style );如:messagebox(form1.handle ,' 退出本系统吗?','hello',mb_yesno+mb_iconquestion);注:handle是指句柄(1)Style参数通常由以下二部分组合:l  按钮类型常量MB_ABORTRETRYIGNORE  、 MB_OK  、 MB_OKCANCEL、MB_RETRYCANCEL、MB_YESNO、MB_YESNOCANCEL;   retry重试  abort 放弃 、取消、终止l  图标类型常量{icon}MB_ICONEXCLAMATION(或MB_ICONWARNING):显示感叹号MB_ICONINFORMATION(或 MB_ICONASTERISK):显示小写字母iMB_ICONQUESTION:  显示问号?MB_ICONSTOP(或MB_ICONERROR 或 MB_ICONHAND):显示错误标志X注:函数返回值(详见帮助)Value  数值  MeaningIDOK  1  OK button was selected.IDCANCEL  2  Cancel button was selected.IDABORT  3  Abort button was selected.IDRETRY  4  Retry button was selected.IDIGNORE  5  Ignore button was selected.IDYES  6  Yes button was selected.IDNO  7  No button was selected. • 格式2application.MessageBox( Text,Caption,  style );如:application.MessageBox('This is a sample!','HELLO',MB_OK+MB_ICONEXCLAMATION);

  11. 容器类组件 • GroupBox • 组框,一个带有标题的组件。 • Panel:以多种三维效果显现出来的矩形区域 返回

  12. 文本显示和编辑组件 • Label标签与Edit单行编辑框 • MaskEdit格式编辑框 • Memo、RichEdit与SpinEdit 返回

  13. 文本显示与编辑 • Label见3.2.1使用Label组件例子 • 只能显示文本,不能编辑。其主要属性有: Caption(标题)、autosize(自动调整大小)、alignment(文本水平对齐)、Layout(文本垂直对齐)、WordWrap(换行)、transparent(透明) • Edit:编辑单行文本见1.4.1转换大小写例子 主要属性:autoselect(获得焦点修改替换)、enabled(是否可用)、BorderStyle(边框风格)、passwordchar(以遮掩形式显示如* )、readonly(只读不能修改,但可以复制)、Text(显示内容的值)、TabOrder(焦点获取的顺序)、Charcase(大小写) 常用事件:onChange 此事件可区分modified属性是否变化 3.运行起来的属性 Seltext sellength等 如果把一个Lable组件的FocusControl 属性设置为同一个表单上的Edit组件, label中Caption包含有&字符,如&File, F下面有下花线。你一按ALT+F,焦点 就到label相应的Edit了。

  14. 可在keypress事件用以下语句获得焦点: • If key=#13 then edit1.setfocus; • 如果内容修改可在onexit事件中加入: • If edit1.modified then • Begin • Edit.selectall; Edit1.CopyToClipboard; • Edit2.PasteFromClipboard; • End; 返回

  15. *MaskEdit(additional页) • MaskEdit:定制编辑框的输入格式其主要属性有 EditMask:是用来控制用户输入数据格式的屏蔽字符串。 屏蔽分为三部分,用分号分隔,如“!99/99/00;1;_”。第一部分是屏蔽的主要部分,决定数据的格式;第二部分决定是否将屏蔽中的字符作为数据的一部分,它将影响Text属性中的值;第三部分指出屏蔽中用来代表未输入数据的字符。 Text、EditText • 当屏蔽字符串第二部分为0时,Text表示用户输入的字符串,EditText表示带格式的字符串。当屏蔽字符串第二部分为1时,Text和EditText属性的值是相同的,都是带格式的字符串(保留合法字符的选项)。 • 注意:EditText是运行时属性,在“ObjectInspector”中看不到。

  16. Memo、RichEdit与*SpinEdit • Memo:处理多行文本 • 主要属性:Lines(设置多行文字)、WantReturns(ctrl+Enter的不同)、WantTabs(ctrl+Tab的不同)、ScrollBars(水平或者垂直滚动条)见2.6.2记事本例子gettextlen 及lines的各种方法(同后面items) • Rich Edit:多行RTF(rich text format) 文本编辑框 主要属性:SelStart(第一个字符编号为0)、SelLength(长度)、DefAttributes(缺省)、SelAttributes(选定)、Paragraph 主要事件:OnSelectionChange *SpinEdit:渐变编辑框(sample页) 主要属性:Value、MaxValue、MinValue 主要事件:OnChange。 返回

  17. SelText:表示编辑控件文本的所选部分; SelStart:指定第一个被选字符的位置; SelLength:指定被选字符数。 而SelAttributes是一个TTextAttributes对象,包括字体名、颜色、大小、字形,利用它可以获得或设置当前选择文本的字体格式。要改变当前所选文本的单个属性,可以读取SelAttributes,并设置其中一个属性。要改变所有属性,可把SelAttributes设为具有要求配置格式的TTextAttributes对象。如果没有所选文本,SelAttributes就表示光标所在位置的格式。而如果再插入新的文本,它的字体格式将匹配SelAttributes。 缺省字符格式DefAttributes

  18. 实验六、界面组件练习一 • 试验目的:基本组件的练习 • 试验内容: 完成图3.10选择界面的效果 Combobox编辑框的新输入的值加入到下拉列表中,并使新值与原来的值不重复。 实训:设计只能输入18位身份证号的编辑框,并把输入的数字赋给自己定义变量id; 总结那些组件有items属性

  19. 按钮 • Button:一种有标签的灰色组件 主要属性:cancel、default都会以taborder的数为准 主要事件:OnClick • BitBtn:按钮表面可显示位图文件,按钮文本颜色也可改变,其主要属性有: Kind(常见按钮) Glyph(选用文字) Layout(图片与文字的布局) • SpeedButton:一种可成组工作的按钮,其主要属性有: Down(默认为false,并且groupindex要设置才生效 ) Flat GroupIndex(值为0表示不和其它组件协同工作) 见3.3.2按钮例子

  20. 选项按钮 • CheckBox • 复选框,是一个旁边带有文字说明的方框,有选中和未选中两种状态,其主要属性为Checked、allowgrayed、state • RadioButton • 单选按钮,一组互斥的选择,其主要属性为Checked。 • RadioGroup • 单选按钮组,一个GroupBox与一组RadioButton的组合,其主要属性有: • columns、items、itemindex见3.3.3单选框和复选框例子 返回

  21. Items属性 • Items属性的类型是Tstrings数组 • Items类常用的属性有: 增加项add 插入项insert 删除项delete 统计项数count 清除项clear

  22. 列表组件 • ListBox:列表框,一个内含若干选项的显示框。 主要属性:items、itemindex(用 • ListBox 1. items [ListBox 1. itemindex]表示选中项的字符串)、columns、multiSselect(是否允许多选)、Selected(是否被选中结果是布尔型的如: Selected [i]为true,表示第i-1个选项被选中)、sorted(指示 ListBox中的项是否按字母顺序排序。 )EXtendselect 主要方法:clear(清除所有选项) • ComboBox:组合框,是Edit和ListBox的结合体。 主要属性:dropdowncount、maxlength(仅对style的几种有效)、style、text(表示当前项的值) 主要方法:clear 注意与ListBox的区别 主要事件:与listbox类似,还有ondropdown • CheckListBox:是ListBox的一个扩展 • 主要属性:checked、state见example3-3 返回

  23. 组件的布局 • 布局工具 选择多个组件(按下shift再选择) 对齐组件工具Edit|size、align 调整组件大小 • Parent属性:父控件(包容器)见例窗体的嵌入 • Owner属性:指组件的所有者,他负责组件的组件的创建和释放。比如窗体上的组件的所有者就是窗体,而窗体的所有者是Application • Owner是拥有该控件的类,最后负责删除该控件 Parent该控件的父控件,该控件放在Parent控件上。 例如:一个Label的Owner一般是Form,但 Parent可能是一个Panel. • 共同点:运行阶段的属性,只能通过代码设置

  24. 实验七、界面组件练习二 实验目的: • 熟练掌握简单组件 实验内容: 参照project_xsda.dpr界面添加组件

  25. Delphi易混淆的几个概念 • Self和sender • sender 在事件处理程序中,至少包含一个参数sender,它代表触发事件处理程序的组件,有了该参数就可以使多个组件共用相同的事件处理程序。 • Self只能用于方法中,不能用于过程中。它所编程序范围是在哪一个类中。Delphi大多是在窗体范围内编程,self即指窗体,即代表“.”号前的组件名。 • Sender--意义:指本对象。Sender在什么对象相关代码里,那么Sender就是什么。Self--意义:指本类,也就是Self被引用的类。比如若在类TMyClass内引用了Self,那么Self=TMyClass.

  26. Splitter分隔条 主要属性:align、beveled(是否出现凹陷的直线)、MinSize(组件旁边组件的最小值) 主要事件 • OnCanResize:splitter组件被拖动而试图改变其他组件大小时触发 • OnMove:splitter被拖动且改变了相应组件的大小后触发见例3-4 • Bevel组件实现分隔 返回

  27. Timer定时器 • Timer定时器是一个非可视化组件,能够定时地触发OnTimer事件,完成模拟时钟、系统延时等工作。 • 主要属性 Enabled:当值为true时,打开定时器;否则关闭定时器。默认值为true。 Interval:控制OnTimer事件触发的时间间隔,单位是毫秒,类型是Integer。将Interval设置为0,相当于关闭定时器。默认值为1000(1秒)。 • OnTimer事件 • 当Timer打开时,每经过Interval属性指定的时间,Timer就会触发OnTimer事件,执行其中的程序。 • 见3.5计时器例子

  28. 对于组件的属性和方法也是需要在学习中慢慢积累的! • 希望大家能一周学习一个实例会收获不小奥! 返回

  29. 感谢聆听! Thanks for your time!

More Related