Einzelnen Beitrag anzeigen

Delphineuling10
(Gast)

n/a Beiträge
 
#1

Stringgrid speichern und laden über einen Stream

  Alt 16. Okt 2010, 19:23
Hallo Leute ich habe ein Problem und finde seit Stunden den Fehler nicht :/
Ich habe ein Stringgrid und möchte das gerne über einen Stream in eine Datei speichern und habe folgenden Code gefunden und versucht anzuwenden:


Delphi-Quellcode:
//StringGrid speichern (mit einem Stream)
procedure saveGrdToFile(grd: TStringGrid; Pfad : String);
var
  i,j,row,col,len : Word;
  buff: string;
begin
  fStream := TFileStream.Create(pfad, fmCreate);
  fStream.Free;
    fStream := TFileStream.Create(pfad, fmOpenWrite);
      col := grd.ColCount -1;
      row := grd.RowCount -1;
      fStream.WriteBuffer(row, SizeOf(Word));
      fStream.writeBuffer(col, SizeOf(Word));
    for i := 0 to row do
      for j := 0 to col do
      begin
        buff := grd.Cells[j,i];
        len := Length(buff);
        fStream.WriteBuffer(len, SizeOf(Word));
        fStream.WriteBuffer(buff[1], len)
      end;
    fStream.Free;
end;

//StringGrid laden (mit einem Stream)
procedure loadGrdFromFile(grd: TStringGrid; Pfad : String);
var i,j,row,col,len : Word;
buff: string;
begin
  fStream := TFileStream.Create(pfad, fmOpenRead);
  fStream.ReadBuffer(row, SizeOf(Word));
  fStream.ReadBuffer(col, SizeOf(Word));
  grd.ColCount := col + 1;
  grd.RowCount := row + 1;
  for i := 0 to row do
    for j := 0 to col do
    begin
      fStream.ReadBuffer(len, SizeOf(Word));
      SetLength(buff, len);
      fStream.ReadBuffer(buff[1], len);
      grd.Cells[j,i] := buff
    end;
    fStream.Free
end;
und dann habe ich noch einen Button erstellt und wollte die Speicherprozedur aufrufen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
saveGrdToFile('D:\Test.dat',
    [StringGrid1]);
end;
und dann kommt immer die Meldung: [Error] Unit1.pas(80): Incompatible types: 'TStringGrid' and 'String'

Es wäre schön wenn jemand eine Idee hat, was ich noch ändern oder probieren kann, damit das ganze funktioniert. Mir wäre aber wichtig, dass ich das über einen Stream schaffe..

Grüße

Geändert von Delphineuling10 (17. Okt 2010 um 01:21 Uhr)
  Mit Zitat antworten Zitat