Fórum FindComponent Delphi XE5 #480596

28/05/2014

0

Pessoal é o seguinte

Meu projeto tem alguns botões com o nome sbMesa1, sbMesa2... e alguns labels com o nome status1, status2....

No evento FormCreate do formulário em que eles estão por padrão coloquei todos com Visible:=False

Porém gostaria de deixar como vísivel uma quantidade (que no futuro será pré-determinado via SQL)

No caso minha lógica para habilitar 5 botões e 5 status é:
while (i<=5) do
begin
TSpeedButton(FindComponent('sbMesa'+IntToStr(i))).Visible:=True;
TSpeedButton(FindComponent('status'+IntToStr(i))).Visible:=True;
i:=i+1;
end;

A principio o Delphi não acusa como erro, porém no momento em que vou compilar ocorre um erro com o Visible:=True

Podem me ajudar a encontrar o erro já que o compilador não acusa? Obrigado.
Bruno Sanchez

Bruno Sanchez

Responder

Post mais votado

29/05/2014

Bruno Sanchez,
Criei um Form adicionei 5 labels e 5 SpeedButtons e renomeei conforme você mencionou, no OnCreate coloquei o código postado por você, só tive que declarar a variável I e inicializa-la com o valor de 1, tirando isso esta tudo igual você descreveu, e aqui não deu nenhum erro, sua lógica esta correta, tirando a parte que você faz um cast de um Label pra TSpeedButton.

segue código do meu OnCreate:

procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  I := 1;
  while (I <= 5) do
  begin
    TSpeedButton(FindComponent('sbMesa' + IntToStr(I))).Visible := True;
    TLabel(FindComponent('status' + IntToStr(I))).Visible := True;
    I := I + 1;
  end;
end;

Cauê Nishijima

Cauê Nishijima
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar