五彩下拉框

unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm4 = class(TForm)
    ComboBox1: TComboBox;
    procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.FormCreate(Sender: TObject);
begin
  with ComboBox1.Items do
  begin
    Add(IntToStr(clRed));
    Add(IntToStr(clFuchsia));
    Add(IntToStr(clBlue));
    Add(IntToStr(clGreen));
    Add(IntToStr(clYellow));

  end;
end;

procedure TForm4.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  R: TRect;
begin
  R:=Rect;
  with Control as TComboBox,Canvas do
  begin
    Brush.Color:=clWhite;
    FillRect(R);
    InflateRect(R,-2,-2);
    Brush.Color:=StrToInt(Items[Index]);
    FillRect(R);
  end;

end;

end.

原文地址:https://www.cnblogs.com/huking/p/1693335.html