| 
   
    | ...draw a color picking Combo Box? |   
    | Autor: 
      Rafael Giusti |  | [ Print tip 
] |  |  |  
 
 
 
 
 
{IMPORTANT: This code won't run if you don't
 change the ComboBox or ListBox's property
 "Style" to csOwnerDrawVariable.
 
 WICHTIG: Die Eigenschaft "Style" der ComboBox muss auf
 csOwnerDrawVariable gesetzt werden, damit der Code
 funktioniert
 }
 
 const
 COLOR_NUM = 15;
 ColorConst: array [0..COLOR_NUM] of TColor = (clBlack,
 clMaroon, clGreen, clOlive, clNavy,
 clPurple, clTeal, clGray, clSilver, clRed,
 clLime, clYellow, clBlue, clFuchsia,
 clAqua, clWhite);
 ColorNames: array [0..COLOR_NUM] of string = ('Black',
 'Maroon', 'Green', 'Olive', 'Navy',
 'Purple', 'Teal', 'Gray', 'Silver', 'Red',
 'Lime', 'Yellow', 'Blue', 'Fuchsia',
 'Aqua', 'White');
 
 implementation
 
 {...}
 
 procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect;
 State: TOwnerDrawState);
 begin
 with (Control as TComboBox).Canvas do
 begin
 FillRect(Rect);
 TextOut(30, Rect.Top,
 ComboBox1.Items[Index]);
 Pen.Color   := clBlack;
 Brush.Color := ColorConst[Index];
 Rectangle(Rect.Left + 2, Rect.Top + 2, 24,
 Rect.Top + 15);
 end;
 end;
 
 procedure TForm1.FormCreate(Sender: TObject);
 var
 i: Integer;
 begin
 for i := Low(ColorNames) to High(ColorNames) do
 ComboBox1.Items.Add(ColorNames[i]);
 end;
 
 
 
   |