Я хочу (если это возможно), чтобы перечислить все строковые свойства в интерфейсе, который выглядит следующим образом:Как перечислить все свойства строки в интерфейсе?
IXMLDocumentSummaryType = interface(IXMLNode)
['{AD394EAD-1253-4CA5-9F0A-76122CB53D88}']
{ Property Accessors }
function Get_Uid: UnicodeString;
function Get_RsUid: UnicodeString;
//etc
{ Methods & Properties }
property Uid : UnicodeString read Get_Uid write Set_Uid;
property RsUid : UnicodeString read Get_RsUid write Set_RsUid;
property Meta : UnicodeString read Get_Meta write Set_Meta;
property Error : UnicodeString read Get_Error write Set_Error;
end;
Есть много свойств текста и я заинтересован в только 43. Таким образом, у меня есть имя тех, 43 в статическом массиве.
Fields: array[0..42] of RSummary= (
(Name: 'RsUid' ; Value: ''),
(Name: 'GbUid' ; Value: ''),
etc...
);
Теперь я хотел бы перечислить свойства и автоматически поместить значения этих свойств в массив. У меня есть Delphi XE7.
Я попытался это:
var
C: TRttiContext;
T: TRttiType;
F: TRttiField;
P: TRttiProperty;
begin
T:= C.GetType(IXMLDocumentSummaryType) <----- not working
Какая версия Delphi? В последних версиях есть разные возможности RTTI, чем старые, поэтому версия имеет значение. –
Delphi XE 7 (но ЕСЛИ возможно Delphi XE будет интересно также). – Ampere
Вы не можете получить информацию о таких интерфейсах через RTTI. Вам нужен экземпляр класса, который реализует интерфейс. –