// Hiermit können StringGrids gespeichert und geladen werden,
// wobei Inhalt und Form von einem anderweitig gespeicherten
// Grid in das aktuelle Grid geholt werden können.
// Siehe auch
Stringgrids umklappen

// Getestet mit D4 unter Win98

procedure gridspeichern(grd:TStringGrid;Datei:string);
var sl:TStringlist;
x,y:integer;
begin
sl:=TStringlist.create;
sl.add(inttostr(grd.colcount));
sl.add(inttostr(grd.rowcount));
for x:=0 to grd.ColCount-1 do
for y:=0 to grd.RowCount-1 do
sl.add(grd.cells[x,y]);
for x:=0 to grd.ColCount-1 do
sl.add(inttostr(grd.ColWidths[x]));
for x:=0 to grd.RowCount-1 do
sl.add(inttostr(grd.RowHeights[x]));
sl.add(inttostr(grd.clientwidth));
sl.add(inttostr(grd.clientheight));
sl.add(inttostr(ord(grd.ScrollBars)));
sl.savetofile(datei);
sl.free;
end;

procedure
gridladen(grd:TStringGrid;Datei:string;angleichen:boolean);
var sl:TStringlist;
x,y,z:integer;
begin
sl:=TStringlist.create;
sl.loadfromfile(datei);
grd.colcount:=strtoint(sl.strings[0]);
grd.rowcount:=strtoint(sl.strings[1]);
z:=2;
for x:=0 to grd.ColCount-1 do
for y:=0 to grd.RowCount-1 do begin
grd.cells[x,y]:=sl.strings[z];
inc(z);
end;
if
angleichen then begin
for
x:=0 to grd.ColCount-1 do begin
grd.ColWidths[x]:=strtoint(sl.strings[z]);
inc(z);
end;
for
x:=0 to grd.RowCount-1 do begin
grd.RowHeights[x]:=strtoint(sl.strings[z]);
inc(z);
end;
grd.clientwidth:=strtoint(sl.strings[z]);
grd.clientheight:=strtoint(sl.strings[z+1]);
grd.ScrollBars:=TScrollStyle(strtoint(sl.strings[z+2]));
end;
sl.free;
end;


procedure
TForm1.Button1Click(Sender: TObject);
begin
gridspeichern(StringGrid1,'c:\test.grd');
end;

procedure
TForm1.Button2Click(Sender: TObject);
begin
gridladen(StringGrid1,'d:\test2.grd',true);
end;

Zugriffe seit 6.9.2001 auf Delphi-Ecke