delphi - invalid class typecast
15/03/2019
0
Por gentileza, como proceder?
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject;
ItemIndex: Integer);
var
tela : string;
begin
with advsmthBuscaRapida.MenuItems do
begin
//tela := Copy(Items[1].Caption, Pos ('<', Items[1].Caption) + 1, Length(Items[1].Caption)-1);
tela := Copy((Sender as TAdvSmoothMegaMenuItem).Caption, Pos ('<', (Sender as TAdvSmoothMegaMenuItem).Caption) + 1, Length((Sender as TAdvSmoothMegaMenuItem).Caption)-1);
end;
end;
Flavio Silva
Posts
17/03/2019
Hélio Devmedia
Seu código parece está correto, porém, estou na dúvida do uso de "with advsmthBuscaRapida.MenuItems do" combinado com a linha que usa o TypeCast.
tente comentar o with e seus respectivos begin e end e testar o código novamente
Espero que funcione.
Um forte abraço e fique com Deus.
18/03/2019
Flavio Silva
Seu código parece está correto, porém, estou na dúvida do uso de "with advsmthBuscaRapida.MenuItems do" combinado com a linha que usa o TypeCast.
tente comentar o with e seus respectivos begin e end e testar o código novamente
Espero que funcione.
Um forte abraço e fique com Deus.
Deu o mesmo erro amigo...
18/03/2019
Emerson Nascimento
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); var tela, strCaption: string; nPosIni, nPosFim: integer; begin strCaption := (Sender as TAdvSmoothMegaMenuItem).Caption; nPosIni := Pos ('<', strCaption) + 1; nPosFim := Length(strCaption)-1; //tela := Copy(Items[1].Caption, Pos ('<', Items[1].Caption) + 1, Length(Items[1].Caption)-1); tela := Copy(strCaption, nPosIni, nPosFim); end;
18/03/2019
Flavio Silva
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); var tela, strCaption: string; nPosIni, nPosFim: integer; begin strCaption := (Sender as TAdvSmoothMegaMenuItem).Caption; nPosIni := Pos ('<', strCaption) + 1; nPosFim := Length(strCaption)-1; //tela := Copy(Items[1].Caption, Pos ('<', Items[1].Caption) + 1, Length(Items[1].Caption)-1); tela := Copy(strCaption, nPosIni, nPosFim); end;
O erro está dando justamente na linha (strCaption := (Sender as TAdvSmoothMegaMenuItem).Caption;)
Mas assim, vi outra forma de pegar a caption e que dá certo, porém preciso saber o que preciso colocar no lugar do """número 5""" para pegar o item que acabo de clicar...
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); var tela : string; i : Integer; var codmenu : array of string; action : TAction; begin with advsmthBuscaRapida.MenuItems do begin tela := Items[5].Caption; // como pegar o itemindex para deixar o 5 tela := Copy(tela , Pos('<', tela ) + 1, Length(tela)-2); end; end;
18/03/2019
Hélio Devmedia
18/03/2019
Flavio Silva
okay, mas e nesse caso que deu certo?
Como buscar o numero que cliquei, ao invés de colocar 5 direto?
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); var tela : string; i : Integer; var codmenu : array of string; action : TAction; begin with advsmthBuscaRapida.MenuItems do begin tela := Items[5].Caption; // como pegar o itemindex para deixar o 5 tela := Copy(tela , Pos('<', tela ) + 1, Length(tela)-2); end; end;
18/03/2019
Emerson Nascimento
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); // <<<< aqui está sendo passado o ItemIndex var tela : string; i : Integer; var codmenu : array of string; action : TAction; begin with advsmthBuscaRapida.MenuItems do begin tela := Items[ ItemIndex ].Caption; // como pegar o itemindex para deixar o 5 tela := Copy(tela , Pos('<', tela ) + 1, Length(tela)-2); end; end;
18/03/2019
Flavio Silva
procedure TfrmMain.advsmthBuscaRapidaMenuItemClick(Sender: TObject; ItemIndex: Integer); // <<<< aqui está sendo passado o ItemIndex var tela : string; i : Integer; var codmenu : array of string; action : TAction; begin with advsmthBuscaRapida.MenuItems do begin tela := Items[ ItemIndex ].Caption; // como pegar o itemindex para deixar o 5 tela := Copy(tela , Pos('<', tela ) + 1, Length(tela)-2); end; end;
Verdade amigo, não me atentei a isso... obrigado pelo apoio, deu certo aqui.
Clique aqui para fazer login e interagir na Comunidade :)