PDA

Ver la Versión Completa : Dar formato a un trozo de texto dentro de un dbrichedit


johurgi
06-11-2006, 11:55:52
Hola a tod@s de nuevo.

Tengo en mi aplicacion un dbrichedit que lee/escribe en una base de datos, y me gustaria que los usuarios pudieran subrayar,poner en negrita cambiar el color de un trozo de texto,etc.... que ellos previamente han seleccionado.

He probado a trozear la cadena y almacenar cada trozo en un richedit que creo por codigo, y el trozo que el usuario ha seleccionado lo cambio ejecutando un fontdialog para que el usuario seleccione las caracteristicas.

No se me ocurre ninguna forma mas de como dar formato a eso texto.

Gracias de antemano.

Lepe
06-11-2006, 12:24:09
Puedes situar botones de negrita y subrayado, al pulsarlo, modificas la propiedad que corresponda dentro de SelAttributes, (mira la ayuda).

Abajo de este hilo, tienes temas relacionados. Se ha tratado otras veces.

Saludos

johurgi
06-11-2006, 12:44:47
Donde puedo encontrar esos botones. Ya que la forma que tengo yo de sacar el menu de fuentes es con un fontDialog. Estado probando la forma que me has dicho pero con el fontdialog i el texto no se cambia ni se almacena.


if button = mbright then
begin
FontDialog1.Execute(dbrichedit2.Handle);
dbrichedit2.SelAttributes.Size:=FontDialog1.Font.Size;
dbrichedit2.SelAttributes.Name:=FontDialog1.Font.Name;
dbrichedit2.SelAttributes.Color:=FontDialog1.Font.Color;
dbrichedit2.Refresh;
dm.table1.Edit;
dm.table1.Post;
end;

johurgi
06-11-2006, 13:08:04
Ya lo he solucionado al hacer nada mas cambiarlo el post el dbrichedit2 se rallaba i me dejaba lo que habia en la base de datos. Con el siguiente codigo he logrado que funcione.


if button = mbright then
begin
FontDialog1.Font:=dbrichedit2.Font;
FontDialog1.Execute(dbrichedit2.Handle);
dbrichedit2.SelAttributes.Size:= FontDialog1.Font.Size;
dbrichedit2.SelAttributes.Name:= FontDialog1.Font.Name;
dbrichedit2.SelAttributes.Color:= FontDialog1.Font.Color;
dbrichedit2.SelAttributes.Style:=FontDialog1.Font.Style;
dbrichedit2.Refresh;
dm.CartasRemDos.Edit;
end;