文档详情

C++ Builder 6程序设计教程 教学课件 ppt 作者 陆卫忠 刘文亮 等第三章窗体与常用组件

w****i
实名认证
店铺
PPT
339.50KB
约73页
文档ID:94360801
C++ Builder 6程序设计教程 教学课件 ppt 作者 陆卫忠 刘文亮 等第三章窗体与常用组件_第1页
1/73

C++ Builder 6 程序设计教程,第三章 窗体与常用组件,3.1 组件应用基础,常用事件 事件驱动编程(Event -Driven Programming)就是指通过对事件做出反应来进行编程 (1) 用户事件:由用户的行动触发,如OnClick , OnKeyPress , OnDblClick 等 (2) 系统事件:由操作系统触发,如OnTimer ,OnCreate ,OnPaint 等OnClick事件,通常是按下鼠标左键时发生,以下情况也会发生: 当按钮或检查框具有焦点时,按下SPACE键 在活动窗体中存在Default属性为true的按钮且按回车键时 在活动窗体中存在Cancel属性为true的按钮且按ESC键时 当在列表框或组合框中通过按下箭头键选择一个项目时 当按下一个按钮或选择框的访问键时 当单选按钮的Checked属性被设为true时 当一个检查框的Checked属性的值被改变时 一个菜单项的Click方法被调用时,OnDblClick事件,通过鼠标的双击产生,主要应用于列表框、组合框、文件列表框等 通常双击操作只是一个辅助操作,它实际上相当于选择某个项目后再单击某个按钮。

因此在编写某个组件的OnDblClick事件代码时,一般只要显式调用某个命令按钮的OnClick事件过程即可 注意:如果一个组件既有 OnClick 事件代码,又有OnDblClick事件代码,则 OnDlbClick 事件将永远不会被触发 示例,OnKeyPress事件,用户按下键盘上任何一个可打印的字符时发生,只有能接收键盘输入的组件才有OnKeyPress事件 ,如编辑框和组合框 参数Key是用户的击键的ASCII码,若将它改为0则清除刚输入的字符 示例,OnKeyDown/OnKeyUp事件,按下某个键时,产生OnKeyDown事件;释放按键时,则产生OnKeyUp事件 void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,TShiftState Shift) 参数Key返回键盘的虚拟码可以使用虚拟码表示键盘上的非字母数字键的值;Shift参数提供事件发生时、 、和鼠标三个键的状态 执行顺序:OnKeyDown事件-OnKeyPress事件-OnKeyUp事件,,,,,OnMouseDown、OnMouseUp、OnMouseMove事件,按下(MouseDown)、释放(MouseUp)鼠标按键或在移动鼠标(MouseMove)时发生 发生在TEdit组件上的OnMouseDown、OnMouseUp和OnMouseMove事件过程框架 : void __fastcall TForm1::Edit1MouseDown(TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y) void __fastcall TForm1::Edit1MouseUp(TObject *Sender, TMouseButton Button,TShiftState Shift, int X, int Y) void __fastcall TForm1::Edit1MouseMove(TObject *Sender, TShiftState Shift,int X, int Y),,Button :返回一个枚举型,用来标识该事件的产生是按下(MouseDown)或者释放 (MouseUp)鼠标按键引起的。

值为mbLeft、mbRight、mbMiddle,分别表示左键、右键、中间键X、Y:返回一个指定鼠标指针当前位置的坐标 示例,OnDragDrop/OnDragOver事件,拖放(DragDrop)是Windows提供的一种快捷的操作方式在某对象上按住鼠标不放,将该对象移动的动作称为“拖动”(Drag)当对象拖动到目的对象上方,放开鼠标左键将对象放下的动作称为“放置”(Drop),拖动对象正越过另一个对象上方的过程称为“越过”(DragOver),,DragMode属性 :设置拖动模式,为dmAutomatic,则用户在组件上按下鼠标时拖动自动开始,如果为dmManual(默认),则将通过处理鼠标事件来判断一个拖动是否可以开始 OnDragOver事件在拖放操作正在进行时发生 在一个完整的拖放动作(即将一个组件拖动到一个对象上,并释放鼠标按键)完成时,OnDragDrop 事件发生,,如TEdit组件的DragDrop/DragOver事件过程为: void __fastcall TForm1::Edit1DragDrop(TObject *Sender, TObject *Source,int X, int Y) void __fastcall TForm1::Edit1DragOver(TObject *Sender, TObject *Source,int X, int Y, TDragState State, bool &Accept),,Source :指示正在被拖动的组件,可用此参数在事件过程中引用该组件的属性和方法。

X,Y:是目前鼠标指针的坐标 Accept:决定OnDragOver事件是否接受源组件的拖放结果 State:表示被拖动组件(源组件)在相关目标窗体或组件(目标组件)中拖动状态:dsDragEnter=进入,dsDragMove=越过,dsDragLeave=离开 示例:,Tab键顺序和焦点,利用键盘获得焦点也可以通过两种途径来实现:为组件设置访问键和利用Tab键 “Tab键”顺序:在按Tab键时,焦点在组件之间的转移顺序 TabOrder属性:Tab键顺序号,决定了组件在Tab键中的顺序 菜单TMainMenu、定时器TTimer 和标签TLabel组件没有TabOrder属性,3.2 单选钮和检查框,TRadioButton 和TCheckBox 单选钮中用户只能选择其中之一,而检查框可以单选也可以多选 Checked属性 : 单选钮只有两种状态:选中或未选中,如选中Checked值为true;如未选中则为false(默认为false) 检查框如Checked值为true,则表明已被选中,其另一属性State值为cbChecked;如Checked值为false,表明未被选中,此时有两种情况:未选取(Unchecked),其State值为cbUnchecked;失效(Grayed),其State值为cbGrayed 示例:,群组框和单选按钮组,TGroupBox :为一组相关联的组件提供一个分组 TRadioGroup :用于从多个选项中选择一个 示例:,3.3 列表框和组合框,列表框 TListBox: Items 属性:存放列表部分每一项内容的字符型数组,下标0~ItemCount-1 ItemIndex属性:返回程序运行时用户所选择的项目顺序号,其范围也在0~ItemCount-1 Count属性:返回列表部分项目的个数 Sorted属性:指定列表部分项目是否按字母表的顺序排列,true-排序,false-不排 MultiSelect属性:仅列表框有,指明运行时用户能否进行复选:false-禁止(默认),true-允许 Style属性:指明显示风格,,组合框TComboBox 与TListBox相比,没有MultiSelect属性,有Text属性,返回程序运行时 用户所选择项目的文本内容 Style属性 下拉组合框 (Style属性为csDropDown) 简单组合框 (Style属性为csSimple) 下拉列表框 (Style属性为csDropDownList),,组合框和列表框的区别: 1.组合框实际上可以看成是编辑框与列表框的组合 2.列表框可以选择一个项目也可以选择多个项目,而组合框通常只能选择或输入一个项目 示例,列表框与组合框的使用,项目的增加 1. 在设计时通过属性框中的Items属性输入有关项目,主要是用于赋初值 2. 使用AddItem方法或Items属性的Add方法,主要用于对项目的动态增加 void __fastcall AddItem(AnsiString Item, TObject AObject); 可使用Items属性的Add或Insert方法,,项目的删除(移除) virtual void _fastcall DeleteSelected(void); //删除选定项目 virtual void __fastcall MoveSelection(TCustomListControl* Destination); //移除选定项目到目标Destination中 void __fastcall Clear(void); //删除所有项目 可以使用Items属性的Delete、Move和Clear方法,,项目的访问 访问列表中的所有项目 :用Items属性来访问列表中的所有项目 ,用Index指定是第几项,从0开始 访问用户选定的项目 :用ItemIndex属性即可判断选定位置并返回内容 。

对列表框而言,如果没有选择则其ItemIndex的值为-1 ;对组合框中的简单组合框与下拉组合框来说,如果没有选择而是直接在其上的编辑框中输入新的项目,其ItemIndex的值为-1,,返回项目总数与项目内容 项目总数可通过Count属性获得 1.对列表框而言 ,可用Index和 ItemIndex获得项目内容 2.对于组合框,除了以上方法外,还可以通过Text属性(Text属性总是对应当前选定项目的内容 ),,复选项目的访问 列表框设置复选属性MultiSelect为true时,可以通过Selected属性判断一个项目是否被选中 示例,TCheckListBox组件,每一个项前都有一个复选框 用户可以选择列表的单个选项,还可以单击复选框转换它们的状态,适合于多项选择位于Additional组件页上 示例,3.4 其它常用组件,3.4.1 滚动条 :当不需要精确设置数值而只要一个大概的范围时(如调整亮度、设置处理某一事件所花的大致时间等),可以使用滚动条TScrollBar组件实现这一功能 滚动条常用属性:见下表 示例:,,,3.4.2 定时器,可视组件,能有规律地以一定的时间间隔激发定时器事件(OnTimer)而执行指定的程序代码 Interval属性:引发两次OnTimer事件的时间间隔,以毫秒为单位,其取值在0~65535之间。

取0表示不响应OnTimer事件,默认值为1000(1秒钟) Enabled属性:true表示定时器开始工作(默认状态),取false表示定时器停止工作 OnTimer事件:定时发生的事件过程代码 示例:,3.4.3 TTrackBar组件,带有滑尺的组件,用滑尺指示当前位置可以通过修改TTrackBar组件中的Position属性来改变它的位置用户也可以使用鼠标或者键盘方向键以及PgUp键和PgDn键使滑尺移动,每次移动的步长可以通过LineSize和PageSize属性进行设置,,,3.4.5 TUpDown组件,加减组件有一对上下箭头按钮,按动按钮可以使编辑框中的数值连续增加或减少编辑框中显示的数据就是TUpDown组件的Position属性,,,,OnChanging事件:用户正在单击上或下箭头时,将触发这个事件 OnChangingEx事件:该事件与OnChanging类似,但它传递了更多的信息 OnClick事件:当用户单击上或下箭头时,将触发这个事件 示例:,3.5 窗体,窗体也是一种对象,有自己的属性、事件与方法通过对窗体属性的设置可以控制窗体运行时的状态,通过编写特定的窗体事件过程代码可以对某些组件的属性或公用变量进行初始化或执行某种功能,而通过调用窗体的方法可以实现窗体的显示、隐藏、切换等,3.5.1 窗体的属性,,,,。

下载提示
相似文档
正为您匹配相似的精品文档