動態存取其他元件上產生的物件問題 |
尚未結案
|
fj
一般會員 發表:20 回覆:12 積分:6 註冊:2004-11-23 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
fj 你好: Run Time Create....不再贅述. Run Time Copy Propties ( 含 Class / Method ), 參考看看:
uses TypInfo; procedure CopyProps(Source, Target: TObject); const ValidTypeKinds = [tkInteger, tkChar, tkWChar, tkClass, tkEnumeration, tkSet, tkFloat, tkMethod, tkString, tkLString, tkWString, tkVariant, tkInt64, tkDynArray]; var sPL, tPL : PPropList; i ,PCount : integer; begin if Source.ClassType <> Target.ClassType then raise Exception.Create('Different Class Type !'); PCount := GetPropList(Source, sPL); GetPropList(Target, tPL); for i := 0 to PCount-1 do if (sPL^[i].PropType^.Kind in ValidTypeKinds) and (Comparetext(sPL^[i].Name,'name')<>0) then begin case sPL^[i].PropType^.Kind of tkMethod: SetMethodProp(Target ,tPL^[i].Name, GetMethodProp(Source ,sPL^[i].Name)); tkClass: SetObjectProp(Target ,tPL^[i].Name, GetObjectProp(Source ,sPL^[i].Name)); else SetPropValue(Target, tPL^[i], GetPropValue(Source,sPL^[i])); end; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |