Ir para conteúdo
Fórum Script Brasil
  • 0

Colorir itens do Combobox com o ColorDialog


Jhonas

Pergunta

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    ColorDialog1: TColorDialog;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cc : integer = -1;
  Colors1: array[0..19] of TColor; // atribuir 20 cores do ColorDialog1
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if ColorDialog1.Execute then
      begin
         inc(cc); // contador (index) do combobox 
         Colors1[cc] := ColorDialog1.Color; // pegar a cor selecionada
         ComboBox1.Items.Append(Edit1.Text); // adicionar no Combobox o Edit1.Text
      end;
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
 with Control as TComboBox do
 begin
   Canvas.Font.Color := TColor(Colors1[Index]); // mudar cor da fonte do item
   Canvas.Brush.Color := clWhite; // mostrar fundo branco no combobox
   Canvas.FillRect(Rect);
   Canvas.TextOut(Rect.Left,Rect.Top,ComboBox1.Items.Strings[index]); // mostrar Nomes
 end;
end;

end.

ColorBox4.JPG

OBS: Digite um nome no Edit1 e ao clicar no botão, o ColorDialog  é aberto para escolher uma cor

a cor será armazenada em uma variavel tipo array que será indexada ao item adicionado ao combobox

O mesmo  se aplica ao ListBox

abraço

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...