关于类转换的问题(100分)

  • 主题发起人 主题发起人 Jhao
  • 开始时间 开始时间
J

Jhao

Unregistered / Unconfirmed
GUEST, unregistred user!
下面一段代码:
for I:=0 to form.ControlCount-1 do
begin
if form.Controls is TGroupBox then
.... {正常通过}
if form.Controls is TPageControl then
.... {不能编译,提示"incompabite type"}
end;
同样的,如果用 TPageControl(Controls).PageCount 在运行过程也会出现错误.不知道具体有什么问题, 请各位高手指教!
 
以下没有问题呀。D5下。
uses comctrls;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for I := 0 to ControlCount - 1 do
begin
if Controls is TGroupBox then
// .... {正常通过}
if Controls is TPageControl then
// .... {不能编译,提示"incompabite type"}
end;
end;
 
form.Componentcount
Components is tgroupbox

with (Components as tpagecontrol) do
controls.pagecount
 
if form.Components is TGroupBox then
 
下列代码正确运行!
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for I := 0 to ControlCount - 1 do
begin
if Controls is TPageControl then
ShowMessage(IntToStr(TPageControl(Controls).PageCount));
end;
end;
 
怪了,我重建一个工程,在FORM上放个按钮就可以.
我原来的问题不是在一个FORM上,而是我开了一个新的Unit,在里面写了一个函数:
procedure ReadControl(form: TForm);
begin
With form do
begin
for I:=0 to ControlCount-1 do
begin
if Controls is TGroupBox then
.... {正常通过}
if Controls is TPageControl then
.... {不能编译,提示"incompabite type"}
end;
end;
end;
只有这些不同了.
 
另外我用D6.
 
uses ComCtrls;

 
你的TPageControl 类注册过了吗?
 
后退
顶部