다음과 같은 수업이있는 경우 :
TServerSettings = class(TSettings)
strict private
FHTTPPort : Integer;
published
property HTTPPort : Integer read FHTTPPort write FHTTPPort default 80;
end;
RTTI를 사용하여 default
속성의 속성을 어떻게 얻을 수 HTTPPort
있습니까?
이렇게 :
{$APPTYPE CONSOLE}
uses
System.TypInfo;
type
TMyClass = class
strict private
FMyValue: Integer;
published
property MyValue: Integer read FMyValue default 42;
end;
var
obj: TMyClass;
PropInfo: PPropInfo;
begin
obj := TMyClass.Create;
PropInfo := GetPropInfo(obj, 'MyValue');
Writeln(PropInfo.Default);
end.
귀하의 질문에서와 마찬가지로 클래스가 중단되었습니다. 시스템은 인스턴스가 생성 될 때 속성을 기본값으로 자동 초기화하지 않습니다. 그렇게하려면이 클래스에 생성자를 추가해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다