Hi!
Ich hab in meinem Programm eine Options Datei (City.opt). Und aus dieser lese ich den Inhalt aus und lasse Ihn in ein StringGrid schreiben.
so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| SL.LoadFromFile(ExtractFilePath(Application.ExeName) + 'OptionsCity.opt');
SGStaedte.RowCount := (StrToInt(SL[0]) + 1); SGStaedte.ColCount := StrToInt(SL[1]);
SL.Sort;
SGStaedte.Cells[0, 0] := 'Städte';
for i := 1 to (SGStaedte.RowCount - 1) do SGStaedte.Rows[i].CommaText := SL[i - 1]; |
das plus eins in:
Delphi-Quelltext
1:
| SGStaedte.RowCount := (StrToInt(SL[0]) + 1); |
brauche ich wegen der Überschrift (FixedRow) den ich selber setze, denn in der Datei stehen nur die enzelnen Objekte. Und in den ersten beiden Zeilen die Row und Col angabe halt (wie zu lesen).
speichern tu ich es jetz so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TFFVConfig.BtnCitySaveClick(Sender: TObject); var SL : TStringlist; i : Integer;
begin with SGStaedte do begin SL := TStringlist.Create; Sl.Add(IntToStr(RowCount - 1)); Sl.Add(inttostr(ColCount)); for i := 1 to (RowCount - 1) do SL.Add(Rows[i].CommaText); SL.SaveToFile(ExtractFilePath(Application.ExeName) + 'OptionsCity.opt'); SL.Free; end; |
minus eins halt um die Fixed abzuziehen und in der for-Schleife fang ich halt bei eins an um die Fixed nicht mit zu speichern.
wenn ich jetzt von auserhalb drauf zugreife auf das StringGrid mach ich das so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TFFVConfigNew.BtnStadtOKClick(Sender: TObject); begin with FFVConfig.SGStaedte do begin RowCount := RowCount + 1; Cells[0, RowCount - 1] := FFVConfigNew.EdtStadt.Text; end;
FFVConfig.BtnCitySave.Click; Tableload; end; |
Damit trage ich einen neuen Eintrag in das StringGrid ein. Dan sollte er es eigentlich speichern und neu laden um die alphabetische ordnung wider herzustellen. Das dumme is nur, dass mir dan ein oder zwei Eintrage verloren gehen. In der Datei stehen Sie noch drinnen aber im StringGrid nicht.
Erklärung: - erster Code is die Tableload (Teil davon)
- SG = StringGrid
- Btn = Button
- FFV = Fom
- Edt = EditFeld
ich versteh nicht, warum das so nicht funktioniert, denn meiner Meinung nach wird die Datei beim Start des Programmes richtig ausgelesen (Tableload). Sprich da verlier ich keine Daten, erst in einer der beiden anderern proceduren. Wenn dan in der "procedure TFFVConfig.BtnCitySaveClick(Sender: TObject);".
Kann sich das mal wer von euch anschaun und mir sagen wo der Fehler ist.
mfg Barret
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.Moderiert von
raziel: Topic aus Sonstiges verschoben am So 30.01.2005 um 16:15
It´s not a bug, it´s a feature.