Re: Tfont



Thanks ever so much

"Pete" <nobody@xxxxxxxxxxx> wrote in message
news:13uingk7a8sgg$.1cj73r3owm62c$.dlg@xxxxxxxxxxxxx
> On Sat, 27 Aug 2005 07:03:19 +1200, anthony wrote:
>
> > so sorry to be a pain, but I am not sure how to call these procedures.
> >
> > "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;
>
> Here's an example using SaveFont to get you started:
>
> uses
> IniFiles;
>
> 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 TForm1.Button1Click(Sender: TObject);
> var
> Ini : TIniFile;
> begin
> Ini:= TIniFile.Create('E:\Temp\MyFont.ini');
> try
> SaveFont(Ini, 'Config', Form1.Font);
> finally
> Ini.Free;
> end;
> end;


.


Quantcast