如何使radiogroup里面的radiobutton在选中的状态下 点击取消选中??

genispan 2008-03-17 02:55:50
我试了下 radiogroup.itemindex:=-1
但好像不行啊 希望大家能给出个方法啊 谢谢大家了! 重分酬谢!
...全文
1675 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
genispan 2008-03-17
  • 打赏
  • 举报
回复
算了 等下去估计也没戏了 哎 ~~
genispan 2008-03-17
  • 打赏
  • 举报
回复

//我在Form中放了5組TRadioGroup,然後它們的Exit事件都定義為
//procedure TForm1.RadioGroup1Exit(Sender: TObject);
//當要取消的時候,只需要將該TRadioGroup的ItemIndex屬性設置為-1即可
var
gRadioGroup: TRadioGroup;

procedure TForm1.Button1Click(Sender: TObject);
begin
gRadioGroup.ItemIndex := -1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
gRadioGroup := TRadioGroup.Create(Self);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
gRadioGroup.Destroy;
end;

procedure TForm1.RadioGroup1Exit(Sender: TObject);
begin
if Sender is TRadioGroup then
gRadioGroup := TRadioGroup(Sender);
end;

看另外一个帖子上说这样可以 但我用了怎么就不行呢?
jxjjljf 2008-03-17
  • 打赏
  • 举报
回复
ding
wywry 2008-03-17
  • 打赏
  • 举报
回复
在RadioGroup中,

如果当前选中,再点中的话,就不会触发OnClick事件。
只有再点其他选项的时候,才会触发OnClick事件
yezhen208 2008-03-17
  • 打赏
  • 举报
回复
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.Tag = 0 then
begin
RadioGroup1.Tag := 1;
end
else
begin
RadioGroup1.Tag := 0;
RadioGroup1.ItemIndex :=-1;
end;
end;
这样可以,不过效果不是特别好,你再想想吧
xiaoyan_she 2008-03-17
  • 打赏
  • 举报
回复
RadioGroup只有一个RadioButton被选中,如果有多个RadioGroup那么就规定遍历的范围就可以啦..
genispan 2008-03-17
  • 打赏
  • 举报
回复
遍历那不是要取消全部选中的啊? 我要是只想取消当前的一个radiobutton的选中状态呢? 该怎么做呢?
genispan 2008-03-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hongqi162 的回复:]
你是在什么事件里控制某个radiogroup所有radio都不选中的呢?
[/Quote]

用按钮点击事件。。。。
genispan 2008-03-17
  • 打赏
  • 举报
回复
遍历GroupBox1中的子控件
procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
begin
ListBox1.Items.Clear;
ListBox1.Items.Add('开始遍历控件******');
for i:=1 to GroupBox1.ControlCount-1 do
begin
ListBox1.Items.Add(GroupBox1.Controls[i].Name);
if GroupBox1.Controls[i] is TDateTimePicker then
ListBox1.Items.Add('时间控件值:' + DateToStr(TDateTimePicker(GroupBox1.Controls[i]).Date));
if GroupBox1.Controls[i] is Tedit then
ListBox1.Items.Add('文本框值:'+Tedit(GroupBox1.Controls[i]).text);
end;
ListBox1.Items.Add('遍历控件结束******');
end;
找了点遍历的代码 我先去试验一下 可以的话 立马给分!
xiaoyan_she 2008-03-17
  • 打赏
  • 举报
回复
RadioButton本身的checked就是啦,False 未选,True 被选中
xiaoyan_she 2008-03-17
  • 打赏
  • 举报
回复
遍历RadioGroup里面的那些RadioButton,判断RadioButton是否被选种,如实Checked=True,就将这个RadioButton.checked:=False,然后退出循环...,结束
这样就可以啦
genispan 2008-03-17
  • 打赏
  • 举报
回复
也就是其他的radiobutton怎么使用同一个事件来实现判断自己是否被点击
genispan 2008-03-17
  • 打赏
  • 举报
回复
现在有很多radiobutton 事件怎么写呢? 能说明下吗? 谢谢了
hongqi162 2008-03-17
  • 打赏
  • 举报
回复
你是在什么事件里控制某个radiogroup所有radio都不选中的呢?
ydlchina 2008-03-17
  • 打赏
  • 举报
回复
放一个即可,让所有的radiobutton,当被点击时判读是否已经被选中,如果已被选中就选中那个隐藏的
genispan 2008-03-17
  • 打赏
  • 举报
回复
来人啊 帮帮忙啊
genispan 2008-03-17
  • 打赏
  • 举报
回复
但是有很多radiogroup 里面有很多radiobutton 那得放多少个啊?
hongqi162 2008-03-17
  • 打赏
  • 举报
回复
通常在使用radiogroup得时候每个group都有一个默认的radiobutton
hongqi162 2008-03-17
  • 打赏
  • 举报
回复
放一个隐藏的radiobutton然后让他选中,龌龊了点但是实现你的要求肯定没有问题


:)
genispan 2008-03-17
  • 打赏
  • 举报
回复
没有人吗? 我在线等啊 急!!

5,389

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧