AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

seltsames Problem mit 2 Formularen

Ein Thema von CodyConcrete · begonnen am 18. Mär 2008 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
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
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: seltsames Problem mit 2 Formularen

  Alt 18. Mär 2008, 21:38
Liegt es möglicherweise daran, dass du die Datei in Form1 lädst, in Form2 änderst aber dann das, was auf Form1 ist, speicherst?

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: seltsames Problem mit 2 Formularen

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

du übergibst per actSample einen Originalzeiger,
löscht den denn per actSample:= NIL beim Beenden des 2. Forms
und wunderst dich ?

*wunder*

kommentier das actSample:= NIL einfach mal aus.

Und falls das nicht klappt, Bsp als Zip incl. der Textdatei,
die viell. in c:\temp erwartet wird (für unsere Vista-Nutzer)


Heiko
Heiko
  Mit Zitat antworten Zitat
CodyConcrete

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

Re: seltsames Problem mit 2 Formularen

  Alt 18. Mär 2008, 21:44
Hatte das erst nich mit dem NIL, dachte nur hinterher würde der irgendwie beim zerstören der 2.Form irgendwie auch den Inhalt des Zeigers oder so mitlöschen hatte halt echt kein Plan woran es liegt und ma probier. Aber wie gesagt vorher war das nich da und gleiches Problem

Pack die Sachen grad und upp die. Da ich aber bis grad dran gearbeitet hab muss ich die ma noch en bischen kommentieren, sonst bringt das glaub nich viel :/



Hab jetzt ma schnell das Projekt so angehängt wie es ist

Wenn man die 2. Form aufrufen will, geht man im Menü auf "Bearbeiten"->"Programmliste starten"

Unter Optionen steht irgendwo "Pfad der Sampleliste" da gibt man an wo eben die Textdatei hingespeichert werden soll(von wo sie geladen wird), in der die Daten der Liste gespeichert werden
Angehängte Dateien
Dateityp: txt mysamplelist_498.txt (1,9 KB, 2x aufgerufen)
Dateityp: zip neuer_ordner_457.zip (340,5 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: seltsames Problem mit 2 Formularen

  Alt 19. Mär 2008, 07:56
Hallo,

wo genau gebe ich die MySample ein.
Benenne mal das Verzeichnis um, wo die bei dir jetzt drinsteht.

Ich bekomme hier nur Abstürze
und habe keine Lust, rumzuprobieren.

Ausserdem find ich die Übergabe von Werten an das 2. Form nicht so gut,
nimm lieber eine Methode SetValues, oder halt direkt properties,
das macht das Debuggen sehr viel leichter.


Heiko
Heiko
  Mit Zitat antworten Zitat
CodyConcrete

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

Re: seltsames Problem mit 2 Formularen

  Alt 19. Mär 2008, 12:46
hi,
schonmal rießen dank, dass du dich da versucht hast durchzukämpfen

Ich bekomme das mit SetValues nicht ganz hin, ich habe gerade mal in der Hilfe danach gesucht und dies nur als Eigenschaft von ner RadioGroup oder so gefunden. Wie kann ich die Methode denn benutzen um meinem 2. Formular den Zeiger zu übergeben, komm da leider nich hinter.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: seltsames Problem mit 2 Formularen

  Alt 19. Mär 2008, 14:10
Hallo,

SetValues ist eine Methode, die du selber schreibst,
darin werden alle Parameter übergeben,
die Form2 von Form1 braucht.

Vorteil:
übersichtlicherer Code
besseres Debuggen


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz