AGB  ·  Datenschutz  ·  Impressum  







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

Zugriffsverletzung beim Beenden

Ein Thema von Privateer3000 · begonnen am 20. Mär 2011 · letzter Beitrag vom 22. Mär 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Zugriffsverletzung beim Beenden

  Alt 20. Mär 2011, 20:58
Ok Danke Leute
Ich werde das mal prüfen.
Ja mit hoher wahrscheinlichkeit betrifft Buttons die zur Laufzeit generiert wurden.
Obendrein sind Jedi Buttons. Aber damit gabs noch nie Probleme....
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Zugriffsverletzung beim Beenden

  Alt 20. Mär 2011, 21:00
Tcontrol.Notification betrifft die Freigabe, von abhängigen Komponenten
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 07:07
Danke Markus,
was bedeutet das nun für mich.
Werden Komponenten in falscher Reihenfolge freigegeben?
Beispielsweise wird in meinem Fall zur Laufzeit mehrere
Buttons erzeugt. Bisher gabs damit aber noch Probleme.
Normalerweise müsste das doch alles selbstständig
wieder freigegeben werden.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 07:27
"Von Selbst" werden die nur freigegeben, wenn ein entsprechender Owner gesetzt wurde.
Damit übergibst du die Speicherverwaltung für diese Komponente an den Owner ab.

Diese darfst du nun nicht mehr selber freigeben! Sonst knallt es.

Delphi-Quellcode:
TButton.Create( MyForm ); // MyForm kümmert sich um das Freigeben
TButton.Create( nil ); // Niemand kümmert sich um das Freigeben, darum irgendwann selber freigeben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 08:50
Meiner Meinung ist der richtige Owner gesetzt.
Zitat:
aBut:=TJvTransparentButton.Create(schablone);
aBut.Parent:=schablone;
schablone ist ein frame.
wie kann ich nun herausfinden obs bei diesen Buttons knallt oder doch bei einem anderen?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#16

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 08:58
Gib doch einmal nil als Owner an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 09:22
Ich habe mal einen Haltepunkt ans FormClose geheftet.
Alle Proceduren werden bis zum Schluss abgearbeitet,
der letzte Punkt ist die Programm Datei
letzte Zeile:
Zitat:
Application.Run; end.
Danach knallts.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#18

AW: Zugriffsverletzung beim Beenden

  Alt 21. Mär 2011, 09:30
Wurde hier ja schon erwähnt, Du gibst ein Objekt manuell frei, dass eigentlich durch einen Owner freigegeben würde (der Zugriff auf ein bereits freigegebenes Objekt löst den Fehler aus).

Alternativ greifst Du in einer OnDestroy-Methode nochmal auf ein bereits freigegebenes Objekt zu.

***

Ich würde alle manuellen Freigaben bei Programm-Ende ausklammern, ReportMemoryLeaksOnShutdown auf True setzen und damit prüfen, was ich wirklich selber freigeben muss. (Alternativ FastMM4, wenn TDE das noch nicht kennt)

Geändert von Satty67 (21. Mär 2011 um 10:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Zugriffsverletzung beim Beenden

  Alt 22. Mär 2011, 13:07
Danke an alle,
nach langem suchen hab ich nun rausgefunden, dass
es an einem Glyph lag.

Vielen Dank nochmal
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:48 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