que - dhtml download
Código para hacer un control DHTMLEd reemplazar citas rectas con comillas (1)
Aquí está la versión VB6:
Private Sub DHTMLEdit1_onkeypress()
Dim e As Object
Set e = DHTMLEdit1.DOM.parentWindow.event
''Perform smart-quote replacement''
Select Case e.keyCode
Case 34: ''Double-Quote''
e.keyCode = 0
If IsAtWordEnd Then
InsertDoubleUndo ChrW$(8221), ChrW$(34)
Else
InsertDoubleUndo ChrW$(8220), ChrW$(34)
End If
Case 39: ''Single-Quote''
e.keyCode = 0
If IsAtWordEnd Then
InsertDoubleUndo ChrW$(8217), ChrW$(39)
Else
InsertDoubleUndo ChrW$(8216), ChrW$(39)
End If
End Select
End Sub
Private Function IsLetter(ByVal character As String) As Boolean
IsLetter = UCase$(character) <> LCase$(character)
End Function
Private Sub InsertDoubleUndo(VisibleText As String, HiddenText As String)
Dim selection As Object
Set selection = DHTMLEdit1.DOM.selection.createRange()
selection.Text = HiddenText
selection.moveStart "character", -Len(HiddenText)
selection.Text = VisibleText
End Sub
Private Function IsAtWordEnd() As Boolean
Dim ch As String
ch = PreviousChar
IsAtWordEnd = (ch <> " ") And (ch <> "")
End Function
Private Function PreviousChar() As String
Dim selection As Object
Set selection = m_dom.selection.createRange()
selection.moveStart "character", -1
PreviousChar = selection.Text
End Function
Nota: esta solución inserta un nivel adicional en la cadena de deshacer. Por ejemplo, escribir "Esto es una prueba" da una cadena de "Esto es una prueba" -> "Esta es una prueba" -> "Esta es una prueba ->" -> "(nivel adicional en negrita). Para eliminar este nivel adicional, debe implementar algún tipo de solución de PostMessage+subclassing
que no implique la cancelación de la pulsación de tecla nativa.
editar: no olvide incluir el control de edición DHTML redistribuible si se dirige a Windows Vista.
Tengo una antigua aplicación VB6 heredada que usa el control de edición DHTML como editor de HTML. El control de edición DHTML de Microsoft, también conocido como DHTMLEd, probablemente no sea más que un control de IE que usa internamente la capacidad de edición nativa de IE.
Me gustaría modificar la aplicación para implementar citas inteligentes como Word. Específicamente, " se reemplaza por " o " y " se reemplaza por " o " según corresponda según se escribe, y si el usuario presiona Ctrl + Z inmediatamente después del reemplazo, vuelve a ser una cita directa.
¿Alguien tiene código que hace eso?
Si no tiene un código para DHTML / VB6, pero tiene un código JavaScript que funciona en un navegador con contenido de regiones edificables, podría usar eso también