procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
Index: Integer;
ColumnStart: Integer;
begin
with ListView1 do
begin
if odFocused in State then
begin
Canvas.Font.Color := clLime;
Canvas.Brush.Color := clHighlight;
end
else
begin
Canvas.Font.Color := clBtnText;
Canvas.Brush.Color := clWindow;
end;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+1, Rect.Top+1, Item.Caption);
ColumnStart := Columns[0].Width;
for Index := 0 to Item.SubItems.Count - 1 do
begin
Canvas.TextOut(Rect.Left+ColumnStart+1, Rect.Top+1, Item.SubItems[Index]);
ColumnStart := ColumnStart + Columns[Index].Width;
end;
end;
end;
이런식으로 색깔을 선택한 후 보여주는데 색깔이 변하지 않는 이유가 뭡지요... 고수님들의 답변을 부탁합니다. for문 begin if 조건 then ListView1.Canvas.Font.Color := clBlue else ListView1.Canvas.Font.Color := clWindowText; Lis...
최용일
•
2002.08.06 21:14
안녕하세요. 최용일입니다.
흠~ 이 코딩이 어디에 있는지요?
아이템 넣기전에 폰트 색깔을 바꾸어 준...
정용광
•
2002.08.06 23:19
감사합니다.
아주 간단하게 처리되는 군요...
그런데 저는 OwnerDraw 속성을 False로 처리해야 되는군...
최용일
•
2002.08.06 23:32
OwnerDraw를 False로 하면 방법이 없을거 같네요...
정용광
•
2002.08.07 03:56
그런데 OwnerDraw를 True로 하면 값이 나오질 않는데..
어떻게 처리해야 하지요...
혹시 모르니 비활성 ...
최용일
•
2002.08.07 05:07
안녕하세요. 최용일입니다.
아래코드를 참조하셔서 직접 원하시는 색으로 그려주세요...
procedure T...
흠~ 이 코딩이 어디에 있는지요?
아이템 넣기전에 폰트 색깔을 바꾸어 준다고 아이템의 폰트색깔이 바뀌는 것은 아닙니다.
색을 바꾸실려면 OwnerDraw속성을 True로 설정하시고 OnDrawItem, OnCustomDrawItem, ... 에서 직접 그려주셔야 합니다...
위 이벤트 코딩은 검색해보시면 있을겁니다...
^^ 항상 즐코하세요...