标题:单选题的实现 radiogroup 怎么用啊!!
只看楼主
zhansong333
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-4
 问题点数:0 回复次数:9 
单选题的实现 radiogroup 怎么用啊!!
在一个界面上放三个radiogroup框,第一个显示试题库中第一个题目 的内容,
第二个显示试题库中第二个题目的内容;
第三个显示试题库中第三个题目的内容;
单击下一页后:
第一个radiogroup框显示第四个题目的内容
第二个~~~~~~~~~~~~~~~~~五~~~~~~~``~~
第三个~~~~~~~~~~~~~~~~~六~~~~~~~~~~~;
依次类推:
该怎么实现啊 ;各位高手帮忙!!!!!
radiogroup 可以用数组的方式表示吗?比如:radiogroup[i] ?

str:=table1.fieldbyname('选项A');
edit1.text:='str';
radiogroup1.items.add('str');
得出的内容是: edit1中显示了 选项A的内容
radiogroup1 的第一个选项中显示的是str
哪里出问题了啊 ? 高手门 帮猛
搜索更多相关主题的帖子: radiogroup 选题 
2006-04-04 12:36
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
得分:0 

delphi中没有象vb中那样提供数组控件.但并不是没有办法实现.

Procedure TForm1.Button1(Sender:TObject);
var
Index:Integer;
Begin

for Index:=0 to ControlCount-1 do
Begin

if Components[Index] is TRadioguoup then
begin
(Components[Index] As TRadioguoup).items.add('122');
end
end;
//注意什么时候该加单引号.
str:=tabel1.fieldbyname('选项A').Asstring; //选项A是table1中的字段名
edit1.text:=str;
radiogroup1.items.add(str);

[此贴子已经被作者于2006-4-5 2:02:08编辑过]


心中的那片蓝天,永远为你而存在... ...
2006-04-05 02:00
zhansong333
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-4
得分:0 
非常感谢!!
2006-04-05 10:20
wqwy111
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
请问:1、“for Index:=0 to ControlCount-1 do ”中“ControlCount-1”是什么意思?
2、“Components[Index] is TRadioguoup ”是什么意思?
3、“Components[Index] As TRadioguoup”是什么意思?
4、“(Components[Index] As TRadioguoup).items.add('122');”怎么理解?为什么add.('122')?
如果,高手们知道如何解答,请给本人发电邮:wqwy111@sina.com.cn.本人不胜感激。
2006-04-10 14:18
wqwy111
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
似乎没有将正确答案写完。请ysp_1984继续,让我们初学者也受益。
2006-04-10 14:44
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
得分:0 
ControlCount是form1.ControlCount的意思,代表窗体中控件的个数。由于数组的下表是从0开始的,ControlCount-1代表第ControlCount个控件。
"Components[Index] is TRadiogroup" 用于判断第Index个控件是不是TRadiogroup类的一个实例。如果是返回true.
"Components[Index] as TRadiogroup" 用于将第Index个控件转换成TRadiogroup类。如果类型兼容,即第Index个控件是TRadiogroup类的一个实例,转化成功返回true,反之返回false.
“为什么add.('122')?”是我随意设的。你可以Add(别的字符串)。

[此贴子已经被作者于2006-4-10 14:51:37编辑过]


心中的那片蓝天,永远为你而存在... ...
2006-04-10 14:51
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
得分:0 

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
RadioGroup3: TRadioGroup;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
count,n, a,b,c:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
index: integer;
begin
n:=1;
for Index:=0 to ControlCount-1 do
Begin

if Components[Index] is TRadiogroup then
begin
(Components[Index] As TRadiogroup).caption:='第'+inttostr(index)+'题';


end;

end;

end;

procedure TForm1.Button_nextClick(Sender: TObject);
var
index: integer;
begin
inc(n);
if n>9 then
begin
n:=9; //假设有30道题
exit;
end;
for Index:=0 to ControlCount-1 do
begin
if Components[Index] is TRadiogroup then
begin
(Components[Index] As TRadiogroup).caption:='第'+inttostr(index+3*n)+'题';
end;

end;
end;

procedure TForm1.Button_prevClick(Sender: TObject);
var
index: integer;
begin
dec(n);
if n<0 then
begin
N:=0;
exit;
end;
for Index:=0 to ControlCount-1 do
begin
if Components[Index] is TRadiogroup then
begin
(Components[Index] As TRadiogroup).caption:='第'+inttostr(index+3*n)+'题';
end;

end;
end;

end.

我这里没有题库,只能作到这里了。

[此贴子已经被作者于2006-4-10 16:26:25编辑过]


心中的那片蓝天,永远为你而存在... ...
2006-04-10 16:25
ysp_1984
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:371
专家分:0
注 册:2006-1-5
得分:0 

如果试题在数据库中的话,
procedure TForm1.Button1Click(Sender: TObject);
var
index: integer;
begin
inc(n);
if n>9 then
begin
n:=9; //假设有30道题
exit;
end;
for Index:=0 to ControlCount-1 do
begin
if Components[Index] is TRadiogroup then
with (Components[Index] As TRadiogroup) do
begin
with ADOquery1 do
begin
caption:=inttostr(index+3*n);
close;
sQl.Text:='select * from 题库 where 题号=:题号';
Parameters.ParamValues['题号']:=caption;
open;
items.add(ADOquery1.FieldByName('标题').Asstring);
items.Add(ADOquery1.FieldByName('选项1').Asstring);
items.Add(ADOquery1.FieldByName('选项2').Asstring);
items.Add(ADOquery1.FieldByName('选项3').Asstring);
items.Add(ADOquery1.FieldByName('选项4').Asstring);
close;
end;
end;

end;
end;
我没有测试过,不知行否?仅供参考。


心中的那片蓝天,永远为你而存在... ...
2006-04-10 16:37
zhansong333
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-4
得分:0 
高手真强   非常感谢    毕业设计好做多了
2006-04-11 20:46
zhansong333
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-4-4
得分:0 
测试不能通过啊
2006-04-21 20:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-54981-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069301 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved