6
Delphi Attributes에는 상수 매개 변수가 필요합니까? 그렇다면 왜?
program AttributesTestProgram;
{$APPTYPE CONSOLE}
uses
SysUtils,
Classes,
RTTI;
type
TDisplayTextAttribute = class(TCustomAttribute)
private
FDisplayText: string;
public
constructor Create(aDisplayText: string);
property DisplayText: string read FDisplayText write FDisplayText;
end;
constructor TDisplayTextAttribute.Create(aDisplayText: string);
begin
FDisplayText := aDisplayText;
end;
function GetFirstName: string;
begin
Result := 'First Name';
end;
type
TCustomer = Class(TObject)
private
FFirstName: string;
FLastName: string;
FStreetAddress: string;
FZIP: string;
FState: string;
FCity: string;
FPhone: string;
published
[TDisplayTextAttribute(GetFirstName)]
property FirstName: string read FFirstName write FFirstName;
end;
begin
// Code that does the work removed for clarity....
Readln;
end.
당연히 왜 이것이 오류와 함께 컴파일되지 않는지 궁금합니다.
[DCC Error] AttributesTestProgram.dpr(40): E2026 Constant expression expected
나는 그것이 그 속성과 관련이 있다고 가정합니다. 컴파일러 시간에 바운드되어야한다.
따라서 내 질문은 다음과 같습니다.
"시스템을 손상"하는 방법이 있습니까?이 속성의 해당 지점에 런타임 값이 있습니까?
감사합니다. Mason. 나는 그걸 가지고 놀 것이다. –
그리고 속성 선언에서이 새 메서드를 어떻게 호출합니까? –
@Nick : ... 다른 객체에서 메서드를 호출하는 것과 같은 방법입니까? (귀하의 질문을 이해할 수 있는지 확실하지 않습니다.) –