Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-11-2005
Clantt Clantt is offline
Miembro
 
Registrado: abr 2004
Ubicación: Tarija
Posts: 34
Poder: 0
Clantt Va por buen camino
Lightbulb Memo con Línea de colores

hola a todos como les va, he estado intentando escribir una linea de texto en un memo de un color y la sigueinte de otro color pero nada, mi poca experiencia me hizo hacer esto.
Código Delphi [-]
 ....
 memo1.font.color := clBlue;
 memo1.lines.add := 'Esto es un texto en azul';
 memo1.font.color := clRed;
  memo1.lines.add := 'Esto es un texto en Rojo';
 ....

Muy bonito pero cuando se aplica la línea de comando del color todo el texto del memo se cambia entonces todo queda o azul o rojo pero no cada línea, alguien sabe como hago este truco de lines de colores.

un saludo a todos
Responder Con Cita
  #2  
Antiguo 04-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Un memo no soporta esa característica.

Usa un TRichEdit, con su propiedad plainText a false; para cambiar el color usa SelAttributtes donde puedes modificar la fuente para el texto seleccionado, o bien para la posición actual del Cursor.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 04-11-2005
Clantt Clantt is offline
Miembro
 
Registrado: abr 2004
Ubicación: Tarija
Posts: 34
Poder: 0
Clantt Va por buen camino
gracias voy a probar esta noche mañana te comento como me fué. Chauuu
Responder Con Cita
  #4  
Antiguo 21-12-2011
Flecha Flecha is offline
Miembro
 
Registrado: nov 2006
Posts: 59
Poder: 18
Flecha Va por buen camino
Por desgracia, con TRichEdit tampoco se pueden mostrar lineas en distintos colores de fondo.
Sí se pueden mostrar textos en distintos formatos (tamaños, tipos de letra, color del texto, etc...). Pero el color del fondo del texto es igual que con TMemo, o sea, no se puede diferenciar de una linea a otra...

Claro está..., a no ser que alguien conozca algún truco...
¿Alguien sabe cómo?
Responder Con Cita
  #5  
Antiguo 21-12-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
¿Estás seguro, Flecha? Me suena que la propiedad "Font" tiene también un campo "Background". Ahora mismo estoy en la oficina así que no puedo comprobarlo...

Y si no fuera así, quizá en Dr. Dobbs, RemObjects o en el proyecto JEDI haya algo. (Creo que he escrito alguno de los nombres mal, ejem... :/ )
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 21-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Flecha Ver Mensaje
Por desgracia, con TRichEdit tampoco se pueden mostrar lineas en distintos colores de fondo.
Sí se pueden mostrar textos en distintos formatos (tamaños, tipos de letra, color del texto, etc...). Pero el color del fondo del texto es igual que con TMemo, o sea, no se puede diferenciar de una linea a otra...

Claro está..., a no ser que alguien conozca algún truco...
¿Alguien sabe cómo?
Hola.

No sé bién que uso pensas darle, pero si lo que buscas es resaltar un texto, línea o párrafo seleccionado, podés hacerlo de este modo:
Código Delphi [-]
implementation
...
uses RichEdit;

procedure TForm1.Button1Click(Sender: TObject);
var
  Format: CHARFORMAT2;
begin
  FillChar(Format, SizeOf(Format), 0);
  with Format do
  begin
    cbSize:= SizeOf(Format);
    dwMask:= CFM_BACKCOLOR;
    if ColorDialog1.Execute then
      crBackColor:= ColorDialog1.Color;
    RichEdit1.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
  end;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 21-12-2011
Flecha Flecha is offline
Miembro
 
Registrado: nov 2006
Posts: 59
Poder: 18
Flecha Va por buen camino
Ante todo, muchas gracias a los dos.

En Delphi6, que es el que yo uso (desfasado, ya sé, pero es lo que tenemos por aquí ), Font no tiene propiedad Background. Para dar distintos formatos al texto en un TRichEdit, se usa la propiedad SelAttributes, que a su vez tampoco tiene ninguna propiedad que permita cambiar el color de fondo.


Ecfisa, estoy intentando probar tu aporte, pero tengo problemas con el tipo CHARFORMAT2.
Supongo que tendrá que ver con mi versión de Delphi .


De todos modos no me vale el TRichEdit. Me explico.
Quiero hacerme un comparador de textos, de manera que tenga dos TMemos, uno al lado de otro, y al apretar un botón el programa encuentre automáticamente todas las diferencias entre ellos, dejando todas ellas bien resaltadas. Una vez localizadas las diferencias, poder actualizar uno u otro TMemo, o incluso poder editarlos.
No me vale el TRichEdit porque este componente es muy limitado a la hora de contener textos de gran tamaño.


Un saludo.
Responder Con Cita
  #8  
Antiguo 21-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Flecha.

Cita:
pero tengo problemas con el tipo CHARFORMAT2.
No tendrías que tener mayor inconveniente si incluis RichEdit en la cláusula uses:
Código Delphi [-]
uses RichEdit;
En este enlace se habla de su uso en Delphi 3...



Cita:
No me vale el TRichEdit porque este componente es muy limitado a la hora de contener textos de gran tamaño.
La capacidad de un TRichEdit es muy amplia, aunque tiene un pequeño bug: No es cierto que al ajustar la propiedad MaxLength = 0 soporta el máximo posible de caracteres. Hay que darle un valor lo suficientemente grande, al ser la propiedad MaxLength de tipo Integer, el máximo valor que admitirá es 2147483647.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 22-12-2011
Flecha Flecha is offline
Miembro
 
Registrado: nov 2006
Posts: 59
Poder: 18
Flecha Va por buen camino
Ok. Muchas gracias.

Desconocía lo de ese bug, así que volveré a usar TRichEdit una vez superado el problema con el tamaño.

Además, tu truco funciona perfecto.
Es una lástima que sólo resalte el color de fondo donde hay texto (no lo resalta en líneas vacías), pero me vale perfectamente.

Muchas gracias.
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


La franja horaria es GMT +2. Ahora son las 17:10:58.


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