domingo, 28 de junio de 2015

StackOverflow para hispanos

Una sección muy visitada por programadores/desarrolladores es StackOverflow, y es inevitable... esta lleno de preguntas que nos hacemos muy amenudo y respuestas tan buenas que te podrian sacar varias dudas de una sola lectura. El unico problema es que... esta en ingles.

El gran problema de los programadores hispanos es que no sabemos hablar o leer en ingles, aunque esto no nos detiene, si nos molesta bastante (o al menos a mí), lo peor es que los que si aprendieron a hacer algo, no comparten sus conocimientos con la comunidad hispana.
Pero bueno, dejando de lado a los traicioneros, una comunidad ha abierto sus puertas para todos los desarrolladores/programadores que quieran compartir sus conocimientos con otras personas menos experimentadas. Y se llama: Entre Desarrolladores (yo le hubiera puesto StackUnderflow).

Si tienes alguna duda o sabes la respuesta de alguna cuestión, no dudes en entrar y aportar.

Saludos!

Como usar Scintilla

Scintilla es un control de edición de texto avanzado, por lo que no es simple utilizarlo; tiene sus dificultades y defectos, pero es muy potente y util para programadores.

Con este control se han creado programas como SciTE, Eclipse, Notepad++ y muchisimos otros.

En esta entrada les voy a enseñar a como utilizar Scintilla, aunque sea de lo mas basico.
Primero tenemos que descargar Scintilla (SciLexer.dll), desde aca: Scintilla Oficial


Esta DLL debe estar junto a nuestro proyecto.

Para utilizar el control hay que comenzar registrandolo, pero ¿como lo hago? pues muy facil. usando la API "LoadLibrary".

LoadLibrary("SciLexer.dll")

Y se registra automaticamente, si... por si solo.
Ahora, vamos a crear el control Scintilla en el formulario, el ejemplo siguiente sera en el lenguaje de programación Pauscal.

Var X,Y,Width,Height,hWndPadre,Modulo,PtrControl:Entero
X = 0             ' Posición X
Y = 0             ' Posición Y
Width = 400  ' Ancho
Height = 400  ' Alto
hWndPadre = Padre.hWnd ' Puntero a la ventana padre
Modulo = GetModuleHandle("") ' Modulo del programa
PtrControl = CreateWindowEx(WS_EX_CLIENTEDGE,"Scintilla","Texto de ejemplo >:(",WS_CHILD+WS_VISIBLE,X,Y,Width,Height,hWndPadre,0,Modulo,0)

Y listo, ya tienen su control Scintilla en su formulario.
Ahora, quiero hacer que el control Scintilla haga algo, ¿Como hago? facil, utilizamos la siempre util y entretenida API "SendMessage", la lista completa de mensajes esta en la pagina oficia de este control, y se llama Scintilla Doc.
Un ejemplo simple envio de mensajes el siguiente.

SendMessage(PtrControl,SCI_CALLTIPSHOW,0,CadPtr("Hola Mundo!"))

Veran como se agrega una pequeña notificación con el mensaje "Hola Mundo!" en la linea número cero.
Pueden la lista de mensajes completa de mi repositorio en GitHub.

Si se quedaron con "hambre" en esta entrada, por favor no duden en comentar.

Saludos!