如何得到当前 Application 所有打开的窗体呢 ( 积分: 100 )

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得到当前 Application 所有打开的窗体呢

包括 ShowModal 的与 Show 的。
 
uses TypInfo;

var
PropInfo:PPropInfo;
m:Tcomponent;
str:string;
begin
m:=FormName.Components;
PropInfo:=GetPropInfo(m,'hint');
if PropInfo<> nil then
str:=GetStrProp(m,PropInfo)
end;
我是這樣做的,希望對你有用.
 
//设置相应属性值

procedure SetPropertyValue (AComponent: TComponent; sProperty, sValue: string);
var
PropInfo: PPropInfo;
AStrings: TStringList;
begin
if AComponent <> nil then
begin
PropInfo := GetPropInfo(AComponent, sProperty);
if PropInfo <> nil then
begin

case PropInfo.PropType^.Kind of

tkString, tkLString: //字符串属性

SetStrProp(AComponent, PropInfo, sValue);

tkInteger: //序数属性

SetOrdProp(AComponent, PropInfo, StrToInt(sValue));

else if PropInfo.PropType^.Name = 'TStrings' then //列表属性
begin
AStrings := TStringList.Create;
try
Split (sValue, '||', AStrings);
SetOrdProp (AComponent, PropInfo, Integer (AStrings));
finally
AStrings.Free;
end; // end try

end; // end if PropInfo.PropType^.Name = 'TStrings'

end; // end case

end; // end if PropInfo <> nil

end; // end if AComponent <> ni

end;

------------
我也找到了,多谢
 
再问一个问题,如何得到当前 Application 所有打开的窗体呢???
 
接受答案了.
 
后退
顶部