Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: Sporadische Zugriffsverletzungen
27. Jun 2018, 11:34
Im OnClick-Event der Speedbutton wird indirekt SetView aufgerufen.
Darin werden alle Speedbutton freigegeben.
Nachdem dieses OnClick-Event abgearbeitet ist, kehrt das Programm zum nun nicht mehr existierenden Speedbutton zurück.
Die Methode, welche das OnClick-Event aufgerufen hat, wird zuende geführt.
Der Zeiger Self ist ungültig und verweist auf Speicher der vorher mit den Daten des Speedbutton belegt war.
Dort können jetzt ganz andere Daten liegen, die bei Schreibzugriffen beschädigt werden.
Lösung 1:
Man verzichtet auf das Erzeugen und Freigeben der Buttons und macht diese nur sichtbar oder unsichtbar.
Lösung 2:
Im OnClick-Event wird nur eine Nachricht an das Formular gepostet(PostMessage) und die Methode sofort beendet.
Die eigentliche Verarbeitung erfogt dann als Reaktion auf den Empfang der Nachricht.
Geändert von Blup (27. Jun 2018 um 11:44 Uhr)
|