Как сохранить в ini файле настройки TFont
Как сохранить в ini файле настройки TFont
Как сохранить в ini файле настройки TFont uses IniFiles; procedure TForm1.Button1Click(Sender: TObject); var IniFile : TIniFile; begin IniFile := TIniFile.Create('myIni.ini'); with Edit1.Font do with IniFile do begin Name := ReadString ('Font','Name','MS Mans Serif'); Charset := ReadInteger('Font','Charset',RUSSIAN_CHARSET); Color := ReadInteger('Font','Color', clWindowText); Height := ReadInteger('Font','Height',-11); Size := ReadInteger('Font','Size',8); Style := TFontStyles(Byte(ReadInteger('Font','Style',0))); end; IniFile.Free; end; procedure TForm1.Button2Click(Sender: TObject); var IniFile : TIniFile; begin IniFile := TIniFile.Create('myIni.ini'); with Edit1.Font do with IniFile do begin; WriteString ('Font','Name', Name); WriteInteger('Font','Charset', Charset); WriteInteger('Font','Color', Color); WriteInteger('Font','Height', Height); WriteInteger('Font','Size', Size); WriteInteger('Font','Style',Byte(Style)); end; IniFile.Free; end; ***************************************************** Сохранение параметров шрифта в файле function fonttostr(font: tfont): string; procedure yes(var str:string); begin str := str + 'y'; end; procedure no(var str:string); begin str := str + 'n'; end; begin {кодируем все атрибуты tfont в строку} result := ''; result := result + inttostr(font.color) + '|'; result := result + inttostr(font.height) + '|'; result := result + font.name + '|'; result := result + inttostr(ord(font.pitch)) + '|'; result := result + inttostr(font.pixelsperinch) + '|'; result := result + inttostr(font.size) + '|'; if fsbold in font.style then yes(result) else no(result); if fsitalic in font.style then yes(result) else no(result); if fsunderline in font.style then yes(result) else no(result); if fsstrikeout in font.style then yes(result) else no(result); end; procedure strtofont(str: string; font: tfont); begin if str = '' then exit; font.color := strtoint(tok('|', str)); font.height := strtoint(tok('|', str)); font.name := tok('|', str); font.pitch := tfontpitch(strtoint(tok('|', str))); font.pixelsperinch := strtoint(tok('|', str)); font.size := strtoint(tok('|', str)); font.style := []; if str[0] = 'y' then font.style := font.style + [fsbold]; if str[1] = 'y' then font.style := font.style + [fsitalic]; if str[2] = 'y' then font.style := font.style + [fsunderline]; if str[3] = 'y' then font.style := font.style + [fsstrikeout]; end; function tok(sep: string; var s: string): string; function isoneof(c, s: string): boolean; var itmp: integer; begin result := false; for itmp := 1 to length(s) do begin if c = copy(s, itmp, 1) then begin result := true; exit; end; end; end; var c, t: string; begin if s = '' then begin result := s; exit; end; c := copy(s, 1, 1); while isoneof(c, sep) do begin s := copy(s, 2, length(s) - 1); c := copy(s, 1, 1); end; t := ''; while (not isoneof(c, sep)) and (s <> '') do begin t := t + c; s := copy(s, 2, length(s)-1); c := copy(s, 1, 1); end; result := t; end;