[Cascavel-pm] Ajuda Anonymous Subroutines
Luis Campos de Carvalho
monsieur_champs em yahoo.com.br
Sábado Março 12 04:46:40 PST 2005
Donato Azevedo wrote:
> Olá pessoal!
> Eu preciso de uma ajudinha:
> Estou fazendo um script usando win32::GUI pra gerar Tray Icons pra
> janelas existentes (ele pega uma janela, bota um icone na tray bar pra
> ela e remove o antigo da barra de tarefas). O win32::GUI::NotifyIcon
> funciona assim:
> voce cria um icone:
> my $icon = new ... Icon;
> dai associa esse icone a uma posicao na tray bar:
> my $tray = new ... NotifyIcon
>
> dai quando voce clica nele ele tem um evento associado que responde
> pela subrotina:
> sub Nome_Do_$tray_Click {}
> mas como eu tou gerando a subrotina run time eu faço assim:
> sub btn3_Click {
> my $num = $main->lsb1->SelectedItem() + 1;
> my $window_name = $main->lsb1->GetString($main->lsb1->SelectedItem());
> if ($tray->{$window_name}) {
> $main->txf1->Text("it already exists");
> return 1;
> }
> $icon->{$window_name} = new Win32::GUI::Icon($main->txf2->Text());
> $tray->{$window_name} = $main->AddNotifyIcon(-name => $window_name,
> -id => $num,
> -icon => $icon->{$window_name}, -tip => $window_name);
> eval qq(
> sub main::${window_name}_Click {
> $main->->txf1->Text("donato"); }
> );
> 1;
> }
>
> mas quando eu clico no icone na tray bar ele da um erro:
> Undefined Subroutine &main::nome_do_tray_Click called at line 23.
> A linha 23 tem a chamada pro win32::GUI::Dialog();
Você parece ter cortado e colado a última rotina diretamente do seu
código, ao contrário do resto. Digo isso por que os nomes parecem reais
neste trecho, mas não no resto.
Notei que você não verifica o resultado do eval, quando da geração da
subrotina. Pode ser que não tenha nada a ver, mas eu acho que você
precisa acrescentar uma linha "die $@ if $@;" depois do eval() e antes
do "1;".
Me conte se isso ajudou você a mudar a mensagem de erro, tá?
Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Sao Paulo PM Leader,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm