|
|
|
El Comando Dialog
Este comando creará una ventana de diálogo totalmente independiente de la tarea que el mIRC esté realizando en ese momento, es decir que mientras la ventana de diálogo permanece abierta usted podrá acceder a las otras ventanas del mIRC (cosa que no pasaba con los diálogos $?, $dir,... etc). Para mostrar en pantalla un diálogo, usaremos la sintaxis: /dialog [–mda] <nombre_dialogo> <nombre_tabla>
Donde <nombre_dialogo> es aquel con el que usted se referirá al mismo, y <nombre_tabla> es el nombre de una tabla de diálogo que usted tendrá que declarar más adelante y en la que diseñará su aspecto, dimensiones y contenido (posición de los botones, botones de radio,... etc).
Nota: Se puede, y de hecho es recomendable, usar el mismo nombre para el nombre del diálogo y para la tabla, para evitar posteriores confusiones.
A continuación tiene una explicación de la función de los tres parámetros disponibles, tenga en cuenta que el parámetro -m es obligatorio y sin él no se creará nuestra ventana de dialogo:
-m: Es el parámetro que usará normalmente, sirve para crear una ventana de diálogo sin ningún atributo, es decir que todos los atributos (título, tamaño...) serán especificados en la tabla del diálogo.
Ejemplo:
/dialog –m midialogo mitabla
-ma: Crea una ventana de diálogo sin atributos (como la anterior) pero además usa la ventana activa como “madre”, es decir que al cerrar la “ventana madre” se cerrará también la que hemos creado.
Ejemplo:
/dialog –ma midialogo mitabla
-md: Crea un diálogo sin atributos (puesto que lleva el parámetro -m) y lo abre como ventana de escritorio (será mostrada en la barra de tareas inferior de Windows).
Ejemplo:
/dialog –md midialogo mitabla
Una vez creado, podemos volver a usar el comando /dialog, pero esta vez para cambiar alguna de sus propiedades, y con la sintaxis:
/dialog [-tsonkc] <nombre_dialogo> [atributos]
Y dependiendo del parámetro que especifique en [-tsonkc], usaremos unos atributos u otros (o a veces ninguno):
-x: Cierra una ventana de diálogo.
Ejemplo:
/dialog –x midialogo
-t: Cambia el título de una ventana de diálogo.
Ejemplo:
/dialog –t midialogo Este es el nuevo título
-s: Cambia el tamaño y la posición del diálogo en base a las coordenadas y dimensiones que se especifiquen:.
Ejemplo:
/dialog –s midialogo 10 20 300 400
Nota: Recuerde la definición de “rectángulo” en el tutorial de ventanas de imagen, el ejemplo de arriba pondrá la esquina superior izquierda del diálogo en las coordenadas x(10) y(20) y le dará un tamaño de 300 pixels de largo por 400 de alto.
–o: Pone el diálogo encima de todas las ventanas que tenga abiertas (on top), y sigue estando encima aunque pulse fuera de ella.
Ejemplo:
/dialog –o midialogo
-n: Quita el atributo “on top” de un dialogo, es decir que ya no estará permanentemente encima de todas las ventanas.
Ejemplo:
/dialog –n midialogo
-k: Provoca el efecto de pulsar el botón “ok” de un diálogo. Por defecto, el efecto de este botón es simplemente el de cerrar el dialogo, pero más adelante veremos que le podrá asignarle más funciones.
Ejemplo:
/dialog –k midialogo
-c: Provoca el efecto de pulsar en un botón “cancelar” de un diálogo, que por defecto es exactamente el mismo que el de un botón “ok”, pero al igual que en el anterior, se podrá modificar.
Ejemplo:
/dialog –c midialogo
Vista la creación de ventanas de diálogo, ahora el tema será como crear las ya nombradas “Tablas de diálogo
TABLAS DE DIÁLOGO
Como hemos visto anteriormente en la creación de diálogos, es necesario especificar el nombre de una tabla en la que definiremos el título, tamaño y objetos que habrá en el mismo. En está sección usted aprenderá a crear tablas de diálogo revisando todas las posibilidades que nos ofrece el mIRC. La declaración de tablas de dialogo se hace en la sección Remotes, y de la siguiente forma:
DIALOG <nombre_tabla> {
..........
}
Todo lo que hemos hecho es decirle al script que existe una tabla de diálogo de nombre "nombre_tabla”, pero para que esta sea válida tendremos que incluir en ella la declaración de 3 cosas imprescindibles: El título del diálogo (que aparecerá en la barra de título del mismo), el tamaño y posición del dialogo (en el formato x y w h ), y al menos un botón de tipo “ok” o “cancel” para cerrar el diálogo. Para ello escribiremos lo siguiente:
Dialog mitabla {
title “Aquí el título”
size <x y w h>
button “Texto_del_botón”,<ID>,<x y w h>,<estilo>
}
Donde dice x y w h recuerde que ha de poner las coordenadas que definen el rectángulo al que se refiere: posición de la esquina superior izquierda del dialogo (x,y), longitud (w) y altitud (h) en pixels. Donde dice “ID” se refiere a un número que asignaremos a cada objeto que añadamos a la tabla, ese número nos servirá más adelante para referirnos a ese objeto, por lo tanto no se puede repetir la misma ID en dos objetos dentro de una misma tabla. Y por último el estilo, al tratarse de un botón, en este caso será uno de los siguientes:
-
ok: Crea un botón que cierre el dialogo al pulsarlo
-
cancel: Crea un botón que también cierra el dialogo al pulsarlo.
-
default: Crea un botón que no cierra el dialogo, le podremos asignar otra función más adelante.
Antes de entrar en el resto de objetos que podrá usar, veamos este pequeño ejemplo para que vaya entendiendo el funcionamiento de las tablas, copie lo siguiente en Aliases:
/Dialogo { dialog –m midialogo mitabla }
Copie esto otro en Remotes:
dialog mitabla {
title "Hola Mundo!!"
size 20 20 120 100
button "¡¡Adiós!!",1,20 20 80 50,ok
}
Si ahora escribe el alias (que puede ser mediante un popups o escribiéndolo en la línea de comandos) que acaba de crear: "/dialogo", verá como le aparece una ventana con el título que ha especificado y con un botón de tipo “ok” (cierra el dialogo al pulsarlo) , las coordenadas y tamaño de la misma serán: “20 20 100 100”.
A continuación veremos ya la relación de objetos que podemos declarar en una ventana de dialogo:
title “Título”
Como hemos visto en el ejemplo anterior, el texto que pongamos entre “ “ será el texto que salga en la barra de título del dialogo.
size x y w h
Indica la posición y tamaño del diálogo. Si indicamos el valor ‘-1’ para x e y, el diálogo aparecerá centrado en la pantalla.
text “Texto”,ID,x y w h,estilo
Pon el texto que indiquemos en las coordenadas x y w h. Recuerde que a cada objeto que ponga en el diálogo le ha de asignar un número ID, el que usted
quiera para después referirse a ese objeto más adelante. El estilo es opcional, si no se especifica ninguno el texto estará alineado a la izquierda del rectángulo “x y w h”, los estilos que puede utilizar son:
edit “Texto inicial”,ID,x y w h,estilo
Inserta una caja de texto en el lugar indicado, con una posición y tamaño dados en “x y w h”, y con uno de los estilos siguientes:
<en_blanco> : si no especifica ningún estilo: campo de texto normal con el texto inicial alineado a la izquierda.
-
right: alinea el texto inicial a la derecha.
-
center: centra el texto inicial.
-
multi: crea un campo de texto con múltiples líneas, para ello además de especificar este estilo tendrá que hacer el campo más alto (aumentar el valor ‘h’).
-
pass: útil para introducir passwords, trasforma cada carácter que escribamos en el campo en un asterisco (*).
-
read: para que el campo sea solo para mostrar información al usuario, es decir que el texto que pongamos en ese campo no podrá ser modificado por el usuario.
-
hsbar: pone una barra de desplazamiento horizontal en la parte inferior.
-
vsbar: pone una barra de desplazamiento vertical a la derecha.
-
autohs: hace que el campo se desplace automáticamente en horizontal cuando introduzcamos un texto que ocupe más que el tamaño de la caja de texto.
-
autovs: hace que el campo se desplace automáticamente en vertical cuando introduzcamos un texto que ocupe más que el tamaño de la caja.
button “Texto del botón”,ID,x y w h,tipo
Crea un botón en cuyo interior ponga el texto que especifiquemos, y lo posiciona en las coordinadas x,y con un tamaño de ‘w’ pixels de largo por ‘h’ de alto. Los tipos posibles son:
-
ok: Al pulsar el botón se cerrará el diálogo.
-
cancel: Al pulsar el botón se cerrará el dialogo.
-
default: Al pulsar el botón no se cierra el diálogo, especificaremos la función de este tipo de botones más adelante.
check “Texto”,ID,x y w h,estilo
Crea un botón “checkbox” o botones de selección de opciones (sirven principalmente para activar/desactivar algo) en las coordenadas y con el texto especificado. Los estilos posibles son:
-
right: el texto se coloca a la derecha del checkbox.
-
left: el texto se coloca a la izquierda del checkbox.
-
3state: pone un checkbox de 3 estados (pulsado, no pulsado, e intermedio).
-
push: pone un tipo especial de checkbox que en vez de con casillas pulsables, se hace mediante botones que permanecen pulsados.
radio “Texto”,ID,x y w h,estilo
Crea un botón de radio (sirven para elegir entre una entre varias opciones) en las coordinadas “x y w h” y con el texto “Texto”. Los estilos posibles son:
-
right: el texto se coloca a la derecha del botón de radio.
-
left: el texto se coloca a la izquierda del botón de radio.
-
push: pone un tipo especial de botón de radio hecho a base de botones estándar.
box “Titulo”,ID,x y w h
Crea un rectángulo con el titulo, posición y tamaño especificados, se suele usar para enmarcar grupos de objetos, por ejemplo grupos de botones de radio.
list ID,x y w h,estilo
Crea una lista de objetos en las coordinadas especificadas (siempre relativas a la ventana de diálogo) en la que se podrán elegir uno o más objetos a la vez de la lista dependiendo del estilo. El cómo añadir mas objetos a la lista lo veremos más adelante. Los estilos posibles son:
<en_blanco>: si no especificamos estilo, se crea una lista en la que solo podemos seleccionar un objeto a la vez y el órden de estos será el mismo en que los añadamos mas adelante.
combo ID,x y w h,estilo
Crea una lista de objetos en la que solo se podrá elegir uno de ellos, en las coordenadas especificadas. Los estilos posibles son:
-
sort: ordena los objetos de la lista por orden alfabético.
-
edit: pone una editbox arriba de la lista. Al pulsar en un objeto de la lista éste aparece en la editbox y puede ser editado.
-
drop: pone un recuadro en el que al pulsar aparecerá la lista de objetos.
icon ID,x y w h,[archivo]
Inserta una imagen en formato .bmp en las coordenadas que indiquemos. Si los valores ‘w’ y ‘h’ no coinciden con el tamaño de la imagen, ésta será estrechada o ensanchada al tamaño que hayamos especificado, el parámetro archivo no hace falta especificarlo ahora, lo podrá hacer más adelante.
Hasta aquí todos los objetos que puede poner en un diálogo. Adicionalmente a los estilos que se han comentado, cualquier objeto puede además contar con los siguientes:
-
disable: Inhabilita en objeto.
-
hide: Esconde el objeto.
-
group: Indica el comienzo de un grupo, útil para marcar el comienzo de un grupo de botones de radio, para ello en el primer botón del grupo indicaremos el estilo “group”.
-
result: Indica que el contenido de este objeto será el resultado que devuelva el dialogo al pulsar el botón “ok”. Solo se usa cuando el diálogo lo abrimos mediante el identificador $dialog (explicado más adelante).
Una cosa importante que debe saber es que se pueden especificar VARIOS estilos a la vez con solo ponerlos separados con comas, por ejemplo:
edit “Texto”,4,10 10 100 20,autohs,right
Nota: En la declaración de objetos puede usar variables, es decir podrá, por ejemplo, mostrar en un campo de texto el valor de una variable.
Ya hemos visto todos los tipos de objetos que podrá usar a la hora de crear una tabla de diálogo, por supuesto no usará todos estos tipos en el mismo diálogo, aunque podría hacerlo si quisiera... antes de seguir vamos a hacer un ejemplo de una ventana algo más complicada ya que con lo que sabemos hasta ahora es posible crear la interfaz gráfica de cualquier ventana de diálogo imaginable, lo próximo será proporcionar función habilidad a cada uno de los objetos... pero antes, lo dicho, vamos a un ejemplo: Copie lo siguiente en Aliases:
/Dialogo2 { dialog –m dialogo2 mitabla2 }
Y ahora copie lo siguiente en Remotes:
dialog mitabla2 {
title "Qué información se muestra dónde"
size 30 30 330 260
box "Mostrar información",1,10 10 150 100
radio "En Status",2,20 30 130 20,right,group
radio "En Ventana aparte",4,20 80 130 20,right
box "Otras opciones",5,170 10 150 100
check "Mostrar Nombre",6,180 30 130 20,push
check "Mostrar E-Mail",7,180 55 130 20,push
check "Mostrar Web",8,180 80 130 20,push
box "Datos",9,10 115 310 100
text "Su Nombre:",10,20 135 100 20
text "Su E-Mail:",11,20 160 100 20
text "Su Web:",12,20 185 100 20
edit "",13,100 135 180 20
edit "",14,100 160 180 20
edit "",15,100 185 180 20
button "Mostrar Información",16,40 225 130 25,ok
button "Cancelar",17,190 225 90 25,cancel
}
No se va a comentar el código línea por línea puesto que sería repetir lo ya explicado, pero una vez leído y probado (usando el alias "/dialogo2") se debe haber dado cuenta de unas cosas importantes:
-
Cada objeto tiene su ID, en este ejemplo se van numerando de 1 a N siendo ‘N’ el numero total de objetos, de esa forma más adelante nos será más fácil acordarnos de la ID de un objeto.
-
Cuando el texto inicial de, por ejemplo, un campo de texto queremos que sea nulo, es decir, que no haya texto inicial, se especifican las comillas vacías “”.
-
Al pulsar en uno de los botones de radio, el resto quedan sin pulsar, esto se ha conseguido indicando en el primero de ellos el estilo “group”. Si hubiera otro grupo de botones de radio en otra sección del diálogo haríamos lo mismo, indicaríamos en el primer botón el estilo group.
-
El uso de “box” da un aspecto más agradable al diálogo, su uso esta muy recomendado para encuadrar objetos del mismo tipo o tema.
El identificador $dialog
Este identificador puede ser usado de varias maneras. Si en una tabla de un diálogo especificamos en unos de los objetos el estilo"result", y después creamos un diálogo usando este identificador, el valor que nos devolverá el identificador será el mismo que el de ese objeto cuyo estilo es "result". Para crear un diálogo con este identificador usaremos la sintaxis:
$dialog(<nombre_dialogo>,<nombre_tabla>)
Pero por supuesto siendo un identificador no puede usarse independientemente (como si fuera un comando) puesto que devuelve un valor que debemos de recoger, lo tendremos que utilizar para darle un valor a una variable, por ejemplo: %resultado = $dialog(midialogo,mitabla).
También podemos usar este identificador sencillamente para obtener el nombre de los diálogos abiertos en este momento, para ello usaremos la sintaxis:
$dialog(<nombre_dialogo>/<N>)
Devolverá el número de diálogo en caso de que especifiquemos un nombre, o el nombre del diálogo abierto número <N> en caso de que optemos por especificar ese parámetro. Ejemplo: %variable = $dialog(3)
Le da a %variable el valor del nombre del tercer diálogo que tengamos abierto en ese momento.
Y el último uso del identificador $dialog es para recoger información general de un diálogo, como su tamaño o su título:
-
$dialog(<nombre>).x: Devuelve la posición en el eje X del diálogo.
-
$dialog(<nombre>).y: Devuelve la posición en el eje Y del diálogo.
-
$dialog(<nombre>).w: Devuelve la longitud en pixels del diálogo.
-
$dialog(<nombre>).h: Devuelve la altitud en pixels del diálogo.
-
$dialog(<nombre>).title: Devuelve el título del diálogo.
-
$dialog(<nombre>).modal: Devuelve $true si el diálogo ha sido creado con el identificador $dialog, o $false si el diálogo ha sido creado con el comando /dialog.
-
$dialog(<nombre>).table: Devuelve el nombre de la tabla que está usando el diálogo.
-
$dialog(<nombre>).ok: Devuelve la ID del botón con estilo “ok”.
-
$dialog(<nombre>).cancel: Devuelve la ID del botón con estilo “cancel”.
-
$dialog(<nombre>).result: Devuelve la ID del botón que tenga como estilo “result”.
|
|
|
|
|
|
|
Hoy habia 18 visitantes (32 clics a subpáginas) ¡Aqui en esta página! |
|
|
|
|
|
|
|