FontDialog.Font.Style;

0

Jak to coś zapisać do pliku INI??

PS: wyskakuje bład: Uncompatible types: String and TFontStyle.

PS2: Wielkość i nazwe czcionki normalnie się zapisuje i działa!!!

0

ale styl czcionki to przeciez nie ciąg znaków :) więc będziesz musiał wsyzstko po kolei zapisywac

czyli if styl = +[fsbold] then czy jakos tak to dodaj fsbold :)
mozna to podzielić na string ze znacznikami ';', ale kodziku pisac mi sie nie chce :) jakby cosik to na gg

0

Pochwalony!
Jeżeli musisz już koniecznie zapisać całe Font.Style, to bym Ci radził skorzystać z plików typowanych, bądź strumieni. Są artykuły o tym :P

0

Fragment mojego ME (kolejny):
[code]Const Sep:String=';';

Procedure OdczytajFont(Font:TFont;Nazwa:String);
Var S:String;
Begin
S:=SReadString(Nazwa,'');
If S='' Then Exit;
With Font Do
Begin
{Font.}Charset:=StrToInt(Wyciagnij(S,Sep));
{Font.}Color:=StringToColor(Wyciagnij(S,Sep));
{Font.}Height:=StrToInt(Wyciagnij(S,Sep));
{Font.}Name:=Wyciagnij(S,Sep);
{Font.}Pitch:=TFontPitch(StrToInt(Wyciagnij(S,Sep)));
{Font.}Size:=StrToInt(Wyciagnij(S,Sep));
{Font.}Style:=[];
If Wyciagnij(S,Sep)='1' Then Style:=Style+[fsBold];
If Wyciagnij(S,Sep)='1' Then Style:=Style+[fsItalic];
If Wyciagnij(S,Sep)='1' Then Style:=Style+[fsUnderLine];
If Wyciagnij(S,Sep)='1' Then Style:=Style+[fsStrikeOut];
End;
End;

Function Iif(Warunek:Boolean;Const True,False:String):String;
Begin
If Warunek Then Result:=True Else Result:=False;
End;

Procedure ZapiszFont(Font:TFont;Nazwa:String);
Var S:String;
Begin
With Font Do
Begin
S:=IntToStr({Font.}Charset)+Sep+
ColorToString({Font.}Color)+Sep+
IntToStr({Font.}Height)+Sep+
{Font.}Name+Sep+
IntToStr(Ord({Font.}Pitch))+Sep+
IntToStr({Font.}Size)+Sep+
Iif(fsBold in Style,'1','0')+Sep+
Iif(fsItalic in Style,'1','0')+Sep+
Iif(fsUnderLine in Style,'1','0')+Sep+
Iif(fsStrikeOut in Style,'1','0')+Sep;
SWriteString(Nazwa,S);
End;
End;[/code]

0

Dawno, dawno temu, w Internecie znalazłem rozwiązanie w stylu poniższego:
Zapis TFontStyle do pliku INI:
var
INI : TINIFile;
begin
try
INI := TINIFile.Create('C\:plik.ini');
INI.WriteInteger('Sekcja', 'FontStyle', Byte(Label1.Font.Style));
finally
INI.Free;
end;
end;

Odczyt TFontStyle z pliku INI:
var
INI : TINIFile;
FontStyle : Integer;
begin
try
INI := TINIFile.Create('C\:plik.ini');
FontStyle := INI.ReadInteger('Sekcja','FontStyle',0);
Label1.Font.Style := TFontStyles(Byte(FontStyle));
finally
INI.Free;
end;
end;

Myślę, że to powinno wystarczyć. :)

Ps. Przykład zapisuje styl czcionki dla Label1

1 użytkowników online, w tym zalogowanych: 0, gości: 1