TColorBox po Polsku

0

Co zrobic zeby w komponencie TColorBox kolory były wypisane po Polsku(czy w ogóle da sie tak zrobić)?

0

Da się, trzeba tylko przerobić cały komponent TColorBox - spytaj Szymka, on chyba zrobił takie coś.

0

A czy bez grzebania w komponencie da sie usunac napisy i pozostawic tylko kwadraciki z kolorami?

0

Przerób sobie to na combobox:

unit Unit1;

interface


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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
  type
{ Rekord zawiera pozycje kolru i nazwy tego koloru } 
TColorRec = packed record
Color : TColor; 
Des : String[15];
end; 

{ Tablica kolorow } 
const ColorTab : array[0..6] of TColorRec = 
( 
(Color: clBlack; Des: 'Czarny'), 
(Color: clBlue; Des: 'Niebieski'), 
(Color: clGreen; Des: 'Zielony'), 
(Color: clRed; Des: 'Czerwony'), 
(Color: clYellow; Des: 'Źółty'), 
(Color: clGray; Des: 'Szary'),
(Color: clWhite; Des: 'Biały')
);
  begin
with Listbox1.Canvas do
begin 
FillRect(Rect); 
Brush.Style := bsSolid; // styl - jednolity 
Brush.Color := ColorTab[Index].Color; // kolor z tablicy 
Rectangle(Rect.Left + 2, Rect.Top + 2, Rect.Left + 32, Rect.Bottom - 2); 
Brush.Style := bsClear; // tło na przezroczyste
TextOut(Rect.Left + 40, Rect.Top + 2, ColorTab[Index].Des); // pisz tekst
end; 
end;


procedure TForm1.FormCreate(Sender: TObject);
var
I : Integer;
type
{ Rekord zawiera pozycje kolru i nazwy tego koloru } 
TColorRec = packed record
Color : TColor; 
Des : String[15];
end; 

{ Tablica kolorow } 
const ColorTab : array[0..6] of TColorRec = 
( 
(Color: clBlack; Des: 'Czarny'), 
(Color: clBlue; Des: 'Niebieski'), 
(Color: clGreen; Des: 'Zielony'), 
(Color: clRed; Des: 'Czerwony'), 
(Color: clYellow; Des: 'Źółty'), 
(Color: clGray; Des: 'Szary'),
(Color: clWhite; Des: 'Biały')
);
begin
{ wypelnij pola danymi } 
for I := Low(ColorTab) to High(ColorTab) do
Listbox1.Items.Add(ColorTab[i].Des);
end;


end.

ten kodzik znalazłem na 4programmers.net gdzieś żeby nie było.

0

Ja po prostu zrobiłem własny komponent do tego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1