Ir ao conteúdo

Alterar Shapes em for (loop)


NycB

Posts recomendados

Postado

Olá pessoal.

Estou tendo problemas (tavez nem tão cruéis) com o Shape do delphi...

No meu form tenho 33 shapes, e preciso alterar suas configurações, a principal é a cor.

Se não bastasse, ainda preciso fazer num for...

Segue o código do que eu achei (bem feliz) que fincionaria:


[B]for[/B] i := 1 [B]to[/B] 33 [B]do[/B]
[B]begin[/B]
[B]if[/B] ((copy(labelX.Caption,i,1))=[COLOR="RoyalBlue"]'0'[/COLOR]) [B]then[/B] shape[i].Brush.Color:=clwhite [B]else[/B] shape[i].Brush.Color:=clblack;
[B]end;[/B]

Entre os colchetes era pra carregar o shape que eu queria, mas é claro que dessa maneira não funciona, sei disso, porém deve haver uma maneira.

A intenção final é ler um valor binário e transformá-lo em código de barras...

Acho que meu problema é como o do amigo Adonist: http://forum.clubedohardware.com.br/mudar-cor-shapes/820683?t=820683&highlight=shape

  • 3 semanas depois...
Postado

Ei amigo, pra acessar os shapes (ou qualquer conjunto de componentes iguais), para facilitar nomeie os componentes com mesmo nome, apenas alterando sua numeracao (exemplo: shape1, shape2, shape3, ..., shape17, shape18, etc | ou então: shape_bar1, shape_bar2, shape_bar3, ..., shape_bar17, shape_bar18, etc...) porque usaremos a numeracao que compoe o nome do shape como nosso indice, para facilitar o codigo (como se fosse indice no VB).

então para modificar as cores dos shapes (ou alguma outra propriedade de um conjunto de componentes) dentro de um looping, utilize o comando "findcomponent". Fica assim:


for ind_loop:= 1 to 33 do //coloque aqui os indices dos componentes, do inicial para o final
begin
if ((copy(labelX.Caption,i,1))='0') then
TShape(FindComponent('Shape'+ IntToStr(ind_loop))).Brush.Color:= clWhite
else
TShape(FindComponent('Shape'+ IntToStr(ind_loop))).Brush.Color:= clBlack;
end;

Viu como é simples?

Tenta aí e diga se era isso o que você precisava mesmo.

Abraço

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...