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.017 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.366 hits)

18

Ejemplo Mover Ventana (forma personalizada)

Neobook nos permite darle una forma personalizada (ventana) a nuestras aplicaciones, pero que hacemos si queremos hacer que se mueva haciendo click en determinado lugar?. Pues bien eso es lo que intento solucionar con este ejemplo.

Plugins utilizados:

Si queremos que el area para mover la ventana sea una imagen utilizaremos un objeto polygon, al cual le pondremos las siguientes acciones:

Mouse Enter (mouse entra sobre el objeto):

tmDragDropCreate
Setvar "[tmDragCursor]" "0"
Setvar "[tmDragPosition]" "2"
Setvar "[tmDragEnableEvents]" "1"
SetVar "[tmLBDAction]" "npEjecutarAccion [#34][#91]acc_b[#93][#34]"
SetVar "[tmLBUAction]" "npEjecutarAccion [#34][#91]acc_a[#93][#34]"

Con esto logramos que el plugin tmDragDropObj realice unas acciones al presionar el boton izquierdo del mouse (BotonIzqBajo) y cuando lo soltemos (BotonIzqArriba) (ambos eventos no nativos de neobook) completando así el click, pero éste no realiza acción alguna.

A su vez cada acción llamara a la función npEjecutarAccion del plugin NeoDouble, la cual realiza una acción de neobook cargada desde una variable (entre otras opciones de carga). En este caso, llamo a las acciones desde dos variables llamadas [acc_b] (acciones btizqbajo) y [acc_a] (acciones btizqarriba) que a su vez están dentro de unos texentrys.

Mouse Exit (mouse sale del objeto):

tmDragDropDestroy

Con esto eliminamos las acciones del plugin.

Contenido de la variable [acc_b] (en un textentry):

GetMousePos "[x_pos]" "[y_pos]"
Setvar "[x_m]" "[x_pos]"
Setvar "[y_m]" "[y_pos]"
TimerStart "TMueve" "1"

Con estas líneas obtenemos la posición del mouse al bajar el boton izq, y luego le da start al timer TMueve con intervalo de 1 milisegundo.

Contenido de la variable [acc_a] (en un textentry):

TimerStop "TMueve"

Esto solo para el timer.

Contenido del timer TMueve:

GetMousePos "[x_pos]" "[y_pos]"
Setvar "[x_pos_p]" "[x_pos]+[WindowLeft]"
Setvar "[y_pos_p]" "[y_pos]+[WindowTop]"
Setvar "[WindowLeft]" "[x_pos_p]-[x_m]"
Setvar "[WindowTop]" "[y_pos_P]-[y_m]"

Esto es nada más y nada menos lo que capta los datos del mouse (cada 1 milisegundo) y realiza el movimiento de la ventana.

Bueno, espero que se entienda 😛

Descarga del ejemplo:

  ejemplo_mover_ventana.rar (1,2 MiB, 1.674 hits)

23

¿ Que pasó ?

Es la pregunta que me hago hoy, a ya casi 2 meses de la noticia/publicación en Hispaneobook realizada por softsing en la cual “pedía colaboradores” para reinsertar hispaneobook, luego David Esperalta lo mencionó en Relanzando Hispaneobook 2.0. Más tarde lo hizo DAMANEO en ¿Y La Comunidad? teniendo como resultado varios comentarios a la entrada, la mayoría alentando a relanzar Hispaneobook como eje de la comunidad neobookera.

Pero creo que los posts anteriormente mencionados no llegaron a los usuarios de la manera que tenían que llegarles. No veo cambio alguno en la comunidad.

Hispaneobook cambió de diseño, agregó un chat, etc. Pero no hay usuarios nuevos, no se crean posts.
Lo que yo haría:
– Borron y cuenta nueva.
– Habilitar solamente el foro y Downloads.
– Si hace falta, habilitar otras secciones.
Eso me dice mi experiencia como webmaster, mostrar sólo las secciones que los usuarios utilizarán.
Creo que un phpbb andaría muy bien en vez de complicarse tanto con scripts complejos como vbulletin y otros.
Hispaneobook tiene que revivir con una interfaz clara, de fácil acceso a la información y no perderse en la idea de ser un super portal (no es que no pueda serlo, sino que poco a poco tiene que recuperar a sus usuarios), con miles de cosas para hacer, porque los usuarios no terminan haciendo nada.

En fin…yo quiero que Hispaneobook cambie…¿ tu que quieres ?

5

Iconos

Cansados de hacer botones aburridos que sólo contienen texto?. Pues hoy voy a compartir con uds un paquete de iconos que podemos usar en nuestras aplicaciones para hacerlas más atractivas e intuitivas. Se trata de Famfamfam Silk Icons, de Mark James.

Este set de iconos es gratuito y trae unos 1.000 iconos de 16 x 16 pixeles en formato PNG. Tiene una gran variedad de iconos, permitiendolos usar en las aplicaciones que se nos ocurran. Si son de tu agrado y los utilizas puedes considerar hacer una donación en la página web del autor.

Iconos1

Iconos2

Iconos3

Derscarga:

  famfamfam_silk_icons_v013.zip (779,3 KiB, 4.416 hits)

9

Ejemplo hpwColorMemo

ElvinesS pidió ayuda en un post del foro de Hispaneobook sobre como utilizar el plugin hpwColorMemo (H.P.Wickern). Luego de estar ocupado con unos trabajos, y viendo que nadie respondió (o eso creo) me propuse darle una mano.

Como ya dije en el post Ejemplo hpwImage la mayoría de los plugins crean un control sobre un objeto rectángulo y hpwColorMemo no es la excepción.

Pero antes tenemos que configurar unos cuantos parámetros, veamos un ejemplo del código que tendría el botón Crear Control:

.//Color de Fondo
hpwColorMemoSetVar "[hpwMemoBackColor]" "clWindow"
.//Opciones para la fuente
hpwColorMemoSetVar "[hpwMemoFontName]" "Courier"
hpwColorMemoSetVar "[hpwMemoFontColor]" "clBlack"
hpwColorMemoSetVar "[hpwMemoFontSize]" "10"

.//Opciones que pueden ir en [hpwMemoFontStyle]
.//fsBold,fsItalic,fsUnderline,fsStrikeout
hpwColorMemoSetVar "[hpwMemoFontStyle]" ""
hpwColorMemoSetVar "[hpwMemoFontCharset]" "0"

.//Opciones para mostrar hint 1=On 0=Off
hpwColorMemoSetVar "[hpwMemoShowhint]" "1"
hpwColorMemoSetVar "[hpwMemoHint]" "Click en el Memo"

.//Opciones que pueden ir en [hpwMemoCursor] si es que lo
.//usas crHandPoint,crDefault,crHourGlass
.//hpwColorMemoSetVar "[hpwMemoCursor]" "crHandPoint"

.//Opciones para barras de scroll, éstas pueden ser
.//ssNone,ssBoth,ssHorizontal,ssVertical
hpwColorMemoSetVar "[hpwMemoScrollBars]" "ssVertical"

.//Opciones para el borde pueden ser bsNone,bsSingle
hpwColorMemoSetVar "[hpwMemoBorderStyle]" "bsNone"

.//Opciones Generales 1=On 0=Off
.//Habilitado
hpwColorMemoSetVar "[hpwMemoEnabled]" "1"
.//Visible
hpwColorMemoSetVar "[hpwMemoVisible]" "1"
.//Solo lectura
hpwColorMemoSetVar "[hpwMemoReadOnly]" "0"

.//Justificado de texto
hpwColorMemoSetVar "[hpwMemoWordWrap]" "0"

.//Opciones de hipervinculos en ciertas acciones 1=On 0=Off
hpwColorMemoSetVar "[hpwMemoHotSpotActive]" "1"
hpwColorMemoSetVar "[hpwMemoHotSpotColor]" "clBlue"
hpwColorMemoSetVar "[hpwMemoHotSpotMarkerColor]" "clWindow"
hpwColorMemoSetVar "[hpwMemoHotSpotBeginChar]" "<"
hpwColorMemoSetVar "[hpwMemoHotSpotEndChar]" ">"
hpwColorMemoSetVar "[hpwMemoHotSpotUnderlined]" "1"
hpwColorMemoSetVar "[Rec_memo_HotSpotAction]" "AlertBox [#34]HotSpot[#34] [#34]Hotspot: [#91]Rec_memo_HotSpotStr[#93][#34]"

.//Creacion del control
.//Creo el contro y cargo la configuracion (acciones)
.//del archivo lenguaje.cfg
hpwColorMemoCreate "Rec_memo" "[PubDir]lenguaje.cfg"
.//Le doy foco al rectangulo con el control
hpwColorMemoSetFocus "Rec_memo"

.//Por si quisiera que al crearlo cargue un texto
.//setvar "[codigo_ejemplo]" "AlertBox [#34]Titulo[#34] [#34]Texto[#34]"
.//hpwColorMemoSetText "Rec_memo" "[codigo_ejemplo]"

Como podran ver con hpwColorMemoCreate “Rec_memo” “[PubDir]lenguaje.cfg” le dije al plugin que tiene que cargar la configuración del archivo lenguaje.cfg. Pero que contiene ese archivo?.

Pues esto:

;Este es un ejemplo de archivo de configuración para hpwColorMemo
;Los comentarios comienzan con ; en el primer carácter de la linea ; (punto y coma) La lista de reglas tiene que comenzar siempre con 0

;Esta es la primer regla
0|Add
0|KeyBegEndLst.Add|[;];Red

;Ahora la segunda regla
1|Add
1|KeyDrawingType|dtKeyShow
1|Keywords.Add|AlertBox;Blue
1|Keywords.Add|Ventana;Blue
1|ZOrder|1
1|PartWord|False
1|KeyCase|False

;La tercer regla
2|Add
2|KeyDrawingType|dtBeginLineEnd
2|KeyLineEndLst.Add|.;Gray
2|ZOrder|2

Algunas observaciones:

En la primera regla
0|KeyBegEndLst.Add|[;];Red
Significa que colorea de Rojo desde [ hasta ] y también lo que contiene dentro. Resultaría algo así [variable].

En la segunda regla
1|KeyDrawingType|dtKeyShow
1|Keywords.Add|AlertBox;Blue
1|KeyCase|False
Significa que colorea la palabra entera de azul y no distingue Minúsculas de Mayúsculas.
Resultaría algo así alertbox.

En la tercer regla
2|KeyDrawingType|dtBeginLineEnd
2|KeyLineEndLst.Add|.;Gray
Significa que colorea de gris desde el comienzo al fin de la linea si encuentra al comienzo el carácter . (punto) .
Resultaría algo así .Ejemplo de comentario.

Screen ejemplo hpwColorMemo
Screenshot del ejemplo

Dercarga del ejemplo:

  ejemplo_hpwColorMemo.rar (948,3 KiB, 1.449 hits)

Nota: hpwColorMemo es una interesante herramienta para aquellos docentes que pretendan enseñar a sus alumnos lenguajes de programación creando su propia sintaxis como bien lo propone ElvinesS en el post original. Yo estuve haciendo unas pruebas quedó lindo, pero…¿ le interesará a alguien?.

3

Ejemplo ver Espacio Libre

ElvinesS pregunto en un post del foro de Hispaneobook como puede saber el espacio libre en un disco…acá la forma que yo lo haría…

El ejemplo consiste en crear un archivo .bat con la instrucción DOS DIR /w C: >dir.txt, para luego ejecutarlo (al .bat) desde neobook, con lo que obtendremos los resultados del DIR en el archivo dir.txt para luego poder leerlo.

Como lo leemos? Pues bien el comando dir preformatea el texto y justo en la ultima linea nos informa el espacio libre que tenemos en el disco. Con la función StrParse separamos la última línea para poder obtener en limpio los números, luego con StrReplace eliminamos los . (puntos) para poder utilizar este valor con la función Math para calcular el espacio en Kb, Mb y Gb. Más detalles en el .pub del ejemplo.

Screen ejemplo espacio

Descargar ejemplo:

  ejemplo_espacio.rar (656,0 KiB, 2.036 hits)

2

Ataques DDOS masivos

Comienzo avisando que esta entrada nada tiene que ver con neobook, pero si con mi weblog, el cual estuvo inaccesible durante un tiempo…

¿Por que?
Todo comenzó hace unos días… Soy lector del blog Genbeta, el cual misteriosamente estuvo offline varios días y yo me preguntaba cual era el motivo… Resulta que Genbeta hace ya un tiempo publicó un post sobre los sitios que dicen mostrarte quienes te admiten y quienes no en el popular Messenger de Windows, sitios que todos sabemos son fraudes que se aprovechan de los usuarios para guardar sus contraseñas y posteriormente llenarlos de SPAM y/o robarles su cuenta, al correr de los dias dicho post tomó una indexacion importante en google con lo cual Genbeta recibió amenazas para quitar la entrada de lo contrario realizarían ataques DDOS, al cabo de un tiempo estas amenazas se hicieron realidad…

Pero ahí no terminó todo, siguieron atacando a varias webs, entre ellos Meneame, Error500, WeblogsSL, IPLan, etc. y el servidor donde hosteo este weblog.

La razón de esta entrada?
Pues solidarizarme con las victimas de estos ataques esperando que la justicia tome cartas en el asunto… y a los clientes de los servidores caídos decirles que dejen de quejarse y que entiendan que no es fácil resistir un ataque de este tipo, son contados los que no caerían como por ej Google, Microsoft, la NASA, y sitios tremendamente importantes que gastan millones y millones en seguridad informática.

Para saber más:
http://www.anieto2k.com/2008/02/11/ataque-ddos-sobre-la-blogosfera/
http://ricardogalli.com/2008/02/10/de-ciberdelincuentes-y-el-mundo-es-pequeno/
http://tonapa.cgrc.telefonica.com.pe/blog/?p=127
http://www.codigogeek.com/2008/02/08/que-hacer-ante-un-ataque-ddos/

15

Ejemplo Hipervinculos

Bien…hoy trato de solucionar lo planteado por darkisdeath en el post Ayuda plz, Hipervinculos. del foro de hispaneobook.

[…]Estoy haciendo un índice y me resulta más fácil poner texto con hipervínculos para ir a alguna página que poner imágenes como botón, pero resulta que al hacerlo el texto adquiere las características de un hipervínculo en html, azul y subrayado. ¿Hay forma de quitar esas característica y dejar el texto intacto? (sin el subrayado y el color azul)

La única opción que encontré fue la de cambiar de color el hipervínculo, pero no me sirve de mucho. […]

Vamos con la teoría: neobook permite la interacción con el objeto navegador, lo cual combinado con un poco de java se transforma en un potente vínculo. Pero… html también colorea y subraya los hipervínculos te preguntas… Pues si, también lo hace, pero desde la salida de CSS esto se puede cambiar.

En base a esto podemos hacer un .html que contenga el texto y su hipervínculo será un llamado a una función javascript que realizará la acción en neobook.

El código javascript para comunicarse con neobook es el siguiente:

function doExec()
{
	window.external.nbExecAction( 'alertbox "Javascript" "Hola desde el navegador"' );
}

El html que muestra el objecto Web browser tendría el siguiente enlace:

Mostrar alertbox

Listo…entendí perfecto pero como saco el subrayado???
Pues en el html tenes que agregar esta linea en el head.

Y el contenido de ejemplo_hipervinculos.css :

a:link {
	text-decoration: none;
	color: #000000;
}
a:visited {
	text-decoration: none;
	color: #000000;
}
a:hover {
	text-decoration: none;
	color: #000000;
}
a:active {
	text-decoration: none;
	color: #000000;
}

El css elimina el subrayado y colorea de negro (#000000) los hipervínculos dando un aspecto del texto normal…

Espero que sea útil…

Screen ejemplo hipervinculos

Bajar ejemplo:

  ejemplo_hipervinculos.rar (869,6 KiB, 2.109 hits)