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.
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
Curtir tópico
+ 0
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:
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
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)