whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

57 Visitors Online


 
...draw a color picking Combo Box?
Autor: Rafael Giusti
[ Print tip ]  

Tip Rating (5):  
     




{
  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;


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners