TreeView의 OnGetImageIndex 이벤트에서 처리를 하면 됩니다..
아래 제가 사용하고 있는 예제를 같이 올리니 참고하세요..
레벨별로 아이콘을 다르게 하는 방법도 응용하면 쉽게 되리라 봅니다..
아래 코드의 내용은 일단 해당노드가 열려있는지 판단해서
열려 있으면 펼쳐진 책 아이콘으로 (2번 이미지), 아니면
닫혀진 책 아이콘 (1번 이미지)
그리고 최하위 노드이면 책 그림이 아닌 노트그림으로 (3번 이미지)
그리고 최상위 노드이면 책묶음 그림으로.. (0번 이미지)
아이콘을 바꾸는 예제입니다..
주의점은 해당 노드의 ImageIndex 뿐 아니라 SelectedIndex의 이미지
인덱스도 같이 바꿔주어야 책이 펼쳐진 상태에서 선택을 하게 되어도
노드가 열려있으면 열린 책 그림이 유지됩니다..
기람..
미친병아리 서비였네용.. 삐약~ !!
procedure TfMGAcountShow.tvAcntTreeGetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
if Node.Expanded then
begin
Node.ImageIndex := 2 ;
Node.SelectedIndex := 2 ;
end
else
begin
Node.ImageIndex := 1 ;
Node.SelectedIndex := 1 ;
end ;
if Node.GetFirstChild=nil then
begin
Node.ImageIndex := 3 ;
Node.SelectedIndex := 3;
end ;
if Node.AbsoluteIndex=0 then
begin
Node.ImageIndex := 0 ;
Node.SelectedIndex := 0 ;
end ;
end;
|