Re: Tfont



and yes I can see how it is done now, I like the registry idea better, but
until I learn how to do that I will implement one of these methods, It is
the font and colors of a Tlistbox I am wanting to save.


"Pete" <nobody@xxxxxxxxxxx> wrote in message
news:1sh4xcydzcr3u$.1r792894qh5b2$.dlg@xxxxxxxxxxxxx
> On Fri, 26 Aug 2005 11:01:44 +1200, anthony wrote:
>
> > is it possible to turn a tFont into a string so I can save what the font
of
> > a certain component is
> >
> > I am want to store the fonts and background colors, so that when the
> > appication restarts it will load the attributes for me.
> >
> > Anthony
>
> Here's a couple of solutions that I grabbed from an unknown Delphi page a
> long time ago:
>
> 1. very easy but not result isn't compact and effective (by data storage)
>
>
> procedure SaveFont(FStream: TIniFile; Section: string; smFont: TFont);
> begin
> FStream.WriteString(Section, Ident + 'Name', smFont.Name);
> FStream.WriteInteger(Section, Ident + 'CharSet', smFont.CharSet);
> FStream.WriteInteger(Section, Ident + 'Color', smFont.Color);
> FStream.WriteInteger(Section, Ident + 'Size', smFont.Size);
> FStream.WriteInteger(Section, Ident + 'Style', Byte(smFont.Style));
> end;
>
> procedure LoadFont(FStream: TIniFile; Section: string; smFont: TFont);
> begin
> smFont.Name := FStream.ReadString(Section, Ident + 'Name', smFont.Name);
> smFont.CharSet := TFontCharSet(FStream.ReadInteger(Section, Ident +
> 'CharSet', smFont.CharSet));
> smFont.Color := TColor(FStream.ReadInteger(Section, Ident + 'Color',
> smFont.Color));
> smFont.Size := FStream.ReadInteger(Section, Ident + 'Size',
smFont.Size);
> smFont.Style := TFontStyles(Byte(FStream.ReadInteger(Section, Ident +
> 'Style', Byte(smFont.Style))));
> end;
>
> 2. more hardly than first method, but result is compact. I use this method
> in all own apps.
>
>
> procedure SaveFont(FStream: TIniFile; Section: string; smFont: TFont);
> begin
> FStream.WriteString(Section, 'Font', smFont.Name + ',' +
> IntToStr(smFont.CharSet) + ',' +
> IntToStr(smFont.Color) + ',' +
> IntToStr(smFont.Size) + ',' +
> IntToStr(Byte(smFont.Style)));
> end;
>
> procedure LoadFont(FStream: TIniFile; Section: string; smFont: TFont);
> var s, Data: string;
> i: Integer;
> begin
> s := FStream.ReadString(Section, 'Font', ',,,,');
> try
> i := Pos(',', s);
> if i > 0 then
> begin
> {Name}
> Data := Trim(Copy(s, 1, i-1));
> if Data <> '' then
> smFont.Name := Data;
> Delete(s, 1, i);
> i := Pos(',', s);
> if i > 0 then
> begin
> {CharSet}
> Data := Trim(Copy(s, 1, i-1));
> if Data <> '' then
> smFont.Charset := TFontCharSet(StrToIntDef(Data,
> smFont.Charset));
> Delete(s, 1, i);
> i := Pos(',', s);
> if i > 0 then
> begin
> {Color}
> Data := Trim(Copy(s, 1, i-1));
> if Data <> '' then
> smFont.Color := TColor(StrToIntDef(Data, smFont.Color));
> Delete(s, 1, i);
> i := Pos(',', s);
> if i > 0 then
> begin
> {Size}
> Data := Trim(Copy(s, 1, i-1));
> if Data <> '' then
> smFont.Size := StrToIntDef(Data, smFont.Size);
> Delete(s, 1, i);
> {Style}
> Data := Trim(s);
> if Data <> '' then
> smFont.Style := TFontStyles(Byte(StrToIntDef(Data,
> Byte(smFont.Style))));
> end
> end
> end
> end;
> except
> end;
> end;


.



Relevant Pages

  • Re: Tfont
    ... > FStream.WriteInteger(Section, Ident + 'CharSet', smFont.CharSet); ... more hardly than first method, but result is compact. ...
    (alt.comp.lang.borland-delphi)
  • Re: Tfont
    ... > is it possible to turn a tFont into a string so I can save what the font of ... FStream.WriteInteger(Section, Ident + 'CharSet', smFont.CharSet); ... more hardly than first method, ... var s, Data: string; ...
    (alt.comp.lang.borland-delphi)