Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
5. Mai 2003, 21:42
Delphi-Quellcode:
// 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;
Autor Unbekannt. (Der Kerl ist verdammt produktiv, wenn ich mir das so ankucke. )
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|