@Josber, no, el VB6 lo tienes que tener instalado para poder trabajar con él en modo diseño. Para distribuir la aplicación, no creo que haga falta, sólo registrar la OCX.
Ejemplos de código con este control:
Código COBOL:
*> Negrita
01 SV-LENGTH PIC S9(5) COMP-5.
...
MOVE "SelLength" OF RichTextBox1 TO SV-LENGTH
MOVE 1 TO "SelLength" OF RichTextBox1
IF "SelBold" OF RichTextBox1 = POW-FALSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-TRUE TO "SelBold" OF RichTextBox1
ELSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-FALSE TO "SelBold" OF RichTextBox1
END-IF
*> Cursiva
MOVE "SelLength" OF RichTextBox1 TO SV-LENGTH
MOVE 1 TO "SelLength" OF RichTextBox1
IF "SelItalic" OF RichTextBox1 = POW-FALSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-TRUE TO "SelItalic" OF RichTextBox1
ELSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-FALSE TO "SelItalic" OF RichTextBox1
END-IF
*> Subrayado
MOVE "SelLength" OF RichTextBox1 TO SV-LENGTH
MOVE 1 TO "SelLength" OF RichTextBox1
IF "SelUnderline" OF RichTextBox1 = POW-FALSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-TRUE TO "SelUnderline" OF RichTextBox1
ELSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-FALSE TO "SelUnderline" OF RichTextBox1
END-IF
*> Lista "bullet"
MOVE "SelLength" OF RichTextBox1 TO SV-LENGTH
MOVE 1 TO "SelLength" OF RichTextBox1
IF "SelBullet" OF RichTextBox1 = POW-FALSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-TRUE TO "SelBullet" OF RichTextBox1
ELSE
MOVE SV-LENGTH TO "SelLength" OF RichTextBox1
MOVE POW-FALSE TO "SelBullet" OF RichTextBox1
END-IF
*> Alinear texto a la izquierda
MOVE 0 TO "SelAlignment" OF RichTextBox1
*> Alinear texto en el centro
MOVE 2 TO "SelAlignment" OF RichTextBox1
*> Alinear texto a la derecha
MOVE 1 TO "SelAlignment" OF RichTextBox1
Ejemplo de cómo Buscar texto:
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FONT PIC 9 VALUE 1.
01 WS-BUSC PIC 9 VALUE 4.
01 RESP PIC 9.
01 SV-BUSCADO PIC X(50).
01 rtfWholeWord PIC 9 VALUE 2.
01 rtfMatchCase PIC 9 VALUE 4.
01 rtfNoHighlight PIC 9 VALUE 8.
01 SV-TEXTO PIC X(15000).
PROCEDURE DIVISION.
IF "Caption" OF CmStatic1 = "0"
GO TO SALIDA
END-IF
IF POW-TEXT OF TXT-BUSCAR = SPACES OR
POW-TEXT OF TXT-BUSCAR = "Buscar..."
INVOKE POW-SELF "DisplayMessage"
USING "¡Indique el texto a buscar!" 48
INVOKE TXT-BUSCAR "SetFocus"
ELSE
IF GLB-SELENGTH = ZEROS
MOVE ZEROS TO GLB-SELSTART
END-IF
MOVE POW-FALSE TO "Enabled" OF POW-SELF
MOVE POW-MP-WAIT TO "MousePointer" OF POW-SELF
MOVE POW-TEXT OF TXT-BUSCAR TO SV-BUSCADO
INVOKE OBJ-RTF "GET-Text" RETURNING SV-TEXTO
COMPUTE GLB-SELENGTH = FUNCTION STORED-CHAR-LENGTH(SV-BUSCADO)
INSPECT SV-TEXTO CONVERTING
'abcdefghijklmnopqrstuvwxyzáéíóúàèìòùäëïöü' TO
'ABCDEFGHIJKLMNOPQRSTUVWXYZAEIOUAEIOUAEIOU'
INSPECT SV-BUSCADO CONVERTING
'abcdefghijklmnopqrstuvwxyzáéíóúàèìòùäëïöü' TO
'ABCDEFGHIJKLMNOPQRSTUVWXYZAEIOUAEIOUAEIOU'
PERFORM WITH TEST AFTER UNTIL SV-TEXTO(GLB-SELSTART:GLB-SELENGTH) =
SV-BUSCADO(1:GLB-SELENGTH) OR
(GLB-SELSTART + GLB-SELENGTH) >= 15000
ADD 1 TO GLB-SELSTART
END-PERFORM
MOVE POW-TRUE TO "Enabled" OF POW-SELF
MOVE POW-MP-DEFAULT TO "MousePointer" OF POW-SELF
IF SV-TEXTO(GLB-SELSTART:GLB-SELENGTH) =
SV-BUSCADO(1:GLB-SELENGTH)
MOVE GLB-SELSTART TO "SelStart" OF RichTextBox1
SUBTRACT 1 FROM "SelStart" OF RichTextBox1
MOVE GLB-SELENGTH TO "SelLength" OF RichTextBox1
ELSE
INVOKE POW-SELF "DisplayMessage"
USING "¡No hay más coincidencias!" 64
MOVE ZEROS TO GLB-SELSTART
END-IF
END-IF
INVOKE POW-SELF "ThruEvents"
.
SALIDA.
EXIT.