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, 911 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?.


9 Comments

  1. Muy buen trabajo.
    Desde luego que tienes que estar en la nueva seccion de plugins de Hispaneobook.
    Con tutoriales, traducciones, etc..

    Te apunto ya.

    Tu idea de reunir todos los plugins en un unico archivo me parece buena.
    El problema es que, entre antiguos y modernos hay mas de 150. Eso hace un archivo bastante grande pero seguro que encontramos el modo de que se lo pueda descargar la gente sin consumir el ancho de banda. ( Si hay pocas descargas no hay problema, pero si hay muchas….)

    Gracias por tu trabajo.

  2. hola y gracias por todos tus tutos..

    Tengo una duda,,, no he podido hacer que una vez compilado una aplicación que hace usos de hwpcolormemo me escriba los tildes en las palabras ´ y sólo puede escribir palabras sin tildes. que será… qué versión usaste de neobook para compilar el ejemplo por que en ese funcionan los tildes…?

    desde ya gracias.

  3. Justamente he estado usando esa versión la 1.25 y no doy cómo puedo hacer para que se vean los tildes de las palabras puedo escribir todos los caracteres menos los tildes… será un error de esta versión 1.25 no tendrás la 1.22 para descargar.

  4. Mmmmm entonces puede que sea la v de neobook. Tratá de utilizar siempre la ultima versión.

  5. Ayuda alguien tiene la versión 1.21 o 1.22 o 1.23 de hpwcolormemo que me pueda pasar el link

    desde ya gracias.

  6. Gracias….

    Lo instalé y lo mismo al parecer no es problema del plugin quizás algo en la instalación o en el windows mismo me está tirando el error .. lo raro que tu ejemplo ( el exe ya creado) me reconoce los tildes… voy a seguir buscando la causa …..
    Gracias de nuevo por tu tiempo..

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *