Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
Delphi 6 Professional
|
Re: ein String einem TFont zuweisen
13. Dez 2004, 00:15
Ich glaub ich hab da was schönes für dich
Exakt das selbe Problem wie du hatte ich vor einiger Zeit auch, bis ich auf dieses schöne Stück Code gestoßen bin
Font -> String
Delphi-Quellcode:
function FontToString(Font: TFont): string;
begin
Assert(Assigned(Font));
// name, size, bold, italic, underline, strikethrough, colour
Result := Format('%s,%d,%d%d%d%d,%s', [Font.Name, Font.Size,
Integer(fsBold in Font.Style), Integer(fsItalic in Font.Style),
Integer(fsUnderline in Font.Style), Integer(fsStrikeOut in Font.Style),
ColorToString(Font.Color)]);
end;
String -> Font
Delphi-Quellcode:
procedure StringToFont(Str: string; Font: TFont);
const
SEP = ',';
var
i: Integer;
begin
Assert(Assigned(Font));
i := Pos(SEP, Str);
if i = 0 then raise EConvertError.Create(EXCEPT_MSG1);
Font.Name := Copy(Str, 1, i - 1);
Delete(Str, 1, i);
i := Pos(SEP, Str);
if i = 0 then raise EConvertError.Create(EXCEPT_MSG1);
Font.Size := StrToInt(Copy(Str, 1, i - 1));
Delete(Str, 1, i);
if Pos(SEP, Str) <> 5 then raise EConvertError.Create(EXCEPT_MSG1);
Font.Style := [];
if Str[1] = '1' then
Font.Style := Font.Style + [fsBold];
if Str[2] = '1' then
Font.Style := Font.Style + [fsItalic];
if Str[3] = '1' then
Font.Style := Font.Style + [fsUnderline];
if Str[4] = '1' then
Font.Style := Font.Style + [fsStrikeOut];
Delete(Str, 1, 5);
Font.Color := StringToColor(Str);
end;
Hoffe ich konnte helfen!
Schöne Vorweihnachtszeit,
Interceptor
David ~ Nichts ist wahr, alles ist erlaubt ~
|
|
Zitat
|