![]() |
StringGrid Laden/Speichern
Hallo,
ich möchte mein StringGrid Speichern. schaffe dieses auch. Nur wenn ich es Lade, bearbeited er diese Werte nicht. Wenn ich die Werte manuell per Hand eingebe geht es alles einwandfrei. Kann mir einer helfen und sagen was denn beim laden anders ist als bei der manuellen eingabe? Danke |
Re: StringGrid Laden/Speichern
Schaue Dir mal die beiden Links an, vielleicht helfen Dir die weiter :
![]() ![]() |
Re: StringGrid Laden/Speichern
Zitat:
|
Re: StringGrid Laden/Speichern
Hallo
Delphi-Quellcode:
Er zeigt die geladenen Werte auch wieder so an wie abgespeichert, allerdings lassen diese sich dann nicht mehr wie sonst (manuelle Eingabe) bearbeiten.
procedure TSudoku.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 TSudoku.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; |
Re: StringGrid Laden/Speichern
Auf den ersten Blick sehe ich nichts, was zu deinem Problem führen könnte. Ich lese die Daten bei mir zwar etwas anders ein (umständlicher), aber daran dürfte es nicht liegen.
|
Re: StringGrid Laden/Speichern
Also ich speichere das geladene Grid in ein array. EigenschaftenGrid
Delphi-Quellcode:
procedure wertesetzen(StringGrid1:TStringGrid);
VAR i,j : integer; begin for i:=0 to n-1 do for j:=0 to n-1 do EigenschaftenGrid[i,j].wert := StringGrid1.Cells[j,i]; EigenschaftenGrid[i,j].vorgegeben := 1; for i:=0 to n-1 do for j:=0 to n-1 do if EigenschaftenGrid[i,j].wert = '' then // Diese Abfrage geht bei geladenen Werten nicht mehr. begin EigenschaftenGrid[i,j].wert := '0'; EigenschaftenGrid[i,j].vorgegeben := 0; end; end; |
Re: StringGrid Laden/Speichern
Kann es sein das beim laden leer irgendwie nicht '' sondern nill oder so ist?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz