Como Pintar Controls usando classes superiores ?
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á) ?
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
Curtidas 0
Respostas
Fórum Vini
14/10/2004
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;
GOSTEI 0
Ipc$
14/10/2004
Outra solução seria:
type TMControl = class(TControl); TMControl(Objeto).color := clred;
GOSTEI 0
Alexandresbo2
14/10/2004
Valew IPC$ deu certinho
GOSTEI 0