Cor de fundo de ListBox
Olá!
Meu problema é com a cor de fundo do ListBox em tempo de execução.
Quando troco a cor de fundo de branco (por exemplo) para outra qualquer como cinza, se depois tentar retornar à cor branca parece que o programa não reconhece a alteração. Porém, se fizer com que a janela de um outro aplicativo qualquer sobreponha a janela de meu programa, ao voltar a ativar a janela de meu programa aparece a cor de fundo do ListBox para qual eu programei, neste caso a cor branca que era a cor do início.
Alguém sabe como resolver este problema?
Já tentei executar Refresh, mas também não adiantou.
Grato.
wbb
Meu problema é com a cor de fundo do ListBox em tempo de execução.
Quando troco a cor de fundo de branco (por exemplo) para outra qualquer como cinza, se depois tentar retornar à cor branca parece que o programa não reconhece a alteração. Porém, se fizer com que a janela de um outro aplicativo qualquer sobreponha a janela de meu programa, ao voltar a ativar a janela de meu programa aparece a cor de fundo do ListBox para qual eu programei, neste caso a cor branca que era a cor do início.
Alguém sabe como resolver este problema?
Já tentei executar Refresh, mas também não adiantou.
Grato.
wbb
Wbb
Curtidas 0
Respostas
Steve_narancic
27/10/2003
também estou com esse problema, ja tentei dar um repaint e um update no form mas não funcionou, será que alguem tem alguma dica?
GOSTEI 0
Steve_narancic
27/10/2003
resolvi, mudando a cor e depois fazendo visible = false e visible = true;
ListBox1.Color:= clRed; ListBox1.Visible:=False; ListBox1.Visible:=true;
GOSTEI 0
Adriano Santos
27/10/2003
Olá!
Meu problema é com a cor de fundo do ListBox em tempo de execução.
Quando troco a cor de fundo de branco (por exemplo) para outra qualquer como cinza, se depois tentar retornar à cor branca parece que o programa não reconhece a alteração. Porém, se fizer com que a janela de um outro aplicativo qualquer sobreponha a janela de meu programa, ao voltar a ativar a janela de meu programa aparece a cor de fundo do ListBox para qual eu programei, neste caso a cor branca que era a cor do início.
Alguém sabe como resolver este problema?
Já tentei executar Refresh, mas também não adiantou.
Grato.
wbb
O que você está usando para trocar a cor?
GOSTEI 0
Davicarrano
27/10/2003
Troca a propriedade Style do ListBox para lbOwnerDrawFixed
e veja se vai funcionar...
e veja se vai funcionar...
GOSTEI 0
Steve_narancic
27/10/2003
funcionou, fico muito agradecido
GOSTEI 0
Davicarrano
27/10/2003
vou tentar explicar o porque deu certo.. por favor me corrijam se eu estiver errado....
quando vc muda a propriedade style de um ListBox para lbOwnerDrawFixed a Lista passa a ser redesenhada a cada modificação... no entanto se vc deixar a propriedade como lbOwnerDrawFixed ou lbOwnerDrawVariable o evento DrawItem vai ser executado a cada novo item q ele for desenhar no list.... setando a propriedade para estes 2 valores vc pode usar o evento DrawItem pra estar Modificando o que ira aparecer nos itens da lista, tipo Inserindo desenhos, formatando o texto, posicionando ele.... a diferença de um valor para o outro é que no lbOwnerDrawVariable os itens podem ter seus Height variaveis e no lbOwnerDrawFixed os itens tem seu Heigth fixo, definido pela propriedade ItemHeight...
quando vc muda a propriedade style de um ListBox para lbOwnerDrawFixed a Lista passa a ser redesenhada a cada modificação... no entanto se vc deixar a propriedade como lbOwnerDrawFixed ou lbOwnerDrawVariable o evento DrawItem vai ser executado a cada novo item q ele for desenhar no list.... setando a propriedade para estes 2 valores vc pode usar o evento DrawItem pra estar Modificando o que ira aparecer nos itens da lista, tipo Inserindo desenhos, formatando o texto, posicionando ele.... a diferença de um valor para o outro é que no lbOwnerDrawVariable os itens podem ter seus Height variaveis e no lbOwnerDrawFixed os itens tem seu Heigth fixo, definido pela propriedade ItemHeight...
GOSTEI 0