Autor Tema: Ayuda con RichTextBox o Word  (Leído 9962 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Ayuda con RichTextBox o Word
« en: Diciembre 06, 2012, 01:35:01 am »
¡Hola!
Estoy haciendo un sistema donde recibo información a través de un periférico y, de acuerdo a lo que ingresa, pongo algunos datos en un control List (pueden ser varias líneas). A esa información le corresponde otra que escribo en un control RichTextBox (pueden ser varias palabras). Hasta acá no tengo problema. Pero lo que necesito es poder saber, al poner el mouse o el cursor en una palabra del RTB, cuál es la correspondencia en el control List, y viceversa.
Ejemplo:
Recibo información del periférico.
En el List escribo las líneas: "aaa1", "aaa2", "aaa3"
En el RichTextBox escribo: "casa"
Recibo información del periférico.
En el List escribo las líneas: "bbb", "ccc"
En el RichTextBox escribo: "el perro ladra"
Así sucesivamente hasta que no recibo más información del periférico.
Entonces, al poner el mouse o el cursor sobre la palabra "perro" en el RTB, necesito que en el List se marquen las líneas que contienen "bbb" y "ccc"
A la inversa, cuando hago clic en la línea que contiene "ccc" o en la que contiene "bbb" del List, necesito que se marque la frase "el perro ladra" en el RichTextBox.
Ahora, si en lugar de RichTextBox se pudiera hacer incrustando algún control de Word (pero no abriendo una instancia del programa Word) sería incluso mejor, ya que luego de poner la información debiera poder darle formato al texto y usar algunas características de Word, tales como el Zoom, el corrector ortográfico, etcétera. Hasta ahora uso el RTB y las funciones que empleo son cambio de tipo y tamaño de letra, negrita, subrayado, itálica y no mucho más, porque no sé hacer cosas como justificar, zoom, etcétera.
¿Se les ocurre cómo podría hacerlo?
Muchas gracias.
Saludos a todos.

Jerónimo


Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #1 en: Diciembre 07, 2012, 09:16:46 pm »
Se las puse difícil esta vez, eh...  :P
Creo que con esto lo simplifico un poco. Olvidémonos del control List. La idea principal es que cuando el sistema "escriba" algo en el RichTextBox, a eso que se "escribió" pueda asignarle información.
Supongamos que el sistema "escribe" lo siguiente: "Hombre". Entonces, a "Hombre" debiera poder asignarle lo siguiente: "xdgs".
Luego, el sistema sigue "escribiendo": "calvo". A "calvo" debiera poder asignarle: "kfjffldkg dlkfjd dlkjf".
La verdad, no tengo idea siquiera de cómo arrancar. Pero supongo que se puede hacer, porque esto mismo vi en otro programa (obviamente, no tuve acceso al código), aunque no sé en qué fue hecho. Allí uno podía tratar el texto del RichTextBox (o lo que parecía ser eso) normalmente (darle formato, etc.) y al hacer clic en una palabra se mostraba en otro cuadro la información pertinente.
Ojalá puedan darme una mano.
Muchas gracias.
Saludos.

Jerónimo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Ayuda con RichTextBox o Word
« Respuesta #2 en: Diciembre 08, 2012, 01:10:47 am »
Bueno vengo solo a dar bulto porque aporte no te puedo dar ya que en esta parte me agarras lento, peor aun que nunca use el control RichTextbox porque nunca me gusto contrario a la mayoría.
Pero como me pico la curiosidad me gustaría preguntarte ¿Para que quieres eso?, porque lo leo y me suena a acertijo, sinceramente no entiendo la finalidad ni el método, y te aseguro que es mi culpa, una explicación mas lenta te agradeceria :-)

"Con paciencia y saliva, un elefante se tiro una hormiga"
Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Ayuda con RichTextBox o Word
« Respuesta #3 en: Diciembre 08, 2012, 02:02:17 pm »
porque esto mismo vi en otro programa (obviamente, no tuve acceso al código), aunque no sé en qué fue hecho

Podrias poner el nombre del programa que dices que hace eso asi para tener mas idea de lo que quieres.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #4 en: Diciembre 08, 2012, 03:52:43 pm »
La verdad, no sé el nombre del programa, porque lo vi "de pasada" cuando estaba siendo usado por otra persona. Pero, respondiendo a la pregunta de Yván, les cuento un poco de qué va la cosa.
Se trata de un sistema de escritura de textos a través de un dispositivo. No se envía todo el texto junto, sino en partes, muchas veces palabra por palabra. Aunque en realidad no se mandan las palabras, sino que el dispositivo envía una codificación a la computadora, la cual es decodificada y pasada a texto. Ese texto debe ser escrito en un RichTextBox (o podría ser un componente de Word incrustado en el sistema), porque luego se debe editar (tipo de letra, alineación y otros atributos que suelen manejarse en la edición de textos).
Hay una tabla de definiciones con los campos "codigo" y "palabra" (ambos con formato Text) donde se cargan todas las palabras del diccionario que se pueda (a veces pueden ser más de una palabra) y se les asigna un código, de acuerdo a un sistema de codificación determinado. Entonces, existen muchos registros (por todas las palabras que se hayan cargado previamente alguna vez). Por ejemplo, pueden encontrarse los siguientes registros:

codigo                       palabra

kd4i9 3934f d1          tallarines
dkfj3                          comer
dk3339j                     voy a                 (más de una palabra)

Supongamos que el texto que va a enviar la máquina es el siguiente: "voy a comer tallarines" (aclaro que el texto no está preestablecido, sino que va surgiendo sobre la marcha). Entonces, enviaría, uno por uno, los siguientes códigos: "dk3339j" "dkfj3" "kd4i9 3934f d1"
El sistema recibiría en primer lugar "dk3339j", buscaría en la tabla de definiciones, donde encontraría "voy a", lo cual escribiría en el RTB. Y el código lo iría guardando en un List. Luego recibiría "dkfj3" y lo procesaría de igual modo. Y así, con el resto.
Luego, cuando se termina el ingreso de datos, se edita el texto y se guarda en format RTF o Word.
Entonces en el RTB quedaría el siguiente texto: "voy a comer tallarines". Y en el List quedaría lo siguiente:

dk3339j
dkfj3
kd4i9 3934f d1

Para seguir con el ejemplo anterior, al terminar el ingreso de datos y editar el texto, podría agregar (desde el teclado de la computadora) la palabra "muchos" entre "comer" y "tallarines" para dejar la frase así: "voy a comer muchos tallarines".
Entonces ahí el texto del RTF sería: "voy a comer muchos tallarines", pero el List quedaría igual, ya que no se ha enviado ningún código desde el dispositivo para la palabra "muchos".
Esto funciona perfectamente. Lo que no puedo es asociar las palabras del RTB a los códigos en el List. Y esto lo necesito para que al poner el cursor en una palabra pueda, mediante el botón derecho del mouse, seleccionar una opción "Ver código" y que en el List se marque el elemento correspondiente.
Aclaro que una palabra puede aparecer varias veces a lo largo del texto. Entonces, cuando se seleccione "Ver código" debiera seleccionarse el elemento correspondiente en el List.
No sé si aclaré u oscurecí...  :P Espero haber hecho lo primero.
¡Muchas gracias!
Saludos.
« última modificación: Diciembre 08, 2012, 03:57:09 pm por Jeronimo »

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #5 en: Diciembre 09, 2012, 04:26:40 pm »
Se me ocurrió que si pudiera "crear" un código RTF tal vez podría utilizarlo para poner el índice del List que corresponda. Lo que quiero decir es que así como está el código "\b" y "\b0" para comenzar y terminar el formato de negrita, tal vez podría utilizar (si hubiere) algún código especial para identificar el índice del List que corresponda. Siguiendo el ejemplo anterior, sería algo así: \ind1 Voy a \ind1 \ind2 comer \ind2 \ind3 tallarines \ind3.
Obviamente, lo probé así y no funciona; escribe el texto pero ignora todo lo demás.
¿Habrá algún código que sirva para hacer algo así?
Mucas gracias.
Saludos.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #6 en: Diciembre 11, 2012, 10:15:02 am »
¿Y si incrusto un documento Word en mi formulario? He visto que en Word se pueden escribir comentarios. A lo mejor puedo incrustar un documento de Word y a medida que el sistema va escribiendo, también va incluyendo un comntario por cada palabra. ¿Se podrá hacer eso? En ese caso, mediante código debiera saber si una palabra tiene comntario (y cuál sería ese).
Por otro lado, no sé si eso haría que la ejecución de mi sistema dependiera de que en la computadora estuviera instalado Word.
¿Qué opinan?
Muchas gracias.
Saludos.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #7 en: Diciembre 17, 2012, 08:59:28 pm »
Se ve que está difícil esta... :(
¿Saben dónde puedo investigar o consultar esto?
No sé por dónde arrancar...  :'(
Muchas gracias.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Ayuda con RichTextBox o Word
« Respuesta #8 en: Diciembre 17, 2012, 09:29:30 pm »
Mi estimado a mi me resulta chino, no puedo mas que darte hurras y deseos a que consigas solucionar esto.
Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Ayuda con RichTextBox o Word
« Respuesta #9 en: Diciembre 17, 2012, 10:31:36 pm »
Yo la verdad no entiendo también ni como empezar por que no tengo idea de que es lo que quiere. Si inventas algo con imágenes estaría bueno, asi vamos a tener mas idea de que es lo que quieres exactamente, nada es difícil hacer el tema es entender mas claro lo que quieres no mas.

Saludos...
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #10 en: Diciembre 17, 2012, 10:39:38 pm »
No sabía que el tema era mi modo confuso de explicarlo. Pensé que era algo muy difícil de hacer. Haré lo que me recomendás, Raúl, y pondré una imagen para que sea más descriptiva que yo.
¡Muchas gracias, muchachos!

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #11 en: Diciembre 17, 2012, 11:31:00 pm »
Hola me parece que con un richtextbox esta muy dificil, quizas con un webbrowser sea posible ya que se puede usar javascript, igual no deja de ser algo complicado.

Saludos.




Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #12 en: Diciembre 18, 2012, 12:43:48 am »
Hola, Leandro.
Pensé lo del webbrowser, pero se me haría muy engorroso (y no sé si lo lograría) conseguir que se pueda editar el texto como se haría con un richtextbox (pudiendo manejar el cursor con el teclado, entre otras cosas).
Muchas gracias.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Ayuda con RichTextBox o Word
« Respuesta #14 en: Diciembre 18, 2012, 10:47:59 am »
Leandro: ¡el primer ejemplo que me pasaste está buenísimo (cuando quiero ver el segundo aparece un mensaje diciendo que no se encuentra el archivo)! No sabía que se podía poner el webbrowser en modo diseño. Queda muy bien y ¡se puede hacer de todo!
¿Creés que se pueda poner algo así como un comentario o un atributo no visible en cada palabra (algo como un campo id o un campo hidden)? Si fuera así, a cada palabra podría asignarle el index de la lista donde se van colocando los códigos que se ingresan por el dispositivo. Eso me vendría de 10.
Otra cosa: en algunos lugares vi códigos para pasar texto de HTML a RTF y viceversa. No los revisé (ni siquiera los bajé). ¿Pensás que se puede hacer esto? Porque todo lo que se haga con el webbrowser debiera guardarlo en ese mismo formato HTML y en RTF o formato Word (preferentemente).
¡Me animó mucho lo que me pasaste!
¡Muchas gracias!

EDITO: Otra cosa que vi es que no se puede tener el texto con una tabulación como sucede con los procesadores de texto. Si pongo "indent" me "indenta" todo el párrafo, o, mejor dicho, todo el texto de ahí en adelante o hasta que "desindente". Lo que quiero es que presionando  la tecla "tab" se haga una sangría (o tabulación) solo de la primera línea y que si el texto es más largo que una lína, luego continúe sobre el margen izquierdo (sin "indentar"), como hacen Word, Bloc de notas, etc.
¿Se puede hacer esto?

« última modificación: Diciembre 18, 2012, 11:15:33 am por Jeronimo »