Ir para conteúdo

POWERED BY:

Arquivado

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

afbartels

Problema com BitBtn

Recommended Posts

Tenho um Form com 48 botões BitBtn, sendo que cada botão representa uma mesa. Quero ler no Banco quais são as mesas que estão ocupadas e assim mudar a figura dos respectivos botões. Tenho o seguinte código

 

ADOQuery1.close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT NumeroMesa, Status FROM TabMesa');
  ADOQuery1.Open;

  i := 1;
  while (i <= count) do
	begin

	   comp:=CompareStr(ADOQuery1.FieldValues['status'],'A');
	   idx := ADOQuery1.FieldValues['NumeroMesa'];

	   if (comp = 0) then
		 TBitBtn(Components[idx]).Glyph.LoadFromFile('icones/tabuleta_verde.bmp')
	   else
		 TBitBtn(Components[idx]).Glyph.LoadFromFile('icones/tabuleta_amarela.bmp');

	   ADOQuery1.Next;
	   i:=i+1;
	end;

Ele lê normalmente e me traz os números das mesas que estão ativas. Até aí tudo bem. O problema é quando vou mudar as figuras dos botões. O que acontece é que o indice não é referente ao botão e sim ao componente. Gostaria de saber como faço para fazer a referencia certa ao botão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia nomear os botões seguindo uma hierarquia, exemplo (btnMesa1, btnMesa2 ...), e no código faria assim:

TBitBtn(FindComponent('btnMesa' + IntToStr(idx))).Glyph.LoadFromFile('icones/tabuleta_verde.bmp');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.