0
나는 TListView의 텍스트에 그라데이션과 같은 여러 색상을 지정하려고하는데 인터넷에서 검색을 시도했지만 단일 색상 방법을 사용할 수있었습니다. 한 번에 한 문자 씩 그리려고했습니다. 색상을 바꾸지 만 작동하지 않습니다. 여기에 내가 시도한 코드가있다.델파이 : 착색 TListView
procedure TForm1.lvMainAdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var txtWidth: Integer;
Rct: TRect;
begin
Rct := item.DisplayRect(drBounds);
lvMain.Canvas.Font.Color := clRed;
DrawText(lvMain.Canvas.Handle, 'asd', 3, Rct, DT_SINGLELINE);
Canvas.Refresh;
lvMain.Canvas.Font.Color := clBlack;
txtWidth := Canvas.TextWidth('asd');
Rct.Left := Rct.Left + txtWidth;
DrawText(lvMain.Canvas.Handle, 'b', 1, Rct, DT_SINGLELINE);
lvMain.Canvas.Font.Color := clBlue;
txtWidth := Canvas.TextWidth('b');
Rct.Left := Rct.Left + txtWidth;
DrawText(lvMain.Canvas.Handle, 'sa', 2, Rct, DT_SINGLELINE);
end;
여전히 단일 색상이됩니다. 이것을 달성하는 방법에 대한 제안?
감사
어떤 모범을? 또는 하나에 링크?. 감사 –