Cita:
Empezado por andresorozco86
...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
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
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
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
[-]
Str := 'fsBold';
i := GetEnumValue(TypeInfo(TFontStyle), Str);
if (i <> -1) then begin
fs := TFontStyle(i);
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:
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];