Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 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.
  Mit Zitat antworten Zitat