내 질문은 기본적으로이 question과 같습니다. 그러나, 나는 왼쪽에서 오른쪽으로 설정된 색상에서 흰색으로 색상 흐름을 만들고 싶습니다. 아이디어는 모든 항목을 100 %로 채우고 점차적으로 색상을 녹색에서 노란색으로 빨간색으로 변경한다는 것입니다.다른 색상의 목록 상자에 항목을 그리는 방법
1
A
답변
0
이 코드를보십시오 : 참조 그라데이션 채우기를 수행하는 간단한 절차
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
private
{ Private declarations }
public
{ Public declarations }
procedure AddLog(const aStr : String; const aColor : TColor);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.AddLog(const aStr: String; const aColor: TColor);
begin
ListBox1.Items.AddObject(aStr, TObject(aColor));
end;
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
OldColor : TColor;
begin
with ListBox1.Canvas do begin
OldColor := Font.Color;
Font.Color := TColor(ListBox1.Items.Objects[Index]);
TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
Font.Color := OldColor;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
AddLog(
'String #' + IntToStr(ListBox1.Items.Count),
RGB(Random(11) * 20 , Random(11) * 20, Random(11) * 20)
);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Clear;
end;
end.
+0
OP는 그라데이션으로 채워진 목록 상자 항목 배경을 원합니다. 끝 색상은 흰색이고 시작 색상은 녹색에서 노란색에서 빨간색까지 0에서 100 %까지의 그래디언트 비율로 다양합니다. –
+0
@LURD 참조 ... 감사합니다! – huxahetu
관련 문제
- 1. 다른 색상의 WPF 목록 상자
- 2. 다른 색상의 정점 버퍼에서 정점을 그리는 방법
- 3. "x"목록 상자 항목을 그룹화하고 다른 목록 상자에 추가하는 방법?
- 4. 그림 상자를 목록 상자에 그리는 방법
- 5. 다른 폼에서 양식 상자에 사각형을 그리는 방법
- 6. 목록 상자에 항목을 추가하고 선택하십시오.
- 7. 목록 상자 내용을 다른 목록 상자에 바인딩
- 8. 그림 상자에 텍스트를 그리는 방법?
- 9. 다른 색상의 목록 상자 항목에 대해 목록 상자에 표준 그라디언트를 설정하려면 어떻게해야합니까?
- 10. 목록 상자에 항목을 추가 할 수 없습니다.
- 11. 다른 클래스에서 목록 상자에 줄을 추가하는 방법
- 12. 다른 클래스의 목록 상자에 항목을 추가 할 수 없습니다. C#
- 13. Java/NetBeans의 목록 상자에 항목을 추가하십시오.
- 14. 여러 목록 상자 항목을 다른 목록 상자로 가져 오는 방법
- 15. 은 목록 상자에 항목을 추가하고 ListBoxItem의
- 16. 버튼의 목록 상자에 항목을 추가하지 못했습니다. 클릭
- 17. 목록 상자에 arraylist를 두는 방법
- 18. 콤보 상자 값으로 목록 상자에 항목을 나열하는 방법
- 19. 목록 상자에 새 항목을 추가 WPF
- 20. WPF 목록 상자에 부분 항목을 표시하지 않음
- 21. 목록보기의 항목을 목록 상자에 추가하려면 어떻게합니까?
- 22. 상위 창 목록 상자에 항목을 추가 하시겠습니까?
- 23. asp.net 목록 상자 항목을 텍스트 상자에 전달하십시오.
- 24. 목록 상자에 항목을 바인딩하면 세로로 추가됩니다.
- 25. 다른 색상의 원을 그리는 2 차원 배열 만들기
- 26. 서로 다른 색상의 루프에서 시계열의 클러스터를 그리는 방법은 무엇입니까?
- 27. 목록 상자에 목록을 표시하는 방법
- 28. C에서 목록 상자에 항목을 추가 할 때 중복을 피하는 방법
- 29. ms 액세스에서 VBA를 사용하여 목록 상자에 새 항목을 추가하는 방법
- 30. 바인드 된 항목을 포함하는 목록 상자에 고정 값을 추가하는 방법
을 ['그라데이션이 Canvas'에 기입 그리는 방법 (http://delphi.about.com/od/ adptips2006/qt/gradient_fill.htm). 또한 GraphUtil.pas에'GradientFillCanvas'가 있습니다. –
위대한 m8. 이 tnx를 배울 것입니다. – Eszee
@ LURD의 팁과 함께 ListBox 아이템을 다르게 사용자 정의하는 코드가 있습니다. 두 가지를 합치면 해결책이 있어야합니다. :-) –