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.