property 에 default 설정은 기본 값 설정으로 알고 있었다.
C++Builder 를 먼저 했으니 당연히 저렇게만 알고 있었는데...
Delphi 에는 조금 다른 이용이 가능하다.
TStrings = class(TPersistent)
public
property Strings[Index: Integer]: string read Get write Put; default;
end;
값 설정 없는 default 다.
저 경우
Str := TString.Create;
Str[0] := 'asdf';
와 같은 이용이 가능한 것이다.
C++ 에는 위의 방법이 안된다.
그런데... VCL 코드의 변환된 헤더를 살펴보니 연산자 중첩으로 해결해 놓은 것이다.
class DELPHICLASS TStrings;
class PASCALIMPLEMENTATION TStrings : public TPersistent
{
public:
AnsiString operator[](int Index) { return Strings[Index]; }
__property AnsiString Strings[int Index] = {read=Get, write=Put/*, default*/};
};
/*, default*/ 라는 눈속임의 주석...
어쨌든 코드의 동작은 똑같다.
C++Builder 를 먼저 했으니 당연히 저렇게만 알고 있었는데...
Delphi 에는 조금 다른 이용이 가능하다.
TStrings = class(TPersistent)
public
property Strings[Index: Integer]: string read Get write Put; default;
end;
값 설정 없는 default 다.
저 경우
Str := TString.Create;
Str[0] := 'asdf';
와 같은 이용이 가능한 것이다.
C++ 에는 위의 방법이 안된다.
그런데... VCL 코드의 변환된 헤더를 살펴보니 연산자 중첩으로 해결해 놓은 것이다.
class DELPHICLASS TStrings;
class PASCALIMPLEMENTATION TStrings : public TPersistent
{
public:
AnsiString operator[](int Index) { return Strings[Index]; }
__property AnsiString Strings[int Index] = {read=Get, write=Put/*, default*/};
};
/*, default*/ 라는 눈속임의 주석...
어쨌든 코드의 동작은 똑같다.
'Windows > RAD Studio' 카테고리의 다른 글
[RAD] SendMessage 의 Param 자료형 (0) | 2008.02.29 |
---|---|
[DEL] Parameter 에서 const, var 키워드 (0) | 2008.02.27 |
[DEL] TMessage.Msg 문자열 변환 (0) | 2008.02.26 |
[CB] MMTimer 를 이용한 수행시간 확인 (0) | 2008.02.26 |
[DEL, CB] Proxies (0) | 2008.02.13 |