Sugerencias Durante La Escritura De Código HTML (Solucionado) :)


Ir a la página 1, 2  Siguiente

BrunoIV
Objetivo: Sugerencias Durante La Escritura De Código HTML (Solucionado) :)
Konnichi wa...

Estoy tratando de que al escribir <h , aparezca un listado <h1>, <h2>, <h3>, etcs en modo emergente (como hace gambas cuando por ejemplo escribes "nex", el te sugiere "next")
pantallazo_webmaker0_1_gambas_2

Se me ocurrió usar crear un menú dependendiendo de lo que se escriba y mostrarlo con miMenu.PopUp(), me pregunto si hay algún componente o modo menos manual..


Saludos

última edición por BrunoIV el Lunes, 29 Agosto 2011, 22:10; editado 1 vez
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Si no estoy equivocado, gambas usa un formulario sin bordes con un listbox ocupando toda la superficie (arrangement = fill). Puedes crear este formulario y llamarlo con los valores adecuados de posición, tamaño y la propiedad stacking = above ( http://gambasdoc.org/help/comp/gb.qt/window/stacking ). Al llamarlo le pasas un array con las coincidencias y llenas el listbox con ellas, incluso puedes usar iconos diferentes para los items del listbox. En otro evento, por ejemplo clic sobre el editor o tecla TAB para auto-completar, escondes el formulario emergente, inicializándolo cada vez que lo vuelvas a llamar mediante el evento change del editor si el número de caracteres tecleados son más de 2 y están dentro de las coincidencias posibles.

Puedes revisar el código fuente de gambas, la parte del editor, aunque es bastante complejo por el uso intensivo de POO, pero quizás te de alguna idea.

Saludos

Perfil MP  
BrunoIV
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Gracias jguardon, intento esto y ya daré señales de vida y mi solución cuando la tenga.

Respecto a:
Citar:

Puedes revisar el código fuente de gambas, la parte del editor, aunque es bastante complejo por el uso intensivo de POO, pero quizás te de alguna idea.


Ni de coña me veo capacitado para eso.. jaja

¡Al turrón!

BrunoIV
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Ya lo tengo casi... pero tengo un pícolo problemo con esto.. Al abrir el formulario o el menú popup (intenté los 2), me es imposible escribir en el cuadro de texto, hay que hacer clic sobre el.. y setFocus no no funciona, intenté también:

editor.Goto(0,0) 'Linea 0 columna 0
editor.setFocus

Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Claro... se me ocurre que podrías declarar un evento en el formulario emergente que se dispare justo cuando se muestra, en el form_open y manejar el evento desde el formulario donde está el editor. Ese evento debe ejecutar editor.setFocus, para devolver el foco al editor inmediatamente.

Algo así:

' Form emergente "FEmerg"

' Declaramos un nuevo evento
EVENT devuelveFoco()

Public Form_Open()
' lo disparamos nada mas mostrarse el formulario
RAISE devuelveFoco()

End

Public mostrarLista(coincidencias AS String[])
' este es el método que empleamos para llamar al formulario desde el principal
' pasando como parámetros un array con las coincidencias filtradas
ListBox1.List = coincidencias
Me.Show

End


'Form editor
' Declaramos un formulario genérico
Private $formEmergente as Form

Public Form_Open()
' Instanciamos nuestro nuevo formulario emergente con su manejador de eventos
$formEmergente = New FEmerg AS "formEmergente"
...
End

Public Sub editor_change()

' llamamos al formulario emergente con la lista de etiquetas
' habria que inventar un contador para calcular que solo se llame
' si hemos tecleado al menos 2 o 3 letras de una palabra clave
If contador > 2 then
$formEmergente.mostrarLista(lista)
Endif

End

' Usamos el nombre del manejador de eventos y el nombre del evento
' para construir este método que se ejecutará cuando se dispare dicho evento
Public Sub formEmergente_devuelveFoco()

editor.setFocus

End


Prueba a ver si así te funciona, si no, habrá que "cotillear" cómo lo hace Benoit...

Perfil MP  
BrunoIV
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Public formEmergente_devuelveFoco()


Missing AS

Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Public Sub, por supuesto. Ya lo he corregido.

Perfil MP  
BrunoIV
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Disculpa mi torpeza, pero no lo logro..

Intentaré poner lo que tengo, a ver si localiza alguien el error:
'FMain (aquí tengo el editor llamado edtHtml)

PRIVATE $formEmergente AS Form


Public Form_Open()
$formEmergente = New FEmerg AS "FEmerg" 'Nombre del formulario que tiene el listbox
End


Public Sub formEmergente_devuelveFoco()
edtHtml.setFocus
End

'Por otro lado, al apretar < y cualquier letra intento abrir esto:
$formEmergente.mostrarLista() 'DE MOMENTO SIN PARÁMETROS!!



'==========================================================================

'FEmerg (aquí muestro una etiquetas, ACTUALMENTE SON 2 DE EJEMPLO!!)
EVENT devuelveFoco()

PUBLIC SUB Form_Open()
RAISE devuelveFoco()
END

PUBLIC SUB mostrarLista()
'Este método lo llamamos para mostrar el formulario

'Carga datos de ejemplo, SUBSTITUIR LUEGO
ListBox1.Add("<h2>")
ListBox1.Add("<h8>")


ME.Show
END




El error está aquí (Unknown sysmbol "mostrarLista" in class 'Form'):
Citar:

$formEmergente.mostrarLista()


Si lo substituyo por FFmerg.mostrarLista() abre el formulario pero no establece el foco en el Editor...


Si no se puede no pasa nada, lo puedo incrustar a la izquierda de la pantalla o algo pensaré

BrunoIV
Objetivo: Re: Sugerencias Durante La Escritura De Código HTML
Lo tengo.. Muajajaaj.. He optado por lo sencillo, pero funciona correctamente...
He creado un panel oculto en el formulario con el listbox que me dijiste, cuando el Luser escribe < y cualquier cosa se muestra donde tengas el mouse con las sugerencias. Me falta que al apretar las fechas y apretar intro se muestre la selección..

PUBLIC FUNCTION muestraSugerencias(aCoincidencias AS String[])
DIM iContador AS Integer

FOR iContador = 0 TO aCoincidencias.Length - 1 STEP 1
lbxEtiquetas.Add(aCoincidencias[iContador])
NEXT

pnlSugerencias.Move(Mouse.ScreenX, Mouse.ScreenY)
pnlSugerencias.Visible = TRUE
pnlSugerencias.Height = lbxEtiquetas.Count * 28
lbxEtiquetas.Height = pnlSugerencias.Height - 10
END


pantallazo_web_maker_0_1

Gracias igualmente cierro

Objetivo: Re: Sugerencias Durante La Escritura De Código HTML (Solucionado) :)
Una recomendación. Yo estoy trabajando con el editor y he visto algunas cosas interesantes. Puedes investigar el control Editor, ya que creo que hay unas propiedades que te indican la posicion en pixeles del cursor. De ese modo, el cuadro sugerencias lo puedes mostrar al lado de donde se esta escribiendo.

Un saludo

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.468s (PHP: -67% SQL: 167%)
Consultas SQL: 45 - Debug off - GZIP Activado