Einzelnen Beitrag anzeigen

EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

AW: Mit savetoFile/loadfromFile Daten ins Formular bringen

  Alt 27. Nov 2018, 14:09
Das Problem besteht beim speichern sowohl beim Abändern eines bestehenden DS als auch beim Anlegen eines neuen DS. Er wirft die Excecption:
---------------------------
ptest2
---------------------------
Zugriffsverletzung bei Adresse 005EDF6D in Modul 'pTest2.exe'. Lesen von Adresse 00000000.
---------------------------
OK
---------------------------
und die daten.dat steht auf 0, ist also futsch.
Es muss doch wohl an der Procedure speichern liegen.

Delphi-Quellcode:
procedure TForm1.speichernClick(Sender: TObject);
var Names: TName;
begin
  if FAktuelerIndex > -1 then
    Names := FDatalist.Items[FAktuelerIndex] as TName // Aktuelles Object bearbeiten
  else
    Names:=TName.create; // Neues Object erstellen
  try
    // Daten aus Controls holen
    Names.ID:=strtoint(Edit1.text);
    Names.Name:=edit2.text;
    Names.Herkunft:=Edit3.text;
    Names.Geschlecht:=checkBox1.Checked;

    if FAktuelerIndex = -1 then begin
      FDatalist.Add(Names); // Nur an die Liste Anhängen, wenn neu
      FAktuelerIndex := FDatalist.Count-1; // Auf den letzten Datensatz setzen   
    end;

    FDatalist.SaveToFile('e:\Test\daten.dat'); // Speichern

    ZeigeDaten; // Könnte man auch sparen, nur zur Sicherheit ;)
  except
    on E:Exception do
      ShowMessage(E.Message);
  end;
hängt das evtl mit FAktuelerIndex -Werten zusammen? Wert -1 - lege neuen Datensatz an? Index 0 ist der erste DS.
wäre ein FDatalist.Insert hilfreich?
Norbert
  Mit Zitat antworten Zitat