Einzelnen Beitrag anzeigen

Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#15

Re: ein String einem TFont zuweisen

  Alt 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] = '1then
    Font.Style := Font.Style + [fsBold];
  if Str[2] = '1then
    Font.Style := Font.Style + [fsItalic];
  if Str[3] = '1then
    Font.Style := Font.Style + [fsUnderline];
  if Str[4] = '1then
    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 ~
  Mit Zitat antworten Zitat