不知这样行吗?用rtti.,
uses typinfo.
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
propinfopropinfo;
begin
for i:=0 to componentcount-1 do
begin
propinfo:=getpropinfo(components.classinfo,'caption');
if propinfo<>nil then
listbox1.Items.Add(components.ClassName);
end;
end;
这分我要定了.
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
propinfopropinfo;
begin
for i:=0 to componentcount-1 do
begin
propinfo:=getpropinfo(components.classinfo,'caption');
if propinfo<>nil then
setordprop(components,propinfo,longint(pchar('abcd')));
end;
end;
>>想要同时将有Caption属性及Text属性的控件选出
一个控件,既有Caption属性又有Text属性?哪个控件?
不知下面的能满足你的要求吗?
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
propinfopropinfo;
begin
for i:=0 to componentcount-1 do
begin
propinfo:=getpropinfo(components.classinfo,'caption');
if propinfo<>nil then
begin
propinfo:=getpropinfo(components.classinfo,'text');
if propinfo<>nil then
listbox1.Items.Add(components.ClassName);
end;
end;
end;
高见不敢当,我还是新手呢。[]
这样应该可以了吗?
你可以改getpropinfo函数的最后一个参数,让它变为你要的属性。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
propinfopropinfo;
begin
for i:=0 to componentcount-1 do
begin
propinfo:=getpropinfo(components.classinfo,'caption');
if propinfo<>nil then
listbox1.Items.Add('有caption属性的控件:'+components.ClassName);
propinfo:=getpropinfo(components.classinfo,'text');
if propinfo<>nil then
listbox1.Items.Add('有Text属性的控件:'+components.ClassName);
end;
end;