敬业的IT人 >> 编程开发 >> C++Builder >> C++Builder 编程指南2

C++Builder 编程指南2

敬业的IT人 互联网 佚名 2008-1-3 21:24:35

  三、常用控件的使用与编程

    静态文本是用户无法直接改变(不可编辑)的文本,程序可以在运行时刻来改变它,通常起标注和提示作用,它位于控件板的“Standard”页,其主要属性有:

    Align:指该控件在窗口中的位置或对齐方式(AlBottom:位于底部;AlClient:充满客户区;AlLeft:位于左方;AlNone:用户自定义;AlRight:位于右方;AlTop:位于顶部)。

    Alignment:显示文字在本控件中的位置(taCenter:居中;taLeftJustify:居左;taRightJustify:居右)。

    AutoSize:是否自动缩放(当设为true时,则控件的尺寸随控件里面文字的大小而改变)。

    Caption:控件中要显示的文字,即标题。

    Color:控件的颜色。

    Cursor:鼠标移入控件后的形状。

    Enabled:设置该控件是否有效。

    Font:设置该控件内文字的字体,单击该属性弹出字体设置对话框,可以设置字体风格、字体尺寸、字体颜色等。

    Name:控件名称。

    标准按钮主要用于响应用户鼠标或键盘按下的操作,它位于控件板的Standard页,其主要属性有:

    Cancel:当设为true时,此按钮相当于放弃按钮,即当用户按下Esc键时相当于用鼠标单击此按钮。

    Default:设置该按钮是否为缺省按钮。

    ModalResult:模式结果。(可选值有mrNone、mrOk、mrCancel、mrAbort、mrRetry、mrIgnore、mrYes、mrNo等)当设为非mrNone时,主要用于按下该按钮时关闭该按钮所属模式窗口。

    标准按钮控件可以响应的主要事件有:

    OnClick:鼠标单击或按下热键时的响应事件。

    OnEnter:当按钮获得输入焦点时的响应事件。

    OnExit:当按钮失去输入焦点时的响应事件。

    OnKeyDown:当键盘任意键按下时的响应事件。

    OnKeyPress:当键盘上字符键按下时的响应事件。

    OnKeyUp:放开键盘按键时的响应事件。

    OnMouseDown:鼠标键按下时的响应事件。

    OnMouseUp:鼠标键弹起时的响应事件。

    OnMouseMove:鼠标移动时的响应事件。

    单行编辑框控件用来接收来自用户的单行可编辑输入,它位于控件板的Standard页,其主要属性有:

    AutoSelect:自动选择。用来设置当该控件获得输入焦点时编辑框里的文本内容是否被自动选择。若用户想要在每次选中该编辑框时就要替换掉原有的内容,不是在原有的内容后添加新的内容,可把该属性设为true。

    CharCase:控制编辑框内字符的大小写。(可选值有ecLowerCase:全为小写;ecNormal:正常方式,大小写均可;ecUpperCase:全为大写。)

    MaxLength:设置输入文本的最大长度。当为0时表示不受限制。

    ReadOnly:当该属性设为true时,用户不能改变编辑框里面的文本。

    Text:当程序运行时显示在编辑框里面的文本内容。

    状态条控件一般放在应用程序界面底部,用于快速提示当前状态或提供简单帮助等功能,它位于控件板的Win32页上,其主要属性有:

    Panel:面板属性,用来设置状态条的风格。用鼠标单击该属

所示(状态条被分成三个小面板)。利用该编辑器和对象观察器就可以把状态条编辑成合适的样子。

    SimplePanel:简单面板。用来决定是显示一个简单面板还是多个面板,设为true时,只显示一个简单面板。

    SimpleText:当SimplePanel设为true时,显示在简单面板里的文本。

    下面以一实例介绍控件的用法。该程序可以实时地在状态条中显示当前鼠标位置,也可以在编辑框中直接输入鼠标的坐标值,用来改变鼠标在屏幕中的位置。

    (1) 从控件板的“Standard”页拖动两个静态文本控件“Label1”和“Label2”、两个单行编辑框“Edit1”和“Edit2”、一个按钮控件“Button1”到窗体“Form1”上,设置“Label1”和“Label2”的“Caption”属性值分别为“鼠标X坐标值:”和“鼠标Y坐标值:”;设置“Edit1”和“Edit2”的“Text”属性都为“0”;设置“Button1”的“Caption”属性为“退出”。根据自己的喜好安排好各控件在窗体中的布局。选择菜单“File|Save As”,另存程序文件“Unit1.cpp”为“xyp.cpp”;选择“File|Save Project As”,另存工程文件为“xy.bpr”。

    (2) 从控件板的“Win32”页拖动一个状态条控件“StatusBar1”到窗体“Form1”的底部(自动),点击其“Panels”属性,所示的三个小面板,其中一个放提示信息,另外两个分别存放鼠标的X和Y坐标值。

    (3) 利用对象观察器设置“Form1”的“OnMouseMove”(鼠标在窗体上移动时触发该消息)消息响应函数为“MouseMove()”,单行编辑框“Edit1”和“Edit2”的“OnChange”消息响应函数同为“EditChange()”,标准按钮“Button1”的“OnClick”消息响应函数为“ExitButton()”。

    (4) 转入代码编辑器,在“xyp.cpp”中键入如下程序代码:

    void __fastcall TForm1::MouseMove(TObject *Sender, TShiftState Shift,int X, int Y)

    {

    //该程序段用于在状态条中的第二个小面板(Item[1])中显示鼠标的X坐标值,第三个小

    //面板(Item[2])中显示鼠标的Y坐标值。IntToStr()函数用于把整型坐标值转换为字符型。

    StatusBar1->Panels->Items[1]->Text = IntToStr(X);

    StatusBar1->Panels->Items[2]->Text = IntToStr(Y);

    void __fastcall TForm1::ExitButton(TObject *Sender)

    {Close();//关闭应用程序}

    void __fastcall TForm1::EditChange(TObject *Sender)

    {

    //调用API函数SetCursorPos()(C++Builder中可以直接调用)设置鼠标位置,ToInt()//用于把字符型的值转换为整型值。读者要留意这种C++ Builder中所特有的转换方法。

    SetCursorPos(Edit1->Text.ToInt(),Edit2->Text.ToInt())

;

    }

    位图按钮控件位于Additional页,它提供了同标准按钮一样的功能,但它能在按钮上贴上一幅位图,其主要属性有:

    Glyph:浮雕,单击该属性会弹出一个“Picture Editor”对图(510cb17.Jpg )

所示。

    Hint:当鼠标停留在该控件上一段时间后所弹出的一小段提示信息。

    Layout:用于决定位图贴在按钮的哪个位置。(blGlyphBottom:位于按钮标题的下方;blGlyphLeft:位于按钮标题的左方;blGlyphRight:位于按钮标题的右方;blGlyphTop:位于按钮标题的上方。)

    快速按钮(SpeedButton)是一种新型的按钮控件,它具有一般按钮的属性和方法,另外除了可以在按钮上添加文字标题外,还可以在按钮表面设定不同图像(这点有别于位图按钮,它只能设定一幅图像),用于代表不同的按钮状态(如选中、无效等)。一般把若干个快速按钮都集中在一个工具条(ToolBar)或面板(Panel)上,使用户可以快速地执行一些常用命令。其主要属性有:

    AllowAllUp:全部弹起。当该属性设为true时,属于同一组(通过设置GroupIndex属性为相同值)的快捷按钮可以同时处于弹起状态,即所有按钮均未被选中。

    Down:按钮是否处于按下状态。

    Glyph:点击该属性弹出“Picture Editor”对话框,用于装入一幅位图,然后把该位图分成四幅小位图,每幅小位图代表不同的按钮状态。这就要求“Glyph”属性设定的位图必须包含四幅相同大小尺寸的小位图,并且这些小位图必须紧密相连且
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com