Delphi标准控件-单选按钮组

单选按钮组(RadioBox)是单选按钮的组合。当我们需要对不同的单选按钮进行选择时,为了使不同组之间互不干涉,就需要使用单选按钮组。

单选按钮组有两个重要得属性:Items和ItemIndex。在窗体上选中RadioBox组件在对象查看器上双击Items属性,将打开一个对话框,如下图所示:

在该对话框的编辑窗口中输入各项标题,每项一行。

ItemIndex属性用于表明单选按钮组中哪一项被选中了。若为-1(缺省值),表示没有被选中的项;若为0,表示第一项被选中;若为1,表示第二项被选中;其他依次类推。

我们在前面编制的文本编辑器的基础上,使用单选按钮组代替单选按钮,并添加字体选择功能。程序用到两个RadioGroup组件,属性如下:

属性   RadioGroup1   RadioGroup2
Caption   颜色   字体
Items   红色;蓝色;绿色   Aria;Symbol;宋体
ItemIndex     0     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:='宋体' //设定文本字体为宋体
    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;

程序界面如下图所示:

完整的程序代码如下:

unit Unit1;
interface
uses
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;
RadioGroup2: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add('在末端添加文本');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Lines.Text:='这里是RadioGroup组件示例';
memo1.Font.Color:=clRed;
//设定文本的初始颜色为红色
memo1.Font.Name:='宋体'
//设定文本字体为宋体
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Memo1.SelLength>0 then
Memo1.CutToClipboard;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.SaveToFile(savedialog1.FileName);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if Opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.FileName);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Memo1.SelLength>0 then
Memo1.CopyToClipboard;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if Memo1.SelLength=0 then
Memo1.PasteFromClipboard;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
close;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=true then
Memo1.Font.Style:=Memo1.Font.Style+[fsBold]
else
Memo1.Font.Style:=Memo1.Font.Style-[fsBold];
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if checkbox2.Checked=true then
Memo1.Font.Style:=Memo1.Font.Style+[fsItalic]
else
Memo1.Font.Style:=Memo1.Font.Style-[fsItalic];
end;
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if checkbox3.Checked=true then
Memo1.Font.Style:=Memo1.Font.Style+[fsUnderline]
else
Memo1.Font.Style:=Memo1.Font.Style-[fsUnderline];
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;
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;
end.

时间: 2016-05-08

Delphi标准控件-单选按钮组的相关文章

Delphi标准控件-单选按钮和复选框

单选按钮(RadioButton)和复选按框(CheckBox)都是很常用的组件,尤其是在对话框中.单选按钮(RadioButton)是一种具有排他性的选择组件,用户每一次只能选择其中的一个(在同一个容器组件中,如同一Form上或RadioBox中).而复选框(CheckBox)则不同,可以同时选择多个. 两种组件都有一个Checked属性,用于标识和检测是否被选中.我们使用这两个组件,给上一节(Memo组件介绍)的例程(简单编辑器)添加一些新的功能,使它可以选择字体颜色和字体的样式. 程序的界

Delphi标准控件-按钮(Button)和位图按钮(BitBtn)

按钮(Button)是Windows应用程序界面中最常用.最简单的组件之一.除了按钮之外,Delphi还提供了一种位图按钮(BitBtn).这种按钮的不同之处在于按钮上可以显示位图.下面我们通过一个简单的例子来介绍这两种按钮. 在窗体Form1上放置两个普通按钮和两个位图按钮以及一个编辑框Edit,然后再添加一个窗体Form2,在其上放置一个标签和两个位图按钮.程序界面如下图所示: 按下表设置各按钮的属性:   Form1 Form2 属性 Button1 Button2 BitBtn1 Bit

Delphi标准控件-编辑框(Edit)

编辑框也是Windows程序中常用的组件,它主要用于输入单行文字.下面解释编辑框一些常用属性. Edit常用的几个事件为:OnChange.OnKeyPress.OnEnter事件,下面对它们做简单的介绍: 上边介绍的三个编辑框事件非常有用,在Delphi编程中经常用到.使用这三个事件,可以实现一些很有用的功能: 属性 说明 PasswordChar 这个属性在一些编辑框组件如TMaskEdit.TDBEdit中都有.缺省时该属性为#0,即没有掩码.用户可以自己设置一个掩码,如'*',则用户在编

Delphi标准控件-Memo组件

Edit和MaskEdit组件都只能编辑单行文本,Delphi的Memo组件提供了多行文本的编辑功能.下面解释Memo组件常用的属性. 属性 说明 Lines 这是Memo组件最常用,也是最有用的属性,它用来显示和保存Memo组件中的内容. Scrollbar 很多组件都有这个属性.用于设定组件有否滚动条.它有四个值:SSNone表示既无水平滚动条,也无垂直滚动条:SSHorizontal表示只有水平滚动条:SSVertal表示只有垂直滚动条:SSBoth表示两者都有.当用户要显示的文本或其它的

Delphi标准控件-掩码编辑框(MaskEdit)

掩码编辑框(MaskEdit)是一种特殊的编辑框.使用它可以设计出许多复杂的输入 格式.在选用MaskEdit之后,需要为它设计一个输入格式.方法如下: 首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框. 对话框左上角的Input Mask编辑框用于输入掩码格式.掩码格式可以分为三部分,每个部分之间用分号":"分开,如"!90:90:90:;1;_ ".下面解释各输入格

019_《Delphi第三方控件使用大全Ⅱ》

<Delphi第三方控件使用大全Ⅱ> Delphi 教程 系列书籍 (019) <Delphi第三方控件使用大全Ⅱ> 网友(邦)整理 EMail: [email protected] 下载地址: Pdf 附书源码 作者: 刘艺 主编 丛书名: 其他 出版社:中国水利水电出版社 ISBN:7508409523 上架时间:2002-1-30 出版日期:2002 年1月 页码:888 版次:1-1 内容简介 Delphi开放式的控件支持环境,使得成千上万的Delphi迷能够为Delphi编写

标准控件的使用技巧与自绘控件

在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 - 在功能和外观两方面.例如,我们假定您正在创建一个类似于计速表的控件.由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间需要的任意消息处理. (#add 两方面,公共控件库中没有类似的 完全重写;  只想调整公共控件功能,则可以部分修改) 另一方面,还包括一些您

delphi 用控件打开pdf文件无法读取pdf里的表单信息

问题描述 delphi 用控件打开pdf文件无法读取pdf里的表单信息 我用的delphi7 用的是破解版的foxit_ax_pro.ocx文件版本3.0.1.2506,用OpenFile打开一个包含表单的pdf文件,浏览正常,但用代码访问时出错(下面第二行,FNameMI存在): frm:=FoxitReaderSDK1.GetCurrentForm(); ShowMessage(frm.GetFieldByName('FNameMI').Value) ; 变成无法获取表单信息.另外单独打开该

qtp点击非标准控件(下拉框)之后,页面对象全部变成page。(第一次运行时,可以识别所有对象)

问题描述 qtp点击非标准控件(下拉框)之后,页面对象全部变成page.(第一次运行时,可以识别所有对象) 页面有两个输入框,还有两个非标准的下拉框(type不是weblist而是自定义的pullbigtree),qtp识别不了下拉框,但是下拉框支持输入,因此我自己增加了对象库text,通过页面源代码找到下拉框的name,然后qtp运行时,第一次是可以输入的,但是输入后下拉框控件会调用后台执行查询,此时,所有的页面对象都探测不到(聚焦不到),只能探测到最外面的page