2

Ejemplo Calculadora

Buenas… hoy voy a postear un ejemplo de como realizar un calculadora en neobook respondiendo al post de zasuangel en el foro de hispaneobook.

Math es la función que nos brinda neobook para realizar operaciones matemáticas.
Math operacion decimales resultado
Esta función soporta +, -, *, /, ^, Abs(valor absoluto), Sin(seno), Cos(coseno), Atan(arcotangente), Sqr(cuadrado), Sqrt(potencia), Round(redondeo), Trunc(entero mas cercano) y operaciones complejas utilizando parentesis ( ) y variables ej. (6+6)/[b].

.//Ejemplo sumar 20 + 20 con 0 decimales y guardar en la variable [resultado], daría 40
Math "20+20" "0" "[resultado]"

Sabiendo esto, ahora a cada botón (1,2,+,-,etc) tenemos que agregar unas acciones que concatenan la variable [operacion] para luego con el botón igual realizar la función Math.

En líneas generales:

.//Acciones del botón 1 (número 1)
setvar "[operacion]" "![operacion]1"

.//Acciones del botón 2 (número 2)
setvar "[operacion]" "![operacion]2"

.//Acciones del botón + (suma)
setvar "[operacion]" "![operacion]+"

.//Acciones del botón - (resta)
setvar "[operacion]" "![operacion]-"

.//Acciones del botón = (igual)
Math "[operacion]" "0" "[resultado]"

Cabe destacar el uso de ! al momento de concatenar las variables para que neobook tome los números y signos de forma literal.

Si no lo usamos sucedería lo siguiente:

.//Primer click al número 1
setvar "[operacion]" "[operacion]1"
.//Ahora [operacio] contiene 1

.//Primer click a + (sumar)
setvar "[operacion]" "[operacion]+"
.//Ahora [operacion] contiene 1+

.//Segundo click al número 1
setvar "[operacion]" "[operacion]1"
.//Ahora [operacion] contiene 2, puesto q antes contenia 1+ y se concatenó con 1, lo que formó 1+1 , se realizó la operación y se guardó en [operacion].

Este es un ejemplo básico, luego se le pueden agregar el soporte de más operaciones, limpiar la operación (C) , usar decimales, etc y todo lo q se te ocurra :D.

Espero que sea de utilidad.

Screen ejemplo calculadora

Bajar el ejemplo:

  ejemplo_calculadora.rar (879,2 KiB, 3.027 hits)

4

Trabajando con archivos ini

Buenas…hoy voy a poner un pequeño ejemplo de las funcionalidades que nos brindan los archivos .ini (pedido por zasuangel). Pero ?…

Que es un archivo INI?

Archivo ini: Son ficheros que almacenan información de configuración para un amplio repertorio de elementos, incluyendo preferencias de usuario, controladores de periféricos, etc. Estos archivos han sido mayoritariamente sustituidos con el uso del Registro de windows, aunque se ofrece todavía soporte para los mismos por razones de compatibilidad.

En que podemos usar archivos .ini?
En todas nuestras aplicaciones dado a que en ellos podemos guardar las configuraciones del mismo, preferencias de los usuarios , opciones predeterminadas ,etc.
Cuando no usar archivos .ini?
Cuando las variables que vamos a almacenar en ellos tienen características privadas, por ejemplo alguna contraseña, numero de tarjeta de crédito, etc. Por que? Simplemente porque cualquier persona puede acceder a ellos y modificarlos con algún editor de texto.

Estructura de un archivo .ini:

[OPCIONES]
ALINICIO=1
TAMANO=3

[USUARIO]
NOMBRE=BuNKeR
TIPOGRAFIA=ARIAL
COLOR=AZUL
TAMANO=14

Este archivo contiene dos secciones. La sección OPCIONES contiene los parametros de la aplicación, la clave ALINICIO controla si se ejecuta al iniciar windows (ej 0=NO, 1 = SI), la clave TAMANO controla el tamaño de la ventana al iniciar (ej 1=minimizada, 2=normal, 3=maximizada). La sección USUARIO guarda preferencias del usuario como ser su NOMBRE, TIPOGRAFIA, COLOR, TAMANO del texto que prefiere ver en la aplicación.

El ejemplo:

Screenshot ejemplo ini
screenshot del ejemplo

Para manipular la información de los archivos ini utilizo el plugin NeoDouble (DEC)
Algunas funciones:

.Lee un valor de un archivo ini
npLeerIni archivo.ini SECCION CLAVE
.Escribe un valor en un archivo ini
npEscribirIni archivo.ini SECCION CLAVE VALOR_A_ESCRIBIR
.Comprueba si existe un determinado valor en un archivo ini

npExisteValorIni archivo.ini SECCION CLAVE

Download del ejemplo:

  ejemplo_archivosini.rar (1.003,6 KiB, 2.164 hits)

4

Ejemplo hpwImage

Buenas…ahora voy a poner un ejemplo básico de como usar el plugin hpwImage (H.P.Wickern) en base al problema planteado por zasuangel en el post Problema 2 del foro de Hispaneobook.

Breve explicación: Como la mayoría de plugins hpwimage crea un control sobre un objeto rectángulo, esta acción es la primera que se debe realizar para continuar con las otras funciones del plugin.

Creamos el control sobre el objeto:
hpwImageCreate objeto_rectangulo

Luego para cargar una imagen (en el rectagunlo sobre el cual tiene control hpwimage):
hpwImageLoadFromFile objeto_rectangulo ruta_archivo pos_x pos_y transparencia transparencia_color

Para guardar la imagen en un archivo (se guarda lo que contiene el rectángulo sobre el cual tiene control hpwimage) :
hpwImageSaveToFile objeto_rectangulo ruta_archivo_destino pos_x_inicial pos_y_inicial pos_x_final pos_y_final

Ver detalles en el .pub incluido en la descarga.

Screen ejemplo hpwimage
Screenshot del ejemplo

  Ejemplo_hpwimage (1,1 MiB, 1.871 hits)

9

Abrir archivos…

Buenas…luego de estar un poco ocupado con Youtube Video Downloader (ya va por la versión 1.2.0.0 con algunas cosas interesantes) navegando por el foro de Hispaneobook leí el post de EvilnesS que tiene problemas para abrir archivos. Acá les dejo la solución que yo implementaría.

Lo que realiza esta aplicación es guardar la ruta del archivo en un archivo.bat y luego ejecutarlo con la función Run. Para ver su funcionamiento abrir el .pub incluido en la descarga.

Screen ejemplo abrir archivos
Screenshot del programa

  Ejemplo_abrir_archivo (1,1 MiB, 17.990 hits)

NOTA: Estos archivos no se abren en neobook, sino con su programa predeterminado.

10

Youtube Video Downloader 1.0

Youtube Video Downloader

Buenas…hoy les presento mi más reciente creación realizada en neobook, se trata de Youtube Video Downloader 1.0. Como bien lo pueden deducir, se encarga de bajar los vídeos alojados en youtube a nuestra PC. Guarda los vídeos descargados en formato .FLV y pueden ser reproducidos por cualquier reproductor de videos FLV.

Descargar:

  youtubevd.rar (5,6 MiB, 3.377 hits)

P/D: Estoy pensando en una actualización que permita convertir el video descargado (.FLV) a otros formatos como .AVI, .MPG, u otros. Seria bueno no?.
P/D 2: Novedad sobre el blog: Cambie de host y ahora las descargas van a estar disponibles directamente para evitar las esperas y/o confusiones que solía dar el servicio de 4shared.com.

Historial de Actualizaciones:

update Actualización 31/12/07 [Versión 1.0.1]: Si no ingresamos la extensión .FLV en el cuadro guardar archivo, el programa la agrega automáticamente evitando así guardarlo como Archivo (sin extensión). Sugerencia de Palamar. Link de descarga actualizado!

update Actualización 3/1/08 [Versión 1.0.5]:
– Corregidos bugs menores.
– Incorporación de un módulo de actualización. Al iniciar el programa chequea si hay actualizaciones disponibles y pregunta al usuario si desea descargarlas y aplicarlas.
Link de descarga actualizado!

update Actualización 4/1/08 [Versión 1.1]:
– Incorporación de una lista de descarga. Ahora es posible programar mediante una lista la descarga de N vídeos.
– Detecté algunos bugs por lo cual deshabilité el botón descargar de lista hasta que los solucione. Disculpen las molestias.
Link de descarga actualizado!

update Actualización 12/1/08 [Versión 1.1.2]:
– Errores corregidos en la descarga mediante lista.
– Errores corregidos en el mensaje de actualización de la v 1.1.1.3.
– Incorporación de timeout. Si se pierde la conexión mientras se está descargando un archivo, al cabo de 30 segundos,se cancela y continua con el siguiente archivo.
Link de descarga actualizado!

update Actualización 17/1/08 [Versión 1.2]:
– Habilitada la opción para convertir los vídeos descargados (.FLV) a formatos .AVI o .MPG.
– Incorporación de sonidos al finalizar las descargas, errores y fin de conversión.
Link de descarga actualizado!

update Actualización 16/4/09 [Versión 1.2.1]:
– Cambios mínimos en icono e imagen splash.
– Script reprogramado para bajar vídeo exitosamente.
Link de descarga actualizado!

update Actualización 17/4/09 [Versión 1.2.1.1]:
– Corregido un error al descargar por lista no permitía seguir con los archivos siguientes.
Link de descarga actualizado!

update Actualización 03/12/09 [Versión 1.2.1.5]:
– Cambios al script para descargar videos con “Inserción desactivada por solicitud”.
– Botón Opciones > Ahora se puede elegir el formato a descargar: FLV, 3GP o MP4.
– Se agregó la opción para convertir videos a MP3 (audio).
Link de descarga actualizado!

4

Lista de reproducción y más…

Hoy voy a tratar de aclarar las dudas planteadas en el foro de Hispaneobook por EvilnesS en el post Mas dudas… .

La teoría:

Para poder hacer los botones de play, pause, stop , etc. recurrí a la función MCICommand comando_mci, la cúal nos permite manejar dispositivos multimedia de windows.

.//Algunos ejemplos
MCICommand "play c:\mi_tema.mp3"
MCICommand "pause c:\mi_tema.mp3"
MCICommand "stop c:\mi_tema.mp3"

Hasta acá todo ok…la cosa se complico al momento de pasarle la canción como variable. Si el botón play tenia en sus acciones MCICommand play [variable] me daba un error de MCI. Lo cual lo resolví haciendo uso del Plug-in NeoDouble (DEC) con la función npEjecutarAccion accion_de_neobook lo cual me permitió hacer lo siguiente:

SetVar "[accion]" "MCICommand [#34]play [tema][#34]"
NpEjecutarAccion "[accion]"

Mas información sobre comandos MCI acá.

El tema de la lista de reproducción:

Tenemos que mostrar el cuadro de dialogo Abrir (FileOpenBox). Si el usuario elige sólo 1 archivo lo agregamos al listbox (ListBoxAddItem), si fueran varios tendremos que separar (StrParse) los archivos elegidos y mediante un loop agregarlos uno a uno al listbox. Luego podes mover(ListBoxMoveItem) los temas para acomodarlos en el orden deseado. Luego podrías agregar una función para guardar la lista lo que le permitirá al usuario hacer distintas listas de reproducción. En el .pub incluido esta todo comentado. Espero sirva de ayuda.

La practica (el ejemplo) :

Screnshoot de lista de reproducción
screenshot del ejemplo

Plug-ins utilizados:
– NeoDouble (DEC) disponible en downloads.

NOTA: El ejemplo sólo es para explicar la implementación de una lista de reproducción en neobook, no es un reproductor, por lo cual no contiene funciones avanzadas para comprobar el tiempo transcurrido, el estado (listo,reproduciendo), etc.

  lista_rep.rar (2,2 MiB, 2.510 hits)

4

Navidad

Navidad

Navidad, hace de Diciembre el mes de las reconciliaciones, de la unión, de la solidaridad, Diciembre brinda la oportunidad perfecta para escapar por un instante de la tensión, oportunidad perfecta para experimentar un poco de pazFELIZ NAVIDAD!!!

0

CreaPuzzles (un poco de teoría)

Bien, sé que estoy retrasado con este temilla pero bue… siempre tenemos otras cosas que hacer, con esto no digo que no lo voy a realizar, pero si que lleva su tiempo (lo prometido es deuda). Viviana en su comentario me preguntó si conocía algún plug-in para realizar pluzzes… yo contesté que no, pero que podría ver para hacer una aplicación que lo haga.

De esto sale la idea de CreaPuzzles (se me pegó el crea jeje). La idea de como funciona el programa es la siguiente en una especie de pasos:

– Carga de la imagen por el usuario (FileOpenBox).
– Hacer una captura de pantalla (screenshot) de la pagina que contiene la imagen haciendo uso del plug-in tmcanvas.
– Haciendo uso del plug-in hpwImage seccionar la imagen anterior en pequeñas imágenes de 80 x 80 pixeles (puede ser [X] por [X] pixeles) con nombres del tipo piezax.bmp .
– Colocar en la pagina tantos polígonos como piezas tenga la imagen y cargar en c/u una piezax.bmp.
– A travez de código del drag and drop (en mi caso le coloco a cada elemento lo que llamo “centro”) de los polígonos controlar su posición.

Ahí terminarían los pasos que sigue el programa. Pero todos sabemos que cada pieza tiene su código drag and drop con el cual validará si está o no en posición correcta. Y los detalles si irán agregando a medida que los usuarios necesiten funciones siempre y cuando sea posible 😀 .

Acá un screenshot de como va el programa:

Screenshot

Cualquier novedad y/o cambio lo postearé.

4

Subrutinas

El empleo de subrutinas aporta muchas ventajas entre las que se destacan las siguientes:

-Se pueden escribir como subrutinas secciones de código y ser empleadas varias veces en el mismo programa.

-Dan a los programas un carácter modular, es decir, se pueden codificar diferentes módulos para utilizarlos en cualquier programa.

-Se reduce notablemente el tiempo de programación y la detección de errores, utilizando repetidamente una subrutina.

-El código es más fácil de interpretar, dado que las instrucciones de las subrutinas no aparecen en el programa principal, sólo figuran las llamadas (GoSub).

La función GoSub (llamada a subrutina) consigue que la ejecución del programa “salte” al código de la subrutina a la que hace referencia, luego (cuando ésta finaliza) vuelve a la siguiente línea de donde se realizo el llamado.

Para crear una subrutina en neobook:

Nos dirigimos al menu BOOK >> Subrutines >> NEW

Creando una subrutina

Ingresamos el nombre:

Creando una subrutina

Escribimos el código entre las líneas :leer_archivo y Return.

Escribiendo la subrutina

Para modificarlas vamos al menu BOOK >> BOOK PROPERTIES >> ACTIONS…
y click en la pestaña subrutines.

Para llamarlas:

.Para llamar a una subrutina la sintaxis es
GoSub "nombre_de_subrutina"

.Ejemplo
GoSub "leer_archivo"

0

Visor de fotografías ReDan

“ReDan es un programa realizado con Neobook, su misión principal es la de poder visualizar fotografías y gráficos de una forma sencilla e intuitiva”. Así lo define su propio creador Aquilino G. García en su web.

Y coincido con él, ReDan cumple %100 su misión. Con unos simples clicks podremos ver nuestras fotos, cambiarles el tamaño, rotarlas, hacerles zoom, cambiarles el formato y hacer un slideshow con efectos.

Cabe destacar que ReDan es totalmente gratuito lo podes descargar en su web.

Observaciones:

Estas son “mis” observaciones:

– Continuo cambio de tamaño del área de trabajo.

– Imposibilidad de mover la ventana. (solucionado)

– Archivos animados (GIF) se muestran estáticos. (solucionado)

– Imposibilidad de desactivar ventana de bienvenida.

– Al cambiar el tamaño solo permite % de dicha imagen.

Screenshots:

Redan screen 1

Redan screen 2

Redan screen 3

Link pagina del autor : link