2011-09-15 06:27 @310 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Crear interfaz gráfica con Win32::GUI
|
Hola a todos. He creado mis pantallas con Win32::GUI. He podido ejecutar varios script pulsando los botones correspondientes pero tengo una duda: Using perl Syntax Highlighting my $main2 = Win32::GUI::Window->new(
-name => 'Main2',
-text => 'Principal',
-pos => [ 350, 200 ],
-width => 600,
-height => 600,
-background => [153,0,0],
);
my $EditFont = new Win32::GUI::Font (
-name => "Fixedsys",
-size => 12,
);
$main2->AddTextfield(
-name => "Mostar",
-pos => [200, 100],
-size => [360, 360],
-multiline => 1,
-hscroll => 1,
-vscroll => 1,
-autohscroll => 1,
-autovscroll => 1,
-keepselection => 1 ,
-font => $EditFont,
);
Quiero que en el panel AddTextField se muestren los contactos que tengo en la base de datos y que se puedan seleccionar. Para que me entendáis mejor quiero que se muestren los contactos como cuando abres hotmail y se te muestran los correos que los puedes seleccionar con un clic. Pues me gustaría lo mismo pero solo mostrar el nombre del contacto en cada línea. ¿Alguna opción?
|
2011-09-15 06:36 @316 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
Pues para la parte de acceso a la base de datos, hay bastantes hilos con ejemplos (usa el sistema de búsqueda), y en la página de tutoriales tienes un ejemplo de acceso a una base de datos MySQL. Y en cuanto AddTextfield(), no tengo idea, pero a lo mejor viene en el manual de Win32::GUI...
_________________ JF^D Perl programming
|
2011-09-15 11:05 @503 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
Sí, esas las estuve mirando junto con http://perl-win32-gui.sourceforge.net y bueno, seguiré hasta encontrar cómo ponerlo. Tengo unos pequeños problemas. 1) A la hora de crear la interfaz estoy teniendo que crearlo todo en el mismo script las diferentes pantallas. Intenté hacer una en un script ventana.pl y otra en un script ventan2.pm. Hacia un use en el ventana.pl para poder usar esa pantalla pero, por ejemplo, si en ventana2 tenía un botón con el método $ventana2->Hide();, no funcionaba. Y para poder abrir la ventana2 desde la ventana1 tenía que crearme un método abrir en ventana2 y ejecutarlo desde ventana1. Yo creo que un lio, pero bueno, el problema es que solo me funcionaba con Show(); con Hide() no me funciona. 2) He incorporado en paquete Grupo.pm al script donde estoy diseñando la interfaz. He creado la siguiente subrutina en el script de la interfaz: Using perl Syntax Highlighting sub Button13_Click {
my $texto = $ventanaCG->TextFieldcg1->Text();
Grupo->new($texto);
$ventanaCG->TextFieldcg2->Text("¡¡¡¡¡Listo!!!!!");
return 0;
};
y en Grupo.pm lo recogería: Using perl Syntax Highlighting sub new {
print "Estoy en new\n";
my $grupo = @_;
return $grupo;
}
pero el problema es que cuando ejecuto el script de la interfaz, nada más hacerlo sin pulsar ningún botón me saca por pantalla: Using text Syntax Highlighting ¿Por qué lo ejecuta sin que yo pulse nada?
|
2011-09-16 10:49 @492 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
Hola. He mirado y cambiado la subrutina que recibe la información pero sigue imprimiendo el primer print() de "estoy en new" y un 0 por cada print() que imprime el $grupo en crearGrupo.pm. Código interfaz. Using perl Syntax Highlighting #!c:/perl/bin
use strict;
use warnings;
use Win32::GUI();
use Spreadsheet::Read; # Módulo Requerido por Excel.
use autodie; # Módulo requerido para finalizar programa en algunos casos.
use Data::Dumper; # Módulo para realizar algunas acciones.
use ConectarDB; # Módulo requerido para conectar a la base de datos.
use DBI;
use crearGrupo;
# Variables a necesitar #
my $font = Win32::GUI::Font->new(
-name => "Arial",
-size => 14,
);
## Pantalla principal ##
my $ventanap = Win32::GUI::DialogBox->new(
-name => 'Main',
-text => 'ventana1',
-pos => [ 350, 200 ],
-width => 600,
-height => 600,
-background => [153,0,0],
-pushexstyle => 2,
);
$ventanap->AddButton(
-name => "Button1",
-text => "Abrir",
-pos => [ 400, 150 ],
-size => [ 150, 35 ],
-onClick => \&buscarArchivo,
);
$ventanap->AddButton(
-name => "Button2",
-text => "Contactos",
-pos => [ 400, 250 ],
-size => [ 150, 35 ],
);
$ventanap->AddLabel(
-text => " Abrir archivo EXCEL: ",
-font => $font,
-pos => [ 70, 160 ],
);
$ventanap->AddLabel(
-text => " Contactos: ",
-font => $font,
-pos => [ 70, 260 ],
);
## Pantalla contactos ##
my $ventanaC = Win32::GUI::Window->new(
-name => 'Main2',
-text => 'ventana2',
-pos => [ 350, 200 ],
-width => 600,
-height => 600,
-background => [153,0,0],
);
$ventanaC->AddButton(
-name => "Button5",
-text => "Volver",
-pos => [ 430, 500 ],
-size => [ 130, 35 ],
);
$ventanaC->AddButton(
-name => "Button6",
-text => "AñadirContacto",
-pos => [ 20, 100 ],
-size => [ 150, 35 ],
);
$ventanaC->AddButton(
-name => "Button7",
-text => "AñadirGrupo",
-pos => [ 20, 150 ],
-size => [ 150, 35 ],
);
$ventanaC->AddButton(
-name => "Button8",
-text => "Eliminar",
-pos => [ 20, 200 ],
-size => [ 150, 35 ],
);
$ventanaC->AddButton(
-name => "Button9",
-text => "SeleccionarTodo",
-pos => [ 20, 300 ],
-size => [ 150, 35 ],
);
$ventanaC->AddButton(
-name => "Button10",
-text => "DeseleccionarTodo",
-pos => [ 20, 350 ],
-size => [ 150, 35 ],
);
my $EditFont = new Win32::GUI::Font (
-name => "Fixedsys",
-size => 12,
);
$ventanaC->AddTextfield(
-name => "Mostar",
-pos => [200, 50],
-size => [360, 400],
-multiline => 1,
-hscroll => 1,
-vscroll => 1,
-autohscroll => 1,
-autovscroll => 1,
-keepselection => 1 ,
-font => $EditFont,
);
## Pantalla Agregar Contacto ##
my $ventanaAG = Win32::GUI::DialogBox->new(
-name => 'Main3',
-text => 'Agregar Contacto',
-pos => [ 350, 200 ],
-width => 450,
-height => 400,
-background => [153,0,0],
);
my $labelag = $ventanaAG->AddLabel(
-text => "ESCRIBIR LA INFORMACION DEL CONTACTO",
-font => $font,
-left => 15,
-top => 30,
-foreground => 0x0000FF,
);
my $labelag1 = $ventanaAG->AddLabel(
-text => "Escribir información del grupo: ",
-font => $font,
-left => 30,
-top => 100,
);
my $labelag2 = $ventanaAG->AddLabel(
-text => "Ejemplo: pepe\@hotmail.com",
-font => $font,
-left => 30,
-top => 190,
-foreground => 0x0000FF,
);
$ventanaAG->AddTextfield(
-name => "TextFieldag1",
-left => 30,
-top => 150,
-width => 350,
-height => 30,
-readonly => 0,
-multiline => 1,
);
$ventanaAG->AddCombobox(
-name => "comboBoxag",
-left => 30,
-top => 250,
-width => 350,
-height => 30,
-dropdownlist => 1,
-vscroll => 1,
-onChange => \&loadInfo,
);
$ventanaAG->AddButton(
-name => "Button11",
-text => "Abrir",
-left => 300,
-top => 300,
-width => 30,
-height => 20,
);
$ventanaAG->AddButton(
-name => "Button12",
-text => "volver",
-left => 220,
-top => 300,
-width => 50,
-height => 20,
);
## Pantalla Crear grupo ##
my $ventanaCG = Win32::GUI::DialogBox->new(
-name => 'Main4',
-text => 'Agregar Grupo',
-pos => [ 350, 200 ],
-width => 400,
-height => 400,
-background => [153,0,0],
);
my $labelcg = $ventanaCG->AddLabel(
-text => "ECRIBIR LA INFORMACIÓN DEL GRUPO",
-font => $font,
-left => 15,
-top => 30,
-foreground => 0x0000FF,
);
my $labelcg1 = $ventanaCG->AddLabel(
-text => "Escribir información del grupo: ",
-font => $font,
-left => 30,
-top => 100,
);
my $labelcg2 = $ventanaCG->AddLabel(
-text => "Ejemplo: Grupo 1",
-font => $font,
-left => 30,
-top => 190,
-foreground => 0x0000FF,
);
$ventanaCG->AddTextfield(
-name => "TextFieldcg1",
-left => 30,
-top => 150,
-width => 350,
-height => 30,
-readonly => 0,
-multiline => 1,
);
$ventanaCG->AddTextfield(
-name => "TextFieldcg2",
-left => 30,
-top => 250,
-width => 350,
-height => 30,
-readonly => 0,
-multiline => 1,
);
$ventanaCG->AddButton(
-name => "Button13",
-text => "Añadir",
-left => 300,
-top => 300,
-width => 30,
-height => 20,
);
$ventanaCG->AddButton(
-name => "Button14",
-text => "volver",
-left => 220,
-top => 300,
-width => 50,
-height => 20,
);
$ventanap->Show();
Win32::GUI::Dialog();
exit(0);
## Terminar ventana ##
sub ventanap_Terminate {
return -1;
};
sub ventanaC_Terminate {
return -1;
};
sub ventanaAC_Terminate {
return -1;
};
sub ventanaCG_Terminate {
return -1;
};
## Métodos Botones ##
# Pantalla principal #
sub Button2_Click {
$ventanaC->Show();
return 0;
}
# Pantalla contactos #
sub Button5_Click {
$ventanaC->Hide();
return 0;
}
sub Button6_Click {
$ventanaAG->Show();
return 0;
}
sub Button7_Click {
$ventanaCG->Show();
return 0;
}
# Pantalla Agregar Contacto #
sub Button12_Click {
$ventanaAG->Hide();
return 0;
}
# Patanlla Agregar grupo #
sub Button13_Click {
my $texto = $ventanaCG->TextFieldcg1->Text();
print $texto,"\n";
crearGrupo->recibir($texto);
$ventanaCG->TextFieldcg2->Text("Listo!!!!!");
return 0;
};
sub Button14_Click {
$ventanaCG->Hide();
return 0;
};
## Metodos ##
sub buscarArchivo {
my $self = shift;
my $file = Win32::GUI::GetOpenFileName(
-owner => $ventanap,
-title => "Abrir archivo",
-filter => [
'Excel 2003 (*.xls)' => '*.xls',
'Excel 2007 (*.xlsx)' => '*.xlsx',
],
);
return 0;
}
y el código de crearGrupo es: Using perl Syntax Highlighting #!c:/perl/bin
package crearGrupo;
use DBI;
use ConectarDBcon; # Módulos requeridos por el programa.
use autodie;
use Modern::Perl;
sub recibir{
print "Estoy en new\n";
my $grupo = @_;
print $grupo,"\n";
return $grupo;
}
# Subrutina crearTabla.
sub crearTabla {
my($conexion,$tabla);
$tabla = $_[0];
$conexion = $_[1]; #Desde la llamada a la subrutina le pasamos la conexión a la base de datos. Desde la llamada sería la segunda variable que le pasamos.
eval {$conexion->do("CREATE TABLE $tabla (nombre VARCHAR(30), correo VARCHAR(100))")}; #Hacemos un eval, cuya función será dejar que la tabla se cree o no dependiendo de si existe,y desde la conexión a la base de datos hacemos crearemos la tabla si no existe ya.
if ($@) {
printf("La tabla existe \n") # Se captura el error si la tabla existe y nos dice que "La tabla existe".
}
}
#Subrutina comprobarDB.
sub comprobarDB {
my @databases = DBI->data_sources("mysql", {host => 'localhost', user => 'root', password => ''});# Cogemos la lista de bases de datos presentes en el sistema.
my $base_datos = 'contactos'; #Introducimos el nombre de la base de datos que queremos comprobar que está en la variable $base_datos.
my $dsn = "DBI:mysql:$base_datos"; # Conformamos el DSN de esa base de datos.
unless ($dsn ~~ @databases) { # Si el $dsn no está entre las @databases la creamos.
my $drh = DBI->install_driver("mysql"); # Carga del controlador mysql
my $rc = $drh->func("createdb", $base_datos, 'localhost', 'root', '', 'admin');# Creamos la base de datos.
}
}
# Conectar base de datos y mirar si existe.
&comprobarDB(); # Llamada a subrutina CompararDB.
my($conexion,$sth,$grupo); # Decalaración de las variables que utilizaremos a continuación.
$conexion = ConectarDBcon->connect(); # Conectamos con la base de datos desde el paquete ConectarDB y lo dejamos en la variable $dbh.
$grupo = &recibir();
#Leer datos.
print "$grupo\n";
#Crear.
&crearTabla($grupo, $conexion);
#Desconectar.
$conexion->disconnect;
1;
Si alguien ve cuál puede ser el fallo por el que se ejecuta el programa na más inciar la interfaz.
|
2011-09-16 11:29 @520 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
|
Te cuento qué es lo que está pasando...
En la línea 11 del interfaz estás dando la orden de la importación del espacio de nombres del módulo crearGrupo.
Perl busca, lee, y ejecuta el contenido de ese módulo.
Eso quiere decir que, aparte de la definición de todas las subrutinas, también ejecutará todo código ejecutable que encuentre.
Esto lo hace Perl por la siguiente razón: si, tras ejecutar el código del módulo, el resultado (la última instrucción ejecutada dentro del módulo) devuelve un valor positivo, entonces Perl asume que la carga ha sido correcta.
Como lo normal es que los módulos solo contengan definiciones de subrutinas, métodos y variables (ningún código directamente ejecutable), esa es la razón por la cual se coloca un '1;' como última línea del módulo, para que Perl acepte la carga del módulo.
Pero en tu caso... sí que hay código ejecutable: a partir de la línea 67 del módulo.
Esa es la razón por la cual sale el mensaje de "new": Perl está ejecutando ese trozo de código (la línea 75), cuando llega a la línea 11 del interfaz.
Algunas veces sí que es interesante que se ejecute código en el momento de la carga del módulo, como por ejemplo, código de inicialización.
Tu verás qué quieres que haga ese código, en ese momento.
En cuanto a los mensajes de los ceros, se produce por lo siguiente.
En la línea 75 del módulo, estás llamando a recibir(), sin ningún argumento. En las líneas 13 a 21 del módulo está ese método. En la línea 16 estás asignando el número de argumentos pasados a recibir() a la variable $grupo. Como no has pasado ninguno, el valor es cero, y eso es lo que imprime.
Repasa mi mensaje anterior.
_________________ JF^D Perl programming
|
2011-09-16 11:42 @529 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
|
Vale, una pregunta. Si yo uso use crearGrupo; eso significa que ya puedo usar todas las subrutinas y todo del módulo pero también leí en un tema, no me acuerdo muy bien cuál, que no hace falta cargar el módulo; simplemente realizando una llamada con system() o qx(), si no recuerdo mal. De esta manera, no ejecutaría el módulo y solo lo haría cuando yo pulsase el botón, ¿no?
|
2011-09-16 12:08 @547 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
|
Si usas system() o qx() (o do()) ya estás ejecutando el código.
Si lo que quieres es que esa parte del código se ejecute cuando pulsas un botón, lo que tienes que hacer es "encerrar" ese código dentro de un método, que será llamado por la subrutina del botón.
Si quieres ejecutar código en el arranque del módulo, puedes meter el código dentro del método especial BEGIN{}.
De esa manera, ya no queda código ejecutable suelto dentro del módulo, salvo el venerable '1;'.
Si haces un perldoc -f require verás el código al que se equivale require (que es otra versión de use), y verás que, después de localizar el módulo, lo carga y ejecuta con un do(). Y luego comprueba que el resultado de esa ejecución sea 'verdadero',
_________________ JF^D Perl programming
|
2011-09-19 05:49 @284 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
He intentado lo del BEGIN{} pero me dice en la línea 73 "BEGIN failed--compilation aborted" Using perl Syntax Highlighting #!c:/perl/bin
package crearGrupo;
use DBI;
use ConectarDBcon; # Módulos requeridos por el programa.
use autodie;
use Modern::Perl;
# Subrutina crearTabla.
sub crearTabla {
my($conexion,$tabla);
$tabla = $_[0];
$conexion = $_[1]; #Desde la llamada a la subrutina le pasamos la conexión a la base de datos. Desde la llamada sería la segunda variable que le pasamos.
eval {$conexion->do("CREATE TABLE $tabla (nombre VARCHAR(30), correo VARCHAR(100))")}; #Hacemos un eval, cuya función será dejar que la tabla se cree o no dependiendo de si existe,y desde la conexión a la base de datos hacemos crearemos la tabla si no existe ya.
if ($@) {
printf("La tabla existe \n") # Se captura el error si la tabla existe y nos dice que "La tabla existe".
}
}
#Subrutina comprobarDB.
sub comprobarDB {
my @databases = DBI->data_sources("mysql", {host => 'localhost', user => 'root', password => 'password'});# Cogemos la lista de bases de datos presentes en el sistema.
my $base_datos = 'contactos'; #Introducimos el nombre de la base de datos que queremos comprobar que está en la variable $base_datos.
my $dsn = "DBI:mysql:$base_datos"; # Conformamos el DSN de esa base de datos.
unless ($dsn ~~ @databases) { # Si el $dsn no está entre las @databases la creamos.
my $drh = DBI->install_driver("mysql"); # Carga del controlador mysql
my $rc = $drh->func("createdb", $base_datos, 'localhost', 'root', 'password', 'admin');# Creamos la base de datos.
}
}
# Conectar base de datos y mirar si existe.
BEGIN{
&comprobarDB(); # Llamada a subrutina CompararDB.
my $grupo = @_;
my($conexion,$sth); # Decalaración de las variables que utilizaremos a continuación.
$conexion = ConectarDBcon->connect(); # Conectamos con la base de datos desde el paquete ConectarDB y lo dejamos en la variable $dbh.
#Leer datos.
print "$grupo\n";
#Crear.
&crearTabla($grupo, $conexion);
#Desconectar.
$conexion->disconnect;
}
1;
|
2011-09-19 06:42 @320 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
No sé si he entendido bien lo que me dijiste, creo que sí. Hice esto: Using perl Syntax Highlighting sub init{
&comprobarDB(); # Llamada a subrutina CompararDB.
my $grupo = @_;
my($conexion,$sth); # Declaración de las variables que utilizaremos a continuación.
$conexion = ConectarDBcon->connect(); # Conectamos con la base de datos desde el paquete ConectarDB y lo dejamos en la variable $dbh.
#Leer datos.
print "$grupo\n";
#Crear.
&crearTabla($grupo, $conexion);
#Desconectar.
$conexion->disconnect;
}
# Subrutina crearTabla.
sub crearTabla {
my($conexion,$tabla);
$tabla = $_[0];
$conexion = $_[1]; #Desde la llamada a la subrutina le pasamos la conexión a la base de datos. Desde la llamada sería la segunda variable que le pasamos.
eval {$conexion->do("CREATE TABLE $tabla (nombre VARCHAR(30), correo VARCHAR(100))")}; #Hacemos un eval, cuya función será dejar que la tabla se cree o no dependiendo de si existe,y desde la conexión a la base de datos hacemos crearemos la tabla si no existe ya.
if ($@) {
printf("La tabla existe \n") # Se captura el error si la tabla existe y nos dice que "La tabla existe".
}
}
#Subrutina comprobarDB.
sub comprobarDB {
my @databases = DBI->data_sources("mysql", {host => 'localhost', user => 'root', password => 'password'});# Cogemos la lista de bases de datos presentes en el sistema.
my $base_datos = 'contactos'; #Introducimos el nombre de la base de datos que queremos comprobar que está en la variable $base_datos.
my $dsn = "DBI:mysql:$base_datos"; # Conformamos el DSN de esa base de datos.
unless ($dsn ~~ @databases) { # Si el $dsn no está entre las @databases la creamos.
my $drh = DBI->install_driver("mysql"); # Carga del controlador mysql
my $rc = $drh->func("createdb", $base_datos, 'localhost', 'root', 'password', 'admin');# Creamos la base de datos.
}
}
1;
y la llamada desde la interfaz: Using perl Syntax Highlighting sub Button13_Click {
my $texto = $ventanaCG->TextFieldcg1->Text();
print $texto,"\n";
crearGrupo->init($texto);
$ventanaCG->TextFieldcg2->Text("Listo!!!!!");
return 0;
};
No me crea todavía el grupo y cuando ejecuto me devuelve el nombre que puse en textfield y un 2 después; el nombre es del print() de la interfaz y el 2 será del print() del init(). Hay algo que estoy haciendo mal, pero no sé qué es.
|
2011-09-19 09:37 @442 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
|
Si es que he usado las tres opciones pero si uso my $grupo=@_; me escribe un 2; si uso my ($grupo)=@_; y my $grupo=shift; me escribe crearGrupo siempre, no el nombre que introduzco yo. ¿Puede ser por la llamada que hago desde la interfaz?
|
2011-09-19 11:26 @518 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10249
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
Cuando, en la línea 5, pones crearGrupo->init($texto); Perl mete en la pila de argumentos, el valor 'crearGrupo' y luego el de $texto. Por eso te sale un 2 cuando no pones paréntesis. Y te sale 'crearGrupo' cuando lo usas bien. Lo único que te falta es extraer el valor de grupo de forma correcta: Using perl Syntax Highlighting my $self = shift;
my $grupo = shift;
_________________ JF^D Perl programming
|
2011-09-23 09:45 @448 |
|
|
Txemaracas
Perlero Frecuente
|
Registrado: 2011-04-04 10:06 @462 Mensajes: 133
|
|
|
Re: Crear interfaz gráfica con Win32::GUI
|
Hola. Pongo esta duda por si alguien tiene alguna idea u opinión sobre qué hacer. Tengo la interfaz hecha pero me falta una cosa que me está dando muchos quebraderos de cabeza. Quiero poder mostrar los datos de los usuarios de la base de datos y poder seleccionarlos. El ejemplo que puse al principio es el de los correos de Hotmail. Se muestran los correos y al lado de cada uno un cuadradito para seleccionarlo. En este caso sería un RadioButton pero, claro, tengo problemas para mostrar los datos. Uso : Using perl Syntax Highlighting $ventanaC->AddTextfield(
-name => "Mostar",
-pos => [200, 50],
-size => [360, 400],
-multiline => 1,
-hscroll => 1,
-vscroll => 1,
-autohscroll => 1,
-autovscroll => 1,
-keepselection => 1 ,
-font => $EditFont,
-onResize => \&Notepad_OnSize,
);
y claro, con Using perl Syntax Highlighting $ventanaC->Mostar->Text("");
pero no sé cómo hacerlo para dividirlo en filas. He pensado también si poder hacer una tabla.
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|