Einzelnen Beitrag anzeigen

CodyConcrete

Registriert seit: 19. Okt 2007
9 Beiträge
 
#1

seltsames Problem mit 2 Formularen

  Alt 18. Mär 2008, 21:29
Hallo,

ich weiß einfach nicht, was das Problem bei meinem Programm ist.
Ich versuch einfach mal die Situation zu beschreiben

Ich habe ein kleines Programm was mit einer Liste als Datenstruktur arbeitet.
Die einzelnen Elemente der Liste werden in einer Textdatei gespeichert. Wenn das Programm neugestartet wird, wird diese Datei automatisch geladen und es wird eine Liste mit den Daten erstellt.
Zum Bearbeiten wird einem zusätzlichen Formular der Zeiger des zu bearbeitenden Elements übergeben.
Alles funktioniert an sich, das Problem ist follgendes:
Sobald ich einmal in dem Programm das 2. Formular zum Bearbeiten eines Elementes öffne, scheint das Programm nur die Version der Liste zu speichern, die es zu Beginn geladen hat.
Allerdings kann ich nach dem Aufruf des 2.Formulars ohne Probleme mit der Liste in dem Hauptprogramm weiterarbeiten, es treten keine Fehler auf und ich kann ohne Probleme alle Operationen durchführen und alle Änderungen werden auch noch angezeigt.

Ich hab überhaupt keine Ahnung woran das liegen kann, alle Funktionen funktionieren an sich. Wenn ich beispielsweise die Liste sortiere und dann speichere oder eizelne Elemente lösche wird alles richtig abgespeichert, öffne ich allerdings irgendwann in dem Programm das 2.Formular, so wird wie oben gesagt keine einzige Änderung später gespeichert(Die Prozedur zum speichern der Liste wird allerdings korrekt aufgerufen).

Da ich nicht weiß woran das Problem genau liegt und ich euch nicht mein ganzes Programm um die Ohren hauen will, poste ich hier einmal nur den Aufruf des 2.Formulars und dessen Destroy Methode, da ich denke, dass dort das Problem liegen muss, oder eben generell in der Übergabe des Zeigers.

Delphi-Quellcode:
{*
  Prozedur in der die 2.Form aufgerufen wird
  actElement ist der Zeiger auf das aktuell markierte Element in der Liste
*}


procedure TfrmSampleOrganizer.MenuProgrammlistestarten1Click(Sender: TObject);
begin
  FrmExternProg.actSample := actElement; //"Übergeben" des aktuellen Zeigers
  FrmExternProg.MyOpt := MyOptions; //"Übergeben" der Optionen
  FrmExternProg.ShowModal; //2. Formular wird aufgerufen
  SamplesToGrid(); //Zeichnet die Liste in das StringGrid
end;


procedure TfrmExternProg.FormDestroy(Sender: TObject);
begin
  MyExOpt.Free;
  actSample := NIL;
end;
Danke schonmal für eure Hilfe, weiß echt einfach nicht woran es liegen kann
  Mit Zitat antworten Zitat