Fórum Como Pintar Controls usando classes superiores ? #254365

14/10/2004

0

Olá Amigos estou criando um componente que em um determinado momento vai mudar o color de alguns controls...só que estou com o seguinte problema...
Não queria fazer isso :
TComboBox(objeto).color:=clred;
TDBComboBox(objeto).color:=clred;
TRxDBComboBox(objeto).color:=clred;
Gostaria de saber se tem como usar as classes superiores dos objetos para pintar .
[u:07ff8b7ae0]Exemplos:[/u:07ff8b7ae0]
TCustomComboBox
TCustomListBox
TCustomEdit
TCustomMemo
Porém naum dá pra usar a propriedade Color(ela está protected)...tem outra maneira de fazer isso(usando canvas naum dá) ?


Alexandresbo2

Alexandresbo2

Responder

Posts

14/10/2004

Fórum Vini

Porém naum dá pra usar a propriedade Color(ela está protected)...

Isso não é problema! :lol:
type
  TCustomComboBoxHack = class(TCustomComboBox)
  end;
...
begin
  TCustomComboBoxHack(MeuComboBox).Color:= clRed;
  ...
end;

tem outra maneira de fazer isso(usando canvas naum dá) ?

Tem sim, usando TControlCanvas..
var C: TControlCanvas;
begin
  C:= TControlCanvas.Create;
  C.Control:= ListBox1;
  // Aqui vem o codigo da pintura
  C.Free;
end;

O único problema de usar isso é que quando o controle é repintado pelo windows, a sua pintura sai.. Se você se interessar, eu posto o código pra driblar isso...:wink:

Esprto ter ajudado,
Vinicius;


Responder

Gostei + 0

14/10/2004

Ipc$

Outra solução seria:
type TMControl = class(TControl);

TMControl(Objeto).color := clred;



Responder

Gostei + 0

14/10/2004

Alexandresbo2

Valew IPC$ deu certinho


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar