TFontStyle in ini-Datei speichern
-
Hallo
Ich möchte von meinem Label alle Daten die in TFont gespeichert sind in eine ini-datei speichern.
Habe im Net ein wenig gesucht und fand auch was. Aber es war in Delphi geschrieben.
Habe es denn in C umgeschrieben bis auf die Sache mit TFontStyle, da bekomme nicht weiter.Hat einer ne Idee ?
In C:
void __fastcall LFont(TFileName ort, String Section, TFont *smFont) { TIniFile *FStream = new TIniFile (ort); smFont->Name = FStream->ReadString(Section, "Name", smFont->Name); smFont->Color = TColor(FStream->ReadInteger(Section, "Color", smFont->Color)); smFont->Size = FStream->ReadInteger(Section, "Size", smFont->Size); // smFont->Style = smFont->Style<<TFontStyle(Byte(FStream->ReadInteger(Section, "Style", smFont->Style<<Byte(smFont->Style) ) ) ); Byte a = FStream->ReadInteger(Section, "Style", 1); smFont->Style=smFont->Style<<a; smFont->Style = smFont->Style<<TFontStyle(Byte(FStream->ReadInteger(Section, "Style", smFont->Style<<Byte(smFont->Style) ) ) ); delete FStream; } void __fastcall SaveFont(TFileName ort, String Section, TFont *smFont) { TIniFile *FStream = new TIniFile (ort); FStream->WriteString (Section, "Name" , smFont->Name); FStream->WriteInteger(Section, "Color" , smFont->Color); FStream->WriteInteger(Section, "Size" , smFont->Size); // Byte a = Byte(smFont->Style); // FStream->WriteInteger(Section, "Style" , <<smFont->Style); // FontToInt delete FStream; }
Das Original
uses Inifiles; procedure SaveFont(FName: string; Section: string; smFont: TFont); var FStream: TIniFile; begin FStream := TIniFile.Create(FName); try FStream.WriteString(Section, 'Name', smFont.Name); FStream.WriteInteger(Section, 'CharSet', smFont.CharSet); FStream.WriteInteger(Section, 'Color', smFont.Color); FStream.WriteInteger(Section, 'Size', smFont.Size); FStream.WriteInteger(Section, 'Style', Byte(smFont.Style)); finally FStream.Free; end; end; procedure LoadFont(FName: string; Section: string; smFont: TFont); var FStream: TIniFile; begin FStream := TIniFile.Create(Fname); try smFont.Name := FStream.ReadString(Section, 'Name', smFont.Name); smFont.CharSet := TFontCharSet(FStream.ReadInteger(Section, 'CharSet', smFont.CharSet)); smFont.Color := TColor(FStream.ReadInteger(Section, 'Color', smFont.Color)); smFont.Size := FStream.ReadInteger(Section, 'Size', smFont.Size); smFont.Style := TFontStyles(Byte(FStream.ReadInteger(Section, 'Style', Byte(smFont.Style)))); finally FStream.Free; end; end; //Example: //Beispiel: //Save Font procedure TForm1.Button1Click(Sender: TObject); begin SaveFont('font.ini', 'label', label1.Font); end; procedure TForm1.Label1DblClick(Sender: TObject); begin if FontDialog1.Execute then label1.Font := FontDialog1.Font end; //Load Font procedure TForm1.Button2Click(Sender: TObject); begin LoadFont('font.ini', 'label', label1.Font); end;
-
Siehe z.B. die Borland Newsgroups.