[Cascavel-pm] Ajuda Anonymous Subroutines

Donato Azevedo donatoaz em gmail.com
Sexta Março 11 20:54:21 PST 2005


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();

Obrigado pela atençao...
-- 
*******************************************
              Donato Azevedo
Engenharia de Controle e Automação
                      UFMG
*******************************************


Mais detalhes sobre a lista de discussão Cascavel-pm