13

Ejemplo paint con flash y neobook

Hace algunos días recibí un mail en el cual me preguntaban si se podía hacer una aplicación similar al paint de windows con neobook. De poder se puede, esto depende de nuestra imaginación, destreza y bolsillo 😆 .

Sin dudas el mejor plugin para este caso es rtImageFX (RonMarie). Dado que no todos pueden o quieren comprar dicho plugin podemos programarlo con flash y luego incluirla en nuestra aplicación.

Toda la interfaz de dibujo esta realizada en flash, existe un solo botón en neobook que guarda la imagen en formato jpg donde el usuario lo desee.
No voy a explicar el código de flash, pues no es mi especialización pero basta con decirles que programé el ejemplo leyendo la ayuda.

Cabe destacar que este es un ejemplo básico se pueden agregar mas colores, herramientas, etc. ustedes pueden modificarlo libremente para adaptarlo a sus necesidades.

Screenshots del ejemplo

Interfaz del programa

Imagen luego de guardar

Plugins utilizados:

tmCanvas (TechMedia Software)
hpwImage (H.P.Wickern)

Descarga (incluye los códigos fuente)

  ejemplo_paint.rar (1,9 MiB, 3.609 hits)

NOTA: El .fla del ejemplo esta en formato Flash CS3.

.Fla Versión Flash MX 2004 (decompilada): ➡ http://www.neobookeros.com.ar/wp-content/files/paint_flash_mx2004.fla

.Fla Versión Flash 8 (guardada desde original): ➡ http://www.neobookeros.com.ar/wp-content/files/paint_flash_8.fla

3

1 Botón Varias Acciones

Hoy después de mucho tiempo inactivo voy a postear una entrada que si bien la tenia pensada no me daba tiempo hacerla.

En la entrada anterior (Usando Botones Invisibles) mostraba como ejecutar acciones de distintos botones con la misma tecla de acceso directo. Pues bien esto es algo parecido, pero utilizando 1 solo botón.

Para esto utilizo la variable [FocusedObject] que contiene el nombre del objeto que tiene foco en ese momento, luego en las acciones del botón con un If logro realizar las acciones que yo quiera para ese objeto al presionar el acceso directo a ese botón (que yo lo puse oculto).

Ejemplo código acciones del botón:

if "[accion]" "=" "ListBox1"
   ListBoxGetItem "[FocusedObject]" "[ListBox1]" "[texto]"
   AlertBox "Prueba" "[texto]"
endif

if "[accion]" "=" "ListBox2"
   ListBoxGetItem "[FocusedObject]" "[ListBox2]" "[texto]"
   MessageBox "Prueba" "[texto]" "Aceptar" "[resultado]"
endif

if "[accion]" "=" "TextEntry1"
   StickyNote "-1" "-1" "[TextEntry1]" "0"
endif

Miren el ejemplo y cualquier cosa preguntan.

Saludos

Screenshot del ejemplo

Prueba el ejemplo: Da foco a los distintos objetos y presiona Enter para ver que pasa.

Descargar:

  ejemplo_boton_varias_acciones.rar (656,8 KiB, 2.034 hits)

P/D: Tambien dejo disponible la descarga del ejemplo (con las correcciones) enviado por apoleo para la entrada anterior. Recomendable de ver.

  formularios.rar (2,9 KiB, 1.774 hits)

4

Usando Botones Invisibles

Hola! hoy voy a poner un ejemplo de como usar botones invisibles, esto es necesario y muy útil cuando queremos (o tenemos) varios botones que tienen que responder a la pulsación de cierta tecla (ej ENTER) o cuando queremos que el usuario controle el programa con el teclado.

Básicamente lo que hago en el ejemplo es insertar el botón, le ingreso un shortcut del teclado y lo pongo invisible en sus propiedades (aspecto y estado inicial). Luego al llamar al contenedor (formulario) los vuelvo visibles para que al presionar la tecla shortcut se ejecuten las acciones correspondientes (pero siguen invisibles). Se entendió?. Pues échenle un vistazo al ejemplo y cualquier duda consultan. Saludos

Screenshot del Ejemplo:

Screenshot

Descargar:

  ejemplo_botones_invisibles.rar (788,4 KiB, 2.256 hits)

2

El cierre de DAMANEO

Haciendo la clásica recorrida por los sitios referidos a neobook me di con la entrada El adiós a DAMANEO en la cual nuestros colegas nos informan el porque del cierre. Pues podrías leerla y compartir la despedida.

últimamente la comunidad neobookera de habla hispana está sufriendo importantes bajas en materia de ayuda al usuario. La pregunta es… Cuanto mas sobreviviré yo?…

0

Ejemplo acople de ventanas

Esta entrada sería la secuela de la anterior 😛 . Si así es porque es muy parecido (99% igual). Con la entrada anterior podías mover la ventana desde una zona definida por nosotros, con este vemos como podemos “acoplar las ventanas (customwindow)” y moverlas todas al mover la principal.

Que mejor inspiración que el programa winamp que lo hace perfectamente. Explicación?…pues si entendiste el ejemplo anterior lo entenderás perfectamente a este.

Screenshot del ejemplo:

Plugins utilizados:

Descarga del ejemplo:

  Ejemplo_acople_ventanas.rar (1,5 MiB, 2.637 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.176 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.896 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, 18.007 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.393 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.520 hits)