with tabSheet2 do begin for i:=0 to tabSheet2.ComponentCount-1 do begin if tabSheet2.Components[i].ClassType=Tedit then Tedit( tabSheet2.Components[i]).Clear; end; end;
这个写在a页(窗体a)里面,有b页(窗体b,窗口名为b),且已引用。 var i : integer; begin for i:=0 to b.ComponentCount-1 do begin if form2.Components[i].ClassType=Tedit then Tedit( b.Components[i]).Clear; end; 绝对可以的,已测试过!
这一句 if form2.Components[i].ClassType=Tedit then 也可改成 if form2.Components[i] is Tedit then
呵呵,上面的写错的一个小地方,因为我测试的时候用的是Form2 这个是绝对不会出错的^O^ var i : integer; begin for i:=0 to b.ComponentCount-1 do begin if b.Components[i] is Tedit then Tedit( b.Components[i]).Clear; end;
我用的这个rzedit的控件,我是这么写的 for I := 0 to lyybb.RzPanel3.ControlCount - 1 do begin if (lyybb.RzPanel3.Controls[I] is tRzEdit) then (lyybb.RzPanel3.Controls[I] as tRzEdit).Text := ''; end; 错误如下: [Error] main.pas(222): Undeclared identifier: 'tRzEdit'
begin
for i:=0 to tabSheet2.ComponentCount-1 do
begin
if tabSheet2.Components[i].ClassType=Tedit then
Tedit( tabSheet2.Components[i]).Clear;
end;
end;
楼上说的这个方法tabSheet2.Components[i].ClassType=Tedit//这个tedit不对,因为这个tedit在别的from里,在本身的这个form里没有edit
var
i : integer;
begin
for i:=0 to b.ComponentCount-1 do
begin
if form2.Components[i].ClassType=Tedit then
Tedit( b.Components[i]).Clear;
end;
绝对可以的,已测试过!
也可改成 if form2.Components[i] is Tedit then
这个是绝对不会出错的^O^
var
i : integer;
begin
for i:=0 to b.ComponentCount-1 do
begin
if b.Components[i] is Tedit then
Tedit( b.Components[i]).Clear;
end;
for I := 0 to lyybb.RzPanel3.ControlCount - 1 do
begin
if (lyybb.RzPanel3.Controls[I] is tRzEdit) then
(lyybb.RzPanel3.Controls[I] as tRzEdit).Text := '';
end;
错误如下:
[Error] main.pas(222): Undeclared identifier: 'tRzEdit'