Delphi-Quellcode:
procedure speichern1.SpeichernClick(Sender: TObject);
VAR Dateiname:string;
begin
if SaveDialog1.Execute then
begin
Dateiname := SaveDialog1.FileName;
SaveGrid(Stringgrid1,Dateiname);
end;
end;
procedure SaveGrid(StringGrid1: TStringGrid; fileName: string);
var
iRow: integer;
sl: TStringList;
begin
sl := TStringList.Create;
for iRow := 0 to StringGrid1.RowCount - 1 do
sl.Add(StringGrid1.Rows[iRow].CommaText);
sl.SaveToFile(fileName);
sl.Free;
end;
//-----------------------------------------------
procedure laden1.LadenClick(Sender: TObject);
VAR Dateiname : String;
begin
if OpenDialog1.Execute then
begin
Dateiname := OpenDialog1.FileName;
LoadFromFile(Stringgrid1, Dateiname);
end;
end;
procedure LoadFromFile(StringGrid1: TStringGrid; txt: TFileName);
var
sRows, sCols: TStrings;
i: Integer;
begin
sRows := TStringList.Create;
sRows.LoadFromFile(txt);
sCols := TStringList.Create;
sCols.CommaText := sRows[0];
StringGrid1.ColCount := sCols.Count;
sCols.Free;
StringGrid1.RowCount := sRows.Count;
for i := 0 to Pred(sRows.Count) do
StringGrid1.Rows[i].CommaText := sRows[i];
sRows.Free;
end;
mithilfe dieser Proceduren Speichere ich ein Stringgrid ab.
Soweit funktioniert es auch, nur wenn ich nun es dann wieder lade, um es weiter zu bearbeiten kommt bei jeder Eingabe in eine Zelle
" " ist kein gültiger Integerwert"
Woran kann das liegen?
Ich Habe mir ein Notenverwaltungsprogramm mithilfe eines Stringgrids gebaut.
Dabei wird jede Zelle des Stringgrids auf einen Inhalt geprüft, und wenn etwas drinne steht, wird dieser Wert mit eingerechnet.
Meine Frage, kann es sein, das die Laden Procedure, irgendetwas in die Leeren Zellen einfügt, was delphi dann nicht will?
PS: was müsste ich machen, um ein zweitesn Stringgrid mit in der Datei zu speichern? oder das ich dieses über die selben dialoge anspreche?
also das ich 2 Stringgrids durch einen klick speichere?
habe das momentan durch die selbe Procedure nochmal gelöst, aber dass kann es ja nicht sein.
Mfg
Noobinator