Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro ao percorrer componentes e pegar informação


robinhocne

Pergunta

Criei uma função chamada consulta agendamento, onde teria que percorrer todos os TJvGradientHeaderPanel que são onde estás os horários, sendo para cada horário um panel e em coluna uma profissional diferente tipo

Profissional 1 Profissional 2 .......

08:00 08:00

08:15 08:15

08:30 08:30

08:45 08:45

09:00 09:00

09:15 09:15

...

Então preciso percorrer um por um e pegar o Tag desse panel, pois é nessa propriedade que eu gravei o codigo da profissional e preciso pegar o caption para pegar a hora da agenda e ai pesquisar na agenda para depois montar nesse horário um TJvCaptionPanel com informações do cliente, mas ao chegar na consulta quando preciso pegar o Tag e LabelCaption que está dando erro, abaixo a procedure e depois o erro....

procedure TFBelCad001.ConsultaAgendamento(Sender: TObject);
begin
   for A := 0 to ComponentCount -1 do
      begin
         if ( Components [A] is TJvGradientHeaderPanel ) then
           begin

              {Pesquisa Agenda do Profissional para Mostrar o horário marcado ...}
              with QryHoraMarcada do
                begin
                  Close;
                  sql.Clear;
                  sql.Add('Select * From BEL_AGENDA where AgeData =:DtAge ');
                  sql.Add('and ProCodigo =:ProCod and AgeHorIni =:HIni order by ProCodigo');
                  ParamByName('DtAge').AsDate     := TxtDtAgenda.DateTime;
                  ParamByName('ProCod').AsInteger := ( Sender as TJvGradientHeaderPanel ).Tag;
                  ParamByName('Hini').AsString    := (  Sender as TJvGradientHeaderPanel ).LabelCaption;
                  open;
                end;

              while not QryHoraMarcada.Eof do
                begin

                  {Cria o panel dos Horários Marcados ...}
                  try
                  pnHorMarcado := TJvCaptionPanel.Create(Self);

                  with pnHorMarcado do
                    begin
                      Parent     := Self;
                     // Top                := TJvGradientHeaderPanel ( FindComponent (
                                                      //               'pnHor' + QryAge.FieldByName('PhoControle').AsString + IntToStr(Min) ) ).Top;
                    //  Left               := TJvGradientHeaderPanel ( FindComponent (
                                                              //       'pnHor' + QryAge.FieldByName('PhoControle').AsString + IntToStr(Min) ) ).Left + 10;
                      Height             := 80;
                      Width              := 185;
                      CaptionPosition    := dpTop;
                      CaptionFont.Color  := clBlack;
                      CaptionFont.Height := -12;
                      CaptionFont.Name   := 'Arial';
                      CaptionFont.Style  := [fsBold];
                      CaptionHeight      := 18;
                      Tag                := QryHoraMarcada.FieldByName('ProCodigo').AsInteger;
                      Caption            := QryHoraMarcada.FieldByName('AgeHorIni').AsString + ' - ' + QryHoraMarcada.FieldByName('AgeCliente').AsString;
                    end;

                   except
                     on E:Exception do
                       begin
                        ShowMessage('Erro ao criar pnHorMarcado');
                        exit;
                       end;
                   end;
                  {... Cria o panel dos Horários Marcados}

                  QryHoraMarcada.Next;
                end;

              QryHoraMarcada.Close;
              {... Pesquisa Agenda do Profissional para Mostrar o horário marcado}

           end;
      end;


end;

Invalid class Typecast

como faço para pegar essas propriedades ?

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Invalid class Typecast

ParamByName('ProCod').AsInteger := ( Sender as TJvGradientHeaderPanel ).Tag;
ParamByName('Hini').AsString    := (  Sender as TJvGradientHeaderPanel ).LabelCaption;
esse erro ocorre quando voce tenta converter um tipo em outro não compativel tente assim:
ParamByName('ProCod').AsInteger := inttostr(TComponent(Components[i]).tag);
ParamByName('Hini').AsString    := TComponent(Components[i]).LabelCaption;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Invalid class Typecast

ParamByName('ProCod').AsInteger := ( Sender as TJvGradientHeaderPanel ).Tag;
ParamByName('Hini').AsString    := (  Sender as TJvGradientHeaderPanel ).LabelCaption;
esse erro ocorre quando voce tenta converter um tipo em outro não compativel tente assim:
ParamByName('ProCod').AsInteger := inttostr(TComponent(Components[i]).tag);
ParamByName('Hini').AsString    := TComponent(Components[i]).LabelCaption;
abraço
valeu Jhonas.... Fiz dessa maneira e deu certo....
procedure TForm1.Button2Click(Sender: TObject);
var
  a, Altura: integer;
begin

for A := 0 to ComponentCount -1 do
      begin
         if ( Components [a] is TJvGradientHeaderPanel ) then
           begin

             Altura:= ( Components [a] as TJvGradientHeaderPanel ).Top;

                 if ( Components [a] as TJvGradientHeaderPanel ).LabelCaption = '08:30' then
                   begin

                      try
                      pnHorMarcado := TJvCaptionPanel.Create(Self);

                      with pnHorMarcado do
                        begin
                          Parent             := Self;
                          Top                := Altura;
                          Left               := 20;
                          Height             := 30;
                          Width              := 200;
                          CaptionPosition    := dpTop;
                          CaptionFont.Color  := clBlack;
                          CaptionFont.Height := -12;
                          CaptionFont.Name   := 'Arial';
                          CaptionFont.Style  := [fsBold];
                          CaptionHeight      := 18;
                          Caption            := 'TESTE';
                        end;

                   except
                     on E:Exception do
                       begin
                        ShowMessage('Erro ao criar pnHorMarcado');
                        exit;
                       end;                        

                      end;

                   end;

           end;

      end;

end;

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...