Delphi의 RichEdit Demo소스를 분석하다가 궁금한 점이 있어서 질문을 올립니다.
소스중에 TTextAttributes 형을 Return하는 CurrText란 함수가 있는데
이 함수를 이용하는 부분 중에
CurrText.Name := DefFontData.Name;
이와 같이 사용하는 것이 소스에서 전반적으로 걸쳐서 나오고 있습니다.
일단 CurrText가 하나의 클래스 형에 대한 Object를 Return하니까 그 클새스의
Member에 해당하는 것에 값을 대입할 수는 있겠지요. 그런데 궁금한 것은
이렇게 CurrText가 호출될 때마다 TTextAttributes 형의 Object를 Return하니까
값을 대입하는 Object들은 각각 다를 것이라 생각되는 데요.
혹 Return되는 Object들은 명시적으로 Free해 주지 않으면 메모리 상에서
항상 같은 위치를 차지하고 있고 Application이 종료될 때까지 수명을 유지한다면
이해가 됩니다만... 고수님들의 의견을 부탁드립니다...
P.S. 수고스럽지만 답변을 굴비 달으실때 메일로도 보내 주시면 감사하겠습니다.
물론 제가 다시 이곳에 와서 검색은 하겠지만 보다 빨리 알고 싶어서요...^^;;
리치에디터 데모에서 CurrText는 리치에디터에 있는 현재셀의 문자들의 속성
(SelAttributes)이나 디폴트 문자들의 속성(DefAttributes)을 리턴합니다.
그러므로 CurrText로 얻은 TTextAttributes 형 객체는 절대 프리시키면 안됩니다.
CurrText.Name := DefFontData.Name;
위 말은 리턴된 값에 따라서 아래 둘중의 하나와 똑같은 의미를 가집니다.
Editor.SelAttributes.Name := DefFontData.Name;
Editor.DefAttributes.Name := DefFontData.Name;
// Editor은 데모에서 TRichEditor 객체입니다.
^^ 항상 즐코하세요.
심현규 wrote:
> Delphi의 RichEdit Demo소스를 분석하다가 궁금한 점이 있어서 질문을 올립니다.
>
> 소스중에 TTextAttributes 형을 Return하는 CurrText란 함수가 있는데
>
> 이 함수를 이용하는 부분 중에
>
> CurrText.Name := DefFontData.Name;
>
> 이와 같이 사용하는 것이 소스에서 전반적으로 걸쳐서 나오고 있습니다.
>
> 일단 CurrText가 하나의 클래스 형에 대한 Object를 Return하니까 그 클새스의
>
> Member에 해당하는 것에 값을 대입할 수는 있겠지요. 그런데 궁금한 것은
>
> 이렇게 CurrText가 호출될 때마다 TTextAttributes 형의 Object를 Return하니까
>
> 값을 대입하는 Object들은 각각 다를 것이라 생각되는 데요.
>
> 혹 Return되는 Object들은 명시적으로 Free해 주지 않으면 메모리 상에서
>
> 항상 같은 위치를 차지하고 있고 Application이 종료될 때까지 수명을 유지한다면
>
> 이해가 됩니다만... 고수님들의 의견을 부탁드립니다...
>
> P.S. 수고스럽지만 답변을 굴비 달으실때 메일로도 보내 주시면 감사하겠습니다.
>
> 물론 제가 다시 이곳에 와서 검색은 하겠지만 보다 빨리 알고 싶어서요...^^;;