Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Sporadische Zugriffsverletzungen

  Alt 27. Jun 2018, 10: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 10:44 Uhr)
  Mit Zitat antworten Zitat