Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Font-Attribute in INI-Datei speichern

  Alt 18. Jul 2006, 06:46
Hier noch eine Alternative - nicht voll ausgebaut und nur um das Prinzip zu demonstrieren:

Delphi-Quellcode:
uses
  TypInfo,
  IniFiles;

procedure SaveToIniFile(o: TObject; ini: TMemIniFile; sectionName: String);
var
  i, iProps: integer;
  ppl: PPropList;
  ppi: PPropInfo;
begin
  ini.EraseSection(sectionName);
  iProps := GetPropList(o, ppl);
  for i := 0 to Pred(iProps) do
  begin
    ppi := ppl[i];
    case ppi.PropType^.Kind of
      tkString,
      tkLString:
        ini.WriteString(sectionName, ppi.Name, GetStrProp(o, ppi));
      tkInteger:
        ini.WriteString(sectionName, ppi.Name, IntToStr(GetOrdProp(o, ppi)));
      tkEnumeration:
        ini.WriteString(sectionName, ppi.Name, GetEnumProp(o, ppi));
      tkSet:
        ini.WriteString(sectionName, ppi.Name, GetSetProp(o, ppi));
      else
        ini.WriteString(sectionName, ppi.Name, '???');
    end;
  end;
end;

procedure TDemoForm.SaveButtonClick(Sender: TObject);
var
  fn: TFileName;
  ini: TMemIniFile;
begin
  fn := ChangeFileExt(ParamStr(0), '.ini');
  ini := TMemIniFile.Create(fn);
  SaveToIniFile(Font, ini, 'Font');
  ini.ReadSectionValues('Font', ValueListEditor.Strings);
  ini.UpdateFile;
  ini.Free;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat