Ver Mensaje Individual
  #5  
Antiguo 09-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.297
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por andresorozco86 Ver Mensaje
...tengo en una variable un registro de tipo style y necesito cambiarlo a string.
Hasta ahí nos había quedado claro.

Cita:
Empezado por andresorozco86 Ver Mensaje
y cuando asigno el ft.style me sale que no son compatibles los tipos string y style.
Normal, son de diferente tipo.

Cita:
Empezado por andresorozco86 Ver Mensaje
Lo que necesito es cambiar el tipo string a style pero no se como hacerlo.
Esto es lo que pasa cuando uno no le dedica el suficiente tiempo a redactar una pregunta. Que dice justo lo contrario de lo que quería decir.
Y es resto perdemos el tiempo, cosa que molesta mucho.

Cita:
Empezado por Lord Delfos Ver Mensaje
Que yo sepa, pues no hay una manera automática. Esto se debe a que el estilo de fuente es un conjunto, y no existe una manera de convertir de string a conjunto.
Sí hay una manera, utilizando RTTI, muy similar a como hemos comentado arriba (el caso justo contrario).


Código Delphi [-]
  // Supongamos que esta variable tiene el tipo
  Str := 'fsBold';
  // Convertir el String a entero segun el tipo a Estilo
  i := GetEnumValue(TypeInfo(TFontStyle), Str);
  // comprobamos que existe ese valoir (por si lo hemos escrito mal)
  if (i <> -1) then begin
    // Y sacamos el estilo asociado
    fs := TFontStyle(i);
    // Ya lo podemos asignar
    Label1.Font.Style := Label1.Font.Style + [fs];
  end;

Otro detalle, es que como Font.Style es un conjunto, no puedes asignarlo directamente a la variable:

Código Delphi [-]
   Label1.Font.Style := fs;

Sino que debes añadir o eliminar elementos:

Código Delphi [-]
   Label1.Font.Style := Label1.Font.Style + [fs];
   Label1.Font.Style := Label1.Font.Style - [fs];
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita