000
05.07.2004, 00:19 Uhr
cesa
|
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 ?
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
C++: |
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;
|
|