[Q] Acerca de bind

Tony Rodriguez tony at tony.tzo.com
Wed Jul 26 16:41:45 CDT 2000


Saludos compañeros listeros.

Ante todo muchas gracias por sus anteriores respuestas.  Lo que mas me gusta es
que siempre vienen con una ñapa de conocimiento para mi, gracias al uso de
otros conceptos ;-)

Bueno, sigo haciendo mi programa para poner en practica y fortalecer las bases
de la programacion en Perl.  En este momento estoy en la parte de P/Tk y me
encontre con un problemilla.  Estoy tratando de asociar una tecla a un evento 
... en particular tengo un TK::Entry donde al presionar un TK:Button puedo
colocar la entrada en una variable e imprimirla pero quiero colocarla tambien
cuando presiono Enter.  Lo cierto es que he estado leyendo y creo que debo
hacerlo con el $widget->bind.  El problema es que no encuentro hacer que
funcione.  Dado que no lograba nada, trate de ejecutar un ejemplo que consegui 
( Ver ABAJO ) pero con el mismo tampoco logro hacer que me reconozca las teclas
presionadas.  Sencillamente el programa me muestra la ventana y no hace nada.
Punto.  Podrian ustedes sugerirme algo o hacerme ver el porque de esto?. 
Gracias Mil de antemano.

Tony.
##################################3
#!/usr/bin/perl -w
#
use Tk;

$vp = MainWindow->new;
$marco = $vp->Frame(-height => '6c',
		    -width => '6c',
		    -background => 'black');
$marco->pack;
$vp->bind('Any-KeyPress' => \&echo);
$vp->bind('ButtonPress' => \&echoPress);
$vp->bind('ButtonRelease' => \&echoRel);

MainLoop;

sub echoRel {
  print "Boton Liberado\n";
  my ($btnc) = @_;
  my $e = $btnc->XEvent;
  my ($x,$y)=($e->x,$e->y,$e->K,$e->W,$e->A);  # SE QUE HAY DE MAS PERO FUE PARA
	# Aprovechar la misma rutina para los tres casos ;-).  Yo tambien soy
	# un poco flojo ;-)
  print " X cord = $x\n";
  print " Y cord = $y\n";
}

sub echoPress {
  print "Boton Presionado\n";
  my ($btnc) = @_;
  my $e = $btnc->XEvent;
  my ($x,$y)=($e->x,$e->y,$e->K,$e->W,$e->A);
  print " X cord = $x\n";
  print " Y cord = $y\n";
}

sub echo {
  print "Oprimir Cualquier Boton\n";
  my ($btnc) = @_;
  my $e = $btnc->XEvent;
  my ($x,$y,$W,$K,$A)=($e->x,$e->y,$e->K,$e->W,$e->A);
  print " X cord = $x\n";
  print " Y cord = $y\n";
  print " KeyCode = $W\n";
  print " ASCII = $A\n";
  print " Window = $K\n";
}
------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list