Q&A

  • (질문) TreeView1CustomDrawItem에서 메모리 감소 왜일까요?


unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ComCtrls;



type

TForm1 = class(TForm)

TreeView1: TTreeView;

procedure TreeView1CustomDrawItem(Sender: TCustomTreeView;

Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}





// 아래를 실행하면 메모리감소가 이루어 집니다.

//

// 확인은

// [보조프로그램]-[시스템도구]-[시스템 정보]창을 띄어놓은 상태에서

// TreeView1의 아이템 선택을 여러번 바꾼 후 {시스템 정보]를 새롭게

// 디스플레이 시켜보면 현저한 메모리 감소가 있음을 확인할 수 있었습니다.

//

// 해결하는 방법을 알려 주시면 감사하겠습니다.

procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;

Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);

begin

with TreeView1.Canvas do begin

Font.Color := clBlack ; // 선택된 item의 폰트 컬러

if cdsSelected in State then

Brush.Color := clAqua ; // 선택된 item의 Brush Color

end;

end;



end.

8  COMMENTS