AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehlermeldung unerklärlich

Ein Thema von Naryxus · begonnen am 30. Sep 2011 · letzter Beitrag vom 4. Okt 2011
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 11:53
Damit hat das nichts zu tun. Sondern eher hiermit:
for i:=1 to form1.ListView1.Items.Count do begin Bitte prüfe diese Schleife. Und debugge im Einzelschritt.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 11:59
Sollte es da nicht auch zu Problemen kommen wenn ein Objekt sich selbst zerstört...? :/
Auch wenn es hier wirklich grad an was anderem liegt...

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 12:11
Sollte es da nicht auch zu Problemen kommen wenn ein Objekt sich selbst zerstört...? :/
Auch wenn es hier wirklich grad an was anderem liegt...
MfG Alaitoc
Das muss nicht unbedingt problematisch sein. Zum Zeitpunkt der Click-Behandlung existiert das Objekt ja noch.
Nun wird es in der Click-Behandlung freigeben. Wenn darauf danach nicht mehr (innerhalb des Objektes und außerhalb darauf zugegriffen wird), macht das keine Probleme.
Und selbst wenn noch ein Zugriff auf die Speicherstelle erfolgt, liegen dort noch die bisherigen Objektdaten.
Ob es ein Problem gibt hängt dann letztlich von der genauen Implementierung ab.

Die Sache ist ja die, dass die Schleife eigentlich gar nichts mit der Löschung des Labels zu tun hat. Sie dient ja letztendlich nur zur Sortierung der ListView. Ich habe mal den kompletten Array-Sortierungsbereich auskommentiert und das Problem tritt immer noch auf.
Geh ein Problem nach dem anderen an und debugge schrittweise.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (30. Sep 2011 um 12:56 Uhr)
  Mit Zitat antworten Zitat
Naryxus

Registriert seit: 30. Sep 2011
6 Beiträge
 
#4

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 12:54
Ok, ich bin jetzt mal alles durchgegangen.

Komischerweise stockt er, wenn es zu Problemen kommt nicht in der Datei *.pas sondern in der Project-Datei *.dpr. Und zwar in der letzten Zeile bei "end.". So etwas hatte ich noch nie...
Vor allem verstehe ich immer noch nicht, wieso es bei einmaligen und beim zweimaligen Aufrufen der Löschen-Prozedur einwandfrei läuft, es aber dann, sobald drei Labels erstellt wurden stockt. Vor allem kann man das schlecht debuggen, da der Fehler ja nur auftritt, wenn man im laufenden Programm eine bestimmte Abfolge an Befehlen tätigt.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 12:58
Zitat:
Vor allem kann man das schlecht debuggen, da der Fehler ja nur auftritt, wenn man im laufenden Programm eine bestimmte Abfolge an Befehlen tätigt.
Dann setze Haltepunkte am Beginn des zu prüfenden Abschnitts.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 13:06
Ok, ich bin jetzt mal alles durchgegangen.

Komischerweise stockt er, wenn es zu Problemen kommt nicht in der Datei *.pas sondern in der Project-Datei *.dpr. Und zwar in der letzten Zeile bei "end.". So etwas hatte ich noch nie...
Vor allem verstehe ich immer noch nicht, wieso es bei einmaligen und beim zweimaligen Aufrufen der Löschen-Prozedur einwandfrei läuft, es aber dann, sobald drei Labels erstellt wurden stockt. Vor allem kann man das schlecht debuggen, da der Fehler ja nur auftritt, wenn man im laufenden Programm eine bestimmte Abfolge an Befehlen tätigt.
In den Haltepunkteigenschaften kannst Du auch Bedingen definieren. Du kannst also dafür sorgen, dass die Unterbrechung nur in bestimmten Situationen erfolgt.

Dein Problem (wenn ich es richtig interpretiere) kenne ich beim Löschen eines Controls, das den Focus hat. Windows will dieses später noch einmal neu zeichnen, dann existiert es aber nicht mehr.
Ich habe dies gelöst, indem ich das Control erst einmal unsichtbar mache und später lösche. Vielleicht kommst Du auf diesem Weg etwas weiter (wobei ja ein Label durch anklicken nicht den Focus erhält!?)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 13:32
Auch wenn es ja angeblich nicht daran liegt. Ist nicht die ganze sortiererei mit array usw. unnötig. Gibt doch z.B. CustomSort.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 14:01
Auch wenn es ja angeblich nicht daran liegt. Ist nicht die ganze sortiererei mit array usw. unnötig. Gibt doch z.B. CustomSort.
Na ja, am Fehler wird es wohl nichts ändern, aber je übersichtlicher der Code, desto einfacher die Fehlersuche.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Naryxus

Registriert seit: 30. Sep 2011
6 Beiträge
 
#9

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 12:02
Danke erst einmal für die schnellen Antworten.

Zitat:
Das Problem ist, wenn ein Objekt per Event sich selbst löschen will...dann gibt es Zugriffsverletzungen weil
du versuchst etwas freizugeben obwohl du noch innerhalb des Events auf das Label zugreifst.
Scheint für mich logisch, allerdings frage ich mich dann, warum das dann bei einem oder zwei Labels funktioniert, aber dann bei mehreren nicht mehr.

Zitat:
Damit hat das nichts zu tun. Sondern eher hiermit:
for i:=1 to form1.ListView1.Items.Count do begin Bitte prüfe diese Schleife. Und debugge im Einzelschritt.
Die Sache ist ja die, dass die Schleife eigentlich gar nichts mit der Löschung des Labels zu tun hat. Sie dient ja letztendlich nur zur Sortierung der ListView. Ich habe mal den kompletten Array-Sortierungsbereich auskommentiert und das Problem tritt immer noch auf.
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Fehlermeldung unerklärlich

  Alt 30. Sep 2011, 12:05
Zitat:
- Setze einen Haltepunkt und arbeite den Quelltext schrittweise ab (incl. Nutzung der überwachten Ausdrücke)
Ist wahrscheinlich der beste Tipp um dem Problem auf die Spur zu kommen. Geh einfach mal mit dem Debugger jeden einzelnen Punkt durch. Dann sollte sich schnell der Fehler herauskristalisieren.

MfG Alaitoc
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:05 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