Fórum delphi - invalid class typecast #601179
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
Curtir tópico
+ 0Posts
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.
Gostei + 0
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...
Gostei + 0
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;
Gostei + 0
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;
Gostei + 0
18/03/2019
Hélio Devmedia
Gostei + 0
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;
Gostei + 0
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; Gostei + 0
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)