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 25-05-2005
jorodgar jorodgar is offline
Miembro
 
Registrado: abr 2005
Posts: 76
Poder: 20
jorodgar Va por buen camino
obtener color de FontDialog1

La idea es conseguir el codigo de color, si está en negrita, si está en cursiva y el tamaño de la letra de un FontDialog1. Solo consigo el nombre de la fuente con la orden edit1.text:=RichEdit1.SelAttributes.Name.
Alguna idea ? Gracias

procedure TForm1.SelectFont(Sender :TObject);
begin
FontDialog1.Font.Assign(RichEdit1.SelAttributes);

if (FontDialog1.Execute) then
RichEdit1.SelAttributes.Assign( FontDialog1.Font );

edit1.text:= RichEdit1.SelAttributes.Name;
RichEdit1.SetFocus;
end;
Responder Con Cita
  #2  
Antiguo 25-05-2005
jorodgar jorodgar is offline
Miembro
 
Registrado: abr 2005
Posts: 76
Poder: 20
jorodgar Va por buen camino
Ahora ya tan sólo me falta saber el color

Código Delphi [-]
procedure TForm1.SelectFont(Sender :TObject);
 begin
   FontDialog1.Font.Assign(RichEdit1.SelAttributes);
 
   if (FontDialog1.Execute) then
   begin
    // RichEdit1.SelAttributes.Assign( FontDialog1.Font ); // Cogeria todas las propiedades
    // Determina que propiedades coger del FontDialog
     RichEdit1.SelAttributes.Color:=FontDialog1.Font.Color;
     RichEdit1.SelAttributes.Name:=FontDialog1.Font.Name;
     RichEdit1.SelAttributes.Size:=FontDialog1.font.Size;
     RichEdit1.SelAttributes.Style:=FontDialog1.Font.Style;
   end;
 
  edit1.text:= RichEdit1.SelAttributes.Name;
  edit2.Text:=intTostr(FontDialog1.font.Size);
  if (fsBold in RichEdit1.SelAttributes.Style) then edit3.text:='negrita';
  if (fsItalic in RichEdit1.SelAttributes.Style) then edit3.text:='cursiva';
  if (fsUnderline in RichEdit1.SelAttributes.Style) then edit3.text:='subrayado';
 
  RichEdit1.SetFocus;
 end;

Última edición por marcoszorrilla fecha: 25-05-2005 a las 19:22:36.
Responder Con Cita
  #3  
Antiguo 25-05-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
El color es un número:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntTostr(RichEdit1.Font.Color));
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 25-05-2005
jorodgar jorodgar is offline
Miembro
 
Registrado: abr 2005
Posts: 76
Poder: 20
jorodgar Va por buen camino
Otra solucion

Gracias marcos por tu aportación. Al final lo conseguí sacar con un codigo mucho mas largo, luego lo modicaré usando tu instrucción. Por si alguno le interesa otra forma de hacerlo menos optima es la siguiente :

procedure TForm1.SelectFont(Sender :TObject);
var
color,font:string;
size:integer;
negrita,cursiva,subrayado:boolean;

begin
FontDialog1.Font.Assign(RichEdit1.SelAttributes);

if (FontDialog1.Execute) then
begin
// RichEdit1.SelAttributes.Assign( FontDialog1.Font ); // Cogeria todas las propiedades
// Determina que propiedades coger del FontDialog
RichEdit1.SelAttributes.Color:=FontDialog1.Font.Color;
RichEdit1.SelAttributes.Name:=FontDialog1.Font.Name;
RichEdit1.SelAttributes.Size:=FontDialog1.font.Size;
RichEdit1.SelAttributes.Style:=FontDialog1.Font.Style;
end;

font:= RichEdit1.SelAttributes.Name;
size:=RichEdit1.SelAttributes.Size;
if (fsBold in RichEdit1.SelAttributes.Style) then negrita:=true;
if (fsItalic in RichEdit1.SelAttributes.Style) then cursiva:=true;
if (fsUnderline in RichEdit1.SelAttributes.Style) then subrayado:=true;

case RichEdit1.SelAttributes.Color of
clAqua : color:='clAgua';
clblack : color:='clBlack';
clBlue : color:='clBlue';
clCream : color:='clCream';
clDkGray : color:='clDkGray';
clFuchsia : color:='clFuchsia';
clGreen : color:='clGreen';
clLime : color:='clLime';
clLtGray : color:='clLtGray';
clMaroon : color:='clMaroon';
clMedGray : color:='clMedGray';
clMoneyGreen : color:='clMoneyGreen';
clNavy : color:='clNavy';
clOlive : color:='clOlive';
clPurple : color:='clPurple';
clRed : color:='clRed';
clSkyBlue : color:='clSkyBlue';
clTeal : color:='clTeal';
clWhite : color:='clWhite';
clYellow : color:='clYellow';
else color:='clBlack';
end;
RichEdit1.SetFocus;
end;
Responder Con Cita
  #5  
Antiguo 25-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Si lo que queres es encontrar la descripción textual de un color, la unidad Graphics tiene la función ColorToString que básicamente hace lo que vos estas haciendo aqui, pero de forma mas óptima.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 25-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y como para algo ha de querer guardar el nombre del color supongo que también le interesará la función inversa StringToColor.

// Saludos
Responder Con Cita
  #7  
Antiguo 25-05-2005
jorodgar jorodgar is offline
Miembro
 
Registrado: abr 2005
Posts: 76
Poder: 20
jorodgar Va por buen camino
Muchas gracias. Funciones que me las apunto a pesar de que con el número de color me vale.
Responder Con Cita
  #8  
Antiguo 20-07-2006
dicatek dicatek is offline
Miembro
 
Registrado: jun 2006
Posts: 46
Poder: 0
dicatek Va por buen camino
Ola!

Esot creando una opción para que mediante un FontDialog se me cargue el nombre de la fuente y el tamaño en dos TEdits. Tengo ya todo el sistema hecho, pero la paleta que se me abre (FontDialog) hay muchas más opciones (Subrayado, Tachado, Color...) que no me interesan para nada.

Mi pregunta es si puedo editar el FontDialog para que sólo muestre el nombre y tamaño de letra

Muchas gracias!
Responder Con Cita
  #9  
Antiguo 20-07-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pon la propiedad fdNoStyleSel, que está en options a Falso y no se mostrará nada más que las opciones que pides.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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 15:19:53.


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