在窗体form中有n个checkbox控件的时候我可通过下边的代码实现对它的状态的判断!
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
i:integer;
begin
for i:=0 to form1.ComponentCount-1 do
begin
if (form1.Components[i] is Tcheckbox) then
begin
if Tcheckbox(form1.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end;
end;
edit1.Text:=str;end;
但是在panel中却不能实现了!
代码如下:
procedure Tfrmsetuser.getusermanu;
var
i:integer;
str:string;
begin
for i:=0 to p8.ComponentCount-1 do
begin
if (p8.Components[i] is Tcheckbox) then
if Tcheckbox(p8.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end; end;
什么原因?难道只有form才能?不会的!待解决!学习ing!
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
i:integer;
begin
for i:=0 to form1.ComponentCount-1 do
begin
if (form1.Components[i] is Tcheckbox) then
begin
if Tcheckbox(form1.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end;
end;
edit1.Text:=str;end;
但是在panel中却不能实现了!
代码如下:
procedure Tfrmsetuser.getusermanu;
var
i:integer;
str:string;
begin
for i:=0 to p8.ComponentCount-1 do
begin
if (p8.Components[i] is Tcheckbox) then
if Tcheckbox(p8.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end; end;
什么原因?难道只有form才能?不会的!待解决!学习ing!
解决方案 »
- 求自动启动,相当缓慢的解决办法!
- DEPHI调用VC动态连接库出现的问题!!!
- 开发多窗口自定义浏览器(类似myie),如何实现和mfc一样的多窗口程序,delphi没有提供向导简单的生成一个完整的mfc多窗口框架,一般如何创
- 请教一个用Inno打包的问题
- 哪位有把fastreport2 的报表格式转换为 fastreport3的工具?请给我一份,急死了!!
- memo的内容怎样直接打印?
- 如何限制一个程序的带宽占用率?像快车的手动模式。
- ??????????????????????????????????????????????
- 诚恳高手帮忙!!!!谢谢!!!!!
- 请问个位大虾怎样在delphi里使用vb的activex控件,比如datagrid
- 那个地方有interbase和pardax的ado驱动下载啊?
- 关于Delphi的安装程序制作问题!!
var
str:string;
i:integer;
begin
for i:=0 to form1.ComponentCount-1 do
begin
if (form1.Components[i] is Tcheckbox)
and (.GetParentComponent.Name = p8.Name) then
begin
if Tcheckbox(form1.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end;
end;
edit1.Text:=str;
end;
var
str:string;
i:integer;
begin
for i:=0 to form1.ComponentCount-1 do
begin
if (form1.Components[i] is Tcheckbox)
and (form1.Components[i].GetParentComponent.Name = p8.Name) then
begin
if Tcheckbox(form1.Components[i]).Checked then
str:=str+'y'
else
str:=str+'n';
end;
end;
edit1.Text:=str;
end;
继续ing
怎么不行?
当然可以了
你可以用controls啊,为何一定要用componet呢?
给大家一个过程
procedure test(pn:TWincontrol);
var
i:integer
begin
.ControlCount-1 do
begin
if uppercase(pn.Controls[i].ClassName)='TEDIT' then
TEdit(pn.Controls[i]).Text :='';
if uppercase(pn.Controls[i].ClassName)='TCHECKBOX' then
TCheckBox(pn.Controls[i]).Checked :=false;
if uppercase(pn.Controls[i].ClassName)='TPANEL' then
ClearDisplay(TPanel(pn.Controls[i]));
if uppercase(pn.Controls[i].ClassName)='TMEMO' then
TMemo(pn.Controls[i]).Lines.Clear;
if uppercase(pn.Controls[i].ClassName)='TFRAMEPANEL' then
begin
TFramePanel(pn.Controls[i]).clearDisplay;
TFramePanel(pn.Controls[i]).Enabled :=false;
end;
end;
end;
这样吧
procedure TfrmTryRun.ClearDisplay(pn: TPanel);
var
i:integer;
begin
for i:=0 to pn.ControlCount-1 do
begin
if uppercase(pn.Controls[i].ClassName)='TEDIT' then
TEdit(pn.Controls[i]).Text :='';
if uppercase(pn.Controls[i].ClassName)='TCHECKBOX' then
TCheckBox(pn.Controls[i]).Checked :=false;
if uppercase(pn.Controls[i].ClassName)='TPANEL' then
ClearDisplay(TPanel(pn.Controls[i]));
if uppercase(pn.Controls[i].ClassName)='TMEMO' then
TMemo(pn.Controls[i]).Lines.Clear;
end;