Mudar cor de qrlabel somente de uma banda
Oi pessoal, alguem sabe como posso fazer um looping
pra mudar a cor dos qrlabels somente de uma banda.
Eu preciso disso porque quando o acontece uma determinada situação
eu quero que a banda toda fique com uma determinada cor, atualmente
eu mudo um por um. Se alguem puder ajudar desde já agradeço.
pra mudar a cor dos qrlabels somente de uma banda.
Eu preciso disso porque quando o acontece uma determinada situação
eu quero que a banda toda fique com uma determinada cor, atualmente
eu mudo um por um. Se alguem puder ajudar desde já agradeço.
Osvaldo
Curtidas 0
Respostas
Fabio.hc
14/01/2004
Tente assim:
Coloque os qrlabels da banda com a propriedade parentfont:=true e trocar a propiedade font.color da banda;
Coloque os qrlabels da banda com a propriedade parentfont:=true e trocar a propiedade font.color da banda;
GOSTEI 0
Nigro
14/01/2004
if component is tLabel then color := clRed
GOSTEI 0
Osvaldo
14/01/2004
Obrigado pela atenção Fabio, mas assim não dá certo, eu já tentei, eu preciso que quando eu ponho a cor cinza na banda por exemplo, os qrlabels não fiquem com o fundo branco e sim com o fundo cinza também.
E isso eu só consigo mudando a propriedade color do qrlabel e não da fonte. Como eu disse estou fazendo um a um. Ex. DetailBand1.color:=clGray, qrLabel1.color:=clGray, e assim por diante.
E isso eu só consigo mudando a propriedade color do qrlabel e não da fonte. Como eu disse estou fazendo um a um. Ex. DetailBand1.color:=clGray, qrLabel1.color:=clGray, e assim por diante.
Tente assim:
Coloque os qrlabels da banda com a propriedade parentfont:=true e trocar a propiedade font.color da banda;
GOSTEI 0
Osvaldo
14/01/2004
Obrigado pela atenção Nigro, mas como eu faço pra pegar somente os qrLabels que pertencem a uma determinada banda, não quero alterar os outros QrLabels.
if component is tLabel then color := clRed
GOSTEI 0
Nigro
14/01/2004
mude as tags
GOSTEI 0
Osvaldo
14/01/2004
Obrigado mais uma vez Nigro e desculpe a minha ignorancia, mas eu não entendí, como assim mudar as tags?
mude as tags
GOSTEI 0
Nigro
14/01/2004
Sem problemas... estamos todos aqui para aprender...
for i := 0 to ComponentCount -1 do
if Components[i].Tag = ´0´ is TLabel then
Components[i].Color := clRed
Acho que dá certo, se não der me avise.
for i := 0 to ComponentCount -1 do
if Components[i].Tag = ´0´ is TLabel then
Components[i].Color := clRed
Acho que dá certo, se não der me avise.
GOSTEI 0
Osvaldo
14/01/2004
Obrigado pela ajuda Nigro realmente resolveu o meu problema,
abaixo segue a rotina que precisei fazer para que meu relatório saisse zebrado, para quem precisar.
procedure TfrmRelContas.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var
i:integer;
begin
if not odd(dmSql.Query1.RecNo) then // se for impar imprime a linha toda cinza.
begin
detailBand1.Color:=clSilver;
for i := 0 to ComponentCount -1 do
begin
if TQRLabel(Components[i]).Tag = 1 then
TQRLabel(Components[i]).Color := clSilver;
end;
end
else
begin
detailBand1.Color:=clWhite;
for i := 0 to ComponentCount -1 do
begin
if TQRLabel(Components[i]).Tag = 1 then
TQRLabel(Components[i]).Color := clWhite;
end;
end;
end;
abaixo segue a rotina que precisei fazer para que meu relatório saisse zebrado, para quem precisar.
procedure TfrmRelContas.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var
i:integer;
begin
if not odd(dmSql.Query1.RecNo) then // se for impar imprime a linha toda cinza.
begin
detailBand1.Color:=clSilver;
for i := 0 to ComponentCount -1 do
begin
if TQRLabel(Components[i]).Tag = 1 then
TQRLabel(Components[i]).Color := clSilver;
end;
end
else
begin
detailBand1.Color:=clWhite;
for i := 0 to ComponentCount -1 do
begin
if TQRLabel(Components[i]).Tag = 1 then
TQRLabel(Components[i]).Color := clWhite;
end;
end;
end;
Sem problemas... estamos todos aqui para aprender...
for i := 0 to ComponentCount -1 do
if Components[i].Tag = ´0´ is TLabel then
Components[i].Color := clRed
Acho que dá certo, se não der me avise.
GOSTEI 0
Fabio.hc
14/01/2004
Para imprimir zebrado eu tenho esta rotina:
- Colocar todos os objetos da banda com a propriedade transparent=true e no BeforePrint da banda o codigo abaixo:
- Colocar todos os objetos da banda com a propriedade transparent=true e no BeforePrint da banda o codigo abaixo:
procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if odd(IBQuery1.RecNo) then DetailBand1.Color:=clSilver else DetailBand1.Color:=clWhite; end;
GOSTEI 0
Osvaldo
14/01/2004
Obrigado Fabio. Ja testei e funcionou.
E obrigado a todos pela colaboração, com isso aprendemos um pouco mais com a experiencia de todos.
E obrigado a todos pela colaboração, com isso aprendemos um pouco mais com a experiencia de todos.
Para imprimir zebrado eu tenho esta rotina:
- Colocar todos os objetos da banda com a propriedade transparent=true e no BeforePrint da banda o codigo abaixo:
procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if odd(IBQuery1.RecNo) then DetailBand1.Color:=clSilver else DetailBand1.Color:=clWhite; end;
GOSTEI 0
Imoreira
14/01/2004
Não é mais fácil setar a propriedade [color=red:cf59e6afd4][b:cf59e6afd4]transparent[/b:cf59e6afd4][/color:cf59e6afd4] do qrlabel
para [b:cf59e6afd4][color=red:cf59e6afd4]true[/color:cf59e6afd4][/b:cf59e6afd4]?
para [b:cf59e6afd4][color=red:cf59e6afd4]true[/color:cf59e6afd4][/b:cf59e6afd4]?
GOSTEI 0
Osvaldo
14/01/2004
Obrigado pela atenção, realmente é mais fácil mesmo, foi exatamente o exemplo acima que o Fábio enviou.
Não é mais fácil setar a propriedade [color=red:0ed4c8191d][b:0ed4c8191d]transparent[/b:0ed4c8191d][/color:0ed4c8191d] do qrlabel
para [b:0ed4c8191d][color=red:0ed4c8191d]true[/color:0ed4c8191d][/b:0ed4c8191d]?
GOSTEI 0