PDA

Ver la Versión Completa : Remplazar palabras en un richedit


Yasnet
21-11-2008, 19:48:52
Es posible remplazar una determinada palabra que se a escribido en un richedit por otro q el usuario desee?, si por ejemplo tengo escrito:
"Hola como stas, espero q estes bien"
Y si deseo remplazar las palabras:
-stas-->estas
-q----->que

Seria posible remplazarlas sin necesidad de poner un remplacedialog?, para que pueda quedar asi:
"Hola como estas, espero que bien"

Les agradeceria que me pudeieran proporcionar el codigo, si es que se pude hacer como digo;)

cHackAll
22-11-2008, 02:17:44
Busca los componentes JEDI o SynEdit.

Lepe
22-11-2008, 13:35:44
OFFTOPIC: Yo directamente le daba dos yoyas al usuario por escribir así, es más, hacer un programa para corregir ese tipo de fallos no debería hacerse. Sería mejor añadirle alguna neurona al usuario antes... yo me lo haría mirar... :D

Saludos

rgstuamigo
22-11-2008, 15:26:48
Es un poco dificil pero no imposible.
Pienso que podrias hacerte un tipo de Analizador sintactico asi como los tienen los Compiladores de los Lenguajes de Programacion, que analizan la sintaxis de lo que se esta escribiendo, y te dicen donde hay errores.
Claro esta que tendrias que programar como negro y darle duro para lograrlo de esta forma.
Otra opcion que veo es que tengas un BD de todas la palabras , y cuando el usuario escriba una palabra mal, (osea que no este en la BD) le podrias avisar de alguna forma al estilo como lo hace Microsoft Word.
Es asi amigo de poder se puede pero asi como tu lo quieres (sin necesidad de poner un remplacedialog) es un poco dificil,pero no imposible...;)
Saludos........:cool:

Yasnet
22-11-2008, 16:25:14
Bueno, nose si m explique bien, lo que kiero esk el usuario coloque en unos edits su nombre, apellidos, escuela, etc. Y que en un richedit que tenga un texto asi:

"La Institución UdeC acepta a Nombre, Apellidos de la escuela Escuela, ha sido aceptado en esta Institución."

En donde se escriba lo que el usuario ya a escribo con anterioridad en los edits sobre esas palabras.

Espero que ahora si me puedan entender y me puedan ayudar con el codigo, sin usar un replacedialog, Grax:).

rgstuamigo
22-11-2008, 16:40:09
Bueno:rolleyes: podria ser asi :

procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Lines.Insert(2,Edit1.Text+' '+Edit2.Text);//Aqui inserto el nombre y apellido en la possicio 2
RichEdit1.Lines.Insert(3,Edit3.Text);//Aqui el nombre de la escuela

end;

cHackAll
22-11-2008, 21:51:52
OFFTOPIC: Yo directamente le daba dos yoyas al usuario por escribir así, es más, hacer un programa para corregir ese tipo de fallos no debería hacerse. Sería mejor añadirle alguna neurona al usuario antes... yo me lo haría mirar... :D

Saludos

Yo creo que si podríamos darle un buen uso a ese corrector automatico :rolleyes:

Bueno, nose si m explique bien, lo que kiero esk el usuario... ...Grax:).

:eek::D

Lepe
23-11-2008, 12:24:10
El problema no es el programa en sí mismo, es la asociación mental que hace el usuario. Cada vez que piensa en la palabra "que" está imaginando en su mente la palabra "k", es decir, está reforzando erróneamente algo que ha aprendido hasta el punto de que llega al insconciente. Cuando tu usuario escriba a mano un documento oficial (para entregarlo en un ayuntamiento) con esas notaciones sin haberse dado cuenta siquiera, espero, que en ese momento se dé cuenta de la gravedad del asunto.

OFFTOPIC: Yasnet, sólo es un pensamiento en voz alta, puedes estar de acuerdo o no :).

Saludos

Yasnet
25-11-2008, 03:54:20
Tengo talvez una idea de como poder hacer que se pueda sustituir.
Talvez pudera ser que se ponga una variable talvaz abc y decrile que esa variable sea sustituida por lo que tiene un edit, que en este caso sería el Nombre del Usuarios; quedando asi:
"La UdeC acepta a abc(seria la variable), en esta Institución"

En el edit se escribiria talvez: Yasnet.

Y asi seria el resultado:
"La UdeC acepta a Yasnet(la variable ya fue sustituida por lo que tenia el edit), en esta Institución.

Si alguen sabe si se puede hacer como estoy diciendo y si seria tan amable de decirme cual seria el codigo, se los agradecería.

PD: Intente lo de richedit1.lines.insert(0,edi1.text);
pero no sustituye una palabra ya existente por lo que ay en el edit, solamente se inserta y hace que la palabra que estaba en el richedit pase a la segunda linea.:confused:

Lepe
25-11-2008, 04:27:13
Yo te recomiendo lo que usa QuickReport y es encerrar las variables entre llaves (ya que es un carácter que se usa poco)


{Nombrecliente}
{direccion}
{codigoPostal} {poblacion} ({provincia})

Estimado {NombreCliente}, es un placer ......


Ahora sólo tienes que hacer un ReplaceAll

Memo1.Text := StringReplace(Memo1.Text, '{NombreCliente}',' Pepe Martinez', [rfReplaceAll]);

Las palabras a sustituir puedes guardarlas en una tabla, archivo ini o similar.

Saludos