Preguntar | Conectar | Registrarse | Recordar contraseña | Colaborar |
Usuarios registrados: 516.486 | Top visitas día: 416.892
Portada Foro Ayuda Tutoriales Programas Blog Tecnología Drivers Videos
Windows | Android | iOS | Comunidad | Hazte Fan | Síguenos Buscador

Ver ConfigurarEquipos TV

InicioForosForo ProgramaciónJustificar texto en VB 6

Justificar texto en VB 6


gandalf29100
11 puntos
36 posts

2006-02-28 00:02 - Respuestas: 4 - Tema nº: 2408675


Hola, estoy intentando hacer un editor de texto con ciertas caracteristicas especiales, para el trabajo de un amigo y necesito algunas cosas que no logra hallar cómo hacerlas:

-necesito justificar el texto que se escriba (no alineado a la izquierda, derecha o centrado que son las opciones que tiene VB, sino justificado, como la opcion de MS Word)
-También necesitaría (aunque no es tan importante) darle los márgenes y el espaciado entre linea y linea.

Si alguien puede ayudarme..., muchas gracias.
Justificar texto en VB 6 »

Más sobre: Word



Posibles soluciones:
Justificar texto en vb 6Justificar texto en vb 6
Quiero justificar un texto pero cuando lQuiero justificar un texto pero cuando l
Precio elevado sin justificarPrecio elevado sin justificar
Opciones de centrar justificar en visual basic 2010Opciones de centrar justificar en visual basic 2010
Quitar texto de un texto digitalizadoQuitar texto de un texto digitalizado



Prenda
2 puntos
1.076 posts


Re: Justificar texto en VB 6 - 2006-02-28 11:34 - Respuesta 2

Hola,

Supongo que si estás usando un control RichTextBox para albergar el texto ¿no?. En tal caso, te paso una función que no recuerdo de donde saqué... hace tiempo hice algo parecido a lo que estás haciendo.

La función se basa en el ataque del objeto por API.

Uso para justificar: SetAlignment RichTextBox1.HWND, ercParaJustify
El resto de las opciones de alineación las puedes obtener de la definición de constantes ERECParagraphAlignmentConstants que está más abajo.

Code:
nulo;BRnulo;Private Declare Function SendMessageLong Lib nulo;user32nulo; Alias nulo;SendMessageAnulo; (ByVal nulo;BRnulo;HWND As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) nulo;BRnulo;As Long nulo;BRnulo;Private Declare Function SendMessage Lib nulo;user32nulo; Alias nulo;SendMessageAnulo; (ByVal nulo;BRnulo;HWND As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long nulo;BRnulo; nulo;BRnulo;Const WM_USER = nulo;H400 nulo;BRnulo;Const EM_SETTYPOGRAPHYOPTIONS = WM_USER + 202 nulo;BRnulo;Const TO_ADVANCEDTYPOGRAPHY = 1 nulo;BRnulo;Const EM_SETPARAFORMAT = WM_USER + 71 nulo;BRnulo;Private Const PFA_LEFT = 1 nulo;BRnulo;Private Const PFA_RIGHT = 2 nulo;BRnulo;Private Const PFA_CENTER = 3 nulo;BRnulo;Private Const PFA_JUSTIFY = nulo;H4 nulo;BRnulo;Const MAX_TAB_STOPS = 32 nulo;BRnulo;Private Type PARAFORMAT2 nulo;BRnulo; cbSize As Long nulo;BRnulo; dwMask As Long nulo;BRnulo; wNumbering As Integer nulo;BRnulo; wEffects As Integer nulo;BRnulo; dxStartIndent As Long nulo;BRnulo; dxRightIndent As Long nulo;BRnulo; dxOffset As Long nulo;BRnulo; wAlignment As Integer nulo;BRnulo; cTabCount As Integer nulo;BRnulo; rgxTabs(MAX_TAB_STOPS - 1) As Long nulo;BRnulo; dySpaceBefore As Long nulo;BRnulo; dySpaceAfter As Long nulo;BRnulo; dyLineSpacing As Long nulo;BRnulo; sStyle As Integer nulo;BRnulo; bLineSpacingRule As Byte nulo;BRnulo; bOutlineLevel As Byte nulo;BRnulo; wShadingWeight As Integer nulo;BRnulo; wShadingStyle As Integer nulo;BRnulo; wNumberingStart As Integer nulo;BRnulo; wNumberingStyle As Integer nulo;BRnulo; wNumberingTab As Integer nulo;BRnulo; wBorderSpace As Integer nulo;BRnulo; wBorderWidth As Integer nulo;BRnulo; wBorders As Integer nulo;BRnulo;End Type nulo;BRnulo; nulo;BRnulo;Public Enum ERECParagraphAlignmentConstants nulo;BRnulo; ercParaLeft = PFA_LEFT nulo;BRnulo; ercParaCentre = PFA_CENTER nulo;BRnulo; ercParaRight = PFA_RIGHT nulo;BRnulo; ercParaJustify = PFA_JUSTIFY nulo;BRnulo; End Enum nulo;BRnulo;Private Const PFM_ALIGNMENT = nulo;H8nulo; nulo;BRnulo; nulo;BRnulo;Private Function SetAlignment(lHwnd As Long, ByVal eAlign As ERECParagraphAlignmentConstants) nulo;BRnulo; Dim tP2 As PARAFORMAT2 nulo;BRnulo; Dim lR As Long nulo;BRnulo; tP2.dwMask = PFM_ALIGNMENT nulo;BRnulo; tP2.cbSize = Len(tP2) nulo;BRnulo; tP2.wAlignment = eAlign nulo;BRnulo; lR = SendMessageLong(lHwnd, EM_SETTYPOGRAPHYOPTIONS, nulo;BRnulo;TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY) nulo;BRnulo; lR = SendMessage(lHwnd, EM_SETPARAFORMAT, 0, tP2) nulo;BRnulo;End Function nulo;BRnulo;


Esta función es de libre uso. De hecho creo que la saqué del MSDN. En el caso de que los moderadores estén en desacuerdo con su publicación, les ruego que la eliminen.

Saludos.

[ Este mensaje fué editado por: Prenda el 28-02-2006 a las 11:37]

Más sobre:



Hurricane
-5 puntos
10.209 posts


Re: Justificar texto en VB 6 - 2006-02-28 22:06 - Respuesta 3

El siguiente código te va a servir. Sólo hace lo que quiers: justificación completa.Code:
Rem Justifica una cadena.
Rem Str = Cadena a justificar
Rem Max = Cantidad de caracteres a la que se va a justificar.
Function strJustify(Str As String, Max As Integer) As String
Dim P As Integer, P2 As Integer
Str = LTrim(RTrim(Str))
P = InStr(1, Str, nulo; nulo
If (P nulo; 0) Then
While (Len(Str) nulo; Max)
While (Mid(Str, P, 1) nulo;nulo; nulo; nulo
P = P + 1
Wend
Str = Left(Str, P - 1) + nulo; nulo; + Right(Str, Len(Str) - P + 1)
P = P + 2
If (P nulo;= Len(Str)) Or (InStr(P, Str, nulo; nulo = 0) Then
P = 1
End If
P = InStr(P, Str, nulo; nulo
Wend
End If
strJustify = Str
End Function


Saludos

HURRICANE

Más sobre:



gandalf29100
11 puntos
36 posts


Re: Justificar texto en VB 6 - 2006-03-16 17:26 - Respuesta 4

Hola, gracias a los dos, aunque solo el código de Prenda me funcionó y pude justificar texto sin problemas.

Ahora lo q no pude lograr es aumentar el espacio entre linea y linea ni cambiar los márgenes. Probe cambiar algunas cosas del código de Prenda y no me da errores, pero tampoco produce ningún cambio en el texto.

Si alguien sabe o conoce algun codigo para cambiar los márgenes y el espacio entre líneas de un RichTextBox en VB6, por favor si puede ayudarme...

Gracias de nuevo, hasta la vista


Más sobre: Windows Vista Problemas



Página:1


Respuestas relacionadas:
Voz textoVoz textoForo
TextoTextoForo
Texto a vozTexto a vozForo
No veo el texto de los vinculosNo veo el texto de los vinculosForo
Texto predictivoTexto predictivoForo
Colocar texto en mp 4Colocar texto en mp 4Foro
Mensajes de texto en redMensajes de texto en redForo
No veo el texto completoNo veo el texto completoForo
Editor de texto en webEditor de texto en webForo
Convertidor de textoConvertidor de textoForo


Ver también:
Justificar texto en vb 6Justificar texto en vb 6 »









Videos Juegos

Configurarequipos TVBajar Antivirus gratisCual es mi IPTest velocidadTrucosADSL
OverclockingForo ADSLDiccionarioWirelessMapa Segunda manoTiendas de informatica
Blog TecnologíaÚltimos VirusManualesSeguridadMapa ForoOrdenadores segunda mano

Aviso LegalPolitica de PrivacidadReferencias en PrensaColaborarContactar
PORTADA¿Qué es ConfigurarEquipos?Editores y ModeradoresLogoDirectorio




Buscar: en
ConfigurarEquipos.com® 2014 | 24-04-2014 16:32:18 Informática Windows | Mapa Web | Foro Ayuda