Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Poner en negrita dentro de un memo o richtext algunas palabras específicas

Hola compañeros del foro, quería saber si existe alguna función que me permita hacer lo siguiente:

Quiero cargar en un memo o RichText un archivo de texto por ejemplo, y que algunas de las palabras que están cargadas en el memo o RichText y que tengo en otro archivo de texto se pongan en negrita, para explicarlo un poco mejor:

Carta.txt //archivo de texto que contiene una carta.
Palabras.ini //archivo que contiene una lista de palabra.

Cargo en el memo o RichText el archivo Carta.txt, luego de cargado en el memo me ponga en negrita las palabras que existen en Palabras.ini, si en palabras.ini tiene "Estimado", si existe en el memo se ponga en negrita, no sé si me expliqué bien, estoy un poco espeso hoy.

Saludos.

PD. Sé cómo leer archivos INI.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 24-04-2008 a las 22:29:07.
Responder Con Cita
  #2  
Antiguo 24-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Bueno, con RichEdit puedes, claro, con TMemo no (al menos de forma sencilla).

En RichEdit, tan sólo tienes que seleccionar el texto por código (con SelStart y SelLength) y cambiar la propiedad SelAttributes (de tipo TFont).

Y creo que ya está



Salu2
Responder Con Cita
  #3  
Antiguo 24-04-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale Miguel y ¿cómo relaciono las palabras del RichText con los que están en el archivo .INI de palabras?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 24-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
¿Buscarlas, dices?

Pues con la función Pos o AnsiPos... pero esa sólo devuelve la posición de la primera... supongo que necesitarás de un bucle, para recorrer todas las palabras del RichEdit y compararlas con las que hay en Palabras.INI.


Salu2
Responder Con Cita
  #5  
Antiguo 24-04-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale pues, déjame entonces hacer par de pruebas con las funciones que me propones, más tarde te comento como me va, Gracias.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 25-04-2008
reinier reinier is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Poder: 0
reinier Va por buen camino
Cita:
Empezado por ixMike Ver Mensaje
¿Buscarlas, dices?

Pues con la función Pos o AnsiPos... pero esa sólo devuelve la posición de la primera... supongo que necesitarás de un bucle, para recorrer todas las palabras del RichEdit y compararlas con las que hay en Palabras.INI.


Salu2

ixMike soy reinier estaba leyendo uno de estos temas y me interese por el que se trata aqui.Tengo una duda paracida a la de enecumene concuerdo contigo en el procedimiento para el cual selecciona la palabra y la pone en negrita ,pero para lo que yo quiero hacer que viene siendo algo parecido a un compilador si a la palabra reservada se le agraga o elimina un caracter esta debe quitarsele el atributo que se le puso(estilo de fuente negrita) y no se de que manera hacer esto si puedes escribeme aqui mismo tu solucion. Gracias
Responder Con Cita
  #7  
Antiguo 25-04-2008
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Poder: 19
santus Va por buen camino
enecumene: Yo lo hice una vez para procesar archivos RTF: Te lo dejo asi te das una idea. Despues lo adaptas a tu proyecto :

Código Delphi [-]
procedure Tform1.ReccorrerTexto;
var
  i : Integer;
begin
  for i := 0 to reDocumento.Lines.Count -1 do begin
    with reDocumento do begin
          SelStart := Perform(EM_LINEINDEX, i, 0) ;    // Se situa en la linea de reDocumento.
          //Perform(EM_SCROLLCARET, 0, 0);             // Mueve el scroll.
          SetFocus;
          SelLength := Length(Lines.Strings[i]);
          atributosGenerales  := DefAttributes;
          procesarLinea(i,Lines.Strings[i]);  //reDocumento.Lines.String[i] es toda la linea seleccionada.
    end;
  end;

end;


procedure procesarLinea(Position:Integer; Text: String);
var
  textoParcial : string;
  posInicial : integer;
begin
  if (Trim(Text) <> '') then begin
    posInicial := 0;
    for i := 1 to Length(Text) + 1 do begin
      if (Text[i] = ' ') or (i = Length(Text) + 1 ) then begin
        reDocumento.SelStart  := reDocumento.Perform(EM_LINEINDEX, Position, 0)+posInicial ; //se posiciona sobre la palabra en la línea.
        reDocumento.SelLength := Length(textoParcial);
        // Aquí tienes que buscar la palabra en la lista:
        // supongamos BuscarEnLista(textoParcial) ... textoParcial Contiene el texto seleccionado.
        posInicial := i;
        textoParcial := '';
      end else if not ( Text[i] = #0) then textoParcial := textoParcial + Text[i];
    end;
  end;
end;

Fijate que por ahí me comí algo en el código porque le saqué un monton de cosas mas que había en el medio que no viene a este caso. Intenta probarlo y después nos cuentas como te fue ...


reinier: No creo que esto te sirva... me imagino que tendrías que elaborar algo con el keypress.... igual no se me ocurre qué. Esto no te servira porque te mueve el cursor en donde estas escribiendo. Si te sirve si lo quieres procesar todo de una.

Saludos a todos.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo poner QRRichText en negrita Gorka Impresión 4 19-08-2013 23:05:45
Insertar palabras desde un memo judit25 Conexión con bases de datos 7 01-03-2008 15:31:07
Como hago para poner algo en negrita diegaso Impresión 0 04-08-2007 00:38:29
Como poner en un hint texto parcialmente en negrita JF Sebastian Varios 2 17-01-2007 16:14:07
Formatear cadena numérica a la derecha dentro de un richtext cesargcman Varios 1 09-05-2004 18:45:53


La franja horaria es GMT +2. Ahora son las 08:23:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi