Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 

Re: Spalten eines DBGrid in INI-Datei speichern

  Alt 27. Jun 2005, 07:33
Zitat von waldforest:
Habe auch keine Ahnung, wie ich einen TStringStream direkt in eine INI-Section bekomme.
Direkt geht das auch nicht. Außerdem bekommst du Schwierigkeiten, wenn du solche Eigenschaften wie Font speichern willst. Die Ini-Datei bietet sich eigentlich nur für solche Eigenschaften der Columns an, die in deinem Programm vom Benutzer zur Laufzeit verändert werden können. Hier eine kleine Starthilfe:

Delphi-Quellcode:
uses
  TypInfo,
  IniFiles;

procedure SaveToIniFile(gc: TDBGridColumns; ini: TMemIniFile);
var
  i, j, iProps: integer;
  c: TColumn;
  ppl: PPropList;
  ppi: PPropInfo;
  colName: string;
begin
  for i := 1 to gc.Count do begin
    c := gc.Items[Pred(i)];
    colName := c.FieldName;
    ini.EraseSection(colName);
    iProps := GetPropList(c, ppl);
    for j := 0 to Pred(iProps) do begin
      ppi := ppl[j];
      case ppi.PropType^.Kind of
        tkString,
        tkLString:
          ini.WriteString(colName, ppi.Name, GetStrProp(c, ppi));
        tkInteger:
          ini.WriteString(colName, ppi.Name, IntToStr(GetInt64Prop(c, ppi)));
        tkEnumeration:
          ini.WriteString(colName, ppi.Name, GetEnumProp(c, ppi));
      end;
    end;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat