![]() |
Delphi-Version: 2007
Zugriffsverletzung wegen WriteOnly published property
Hi zusammen,
nach langer Suche, Blut, Schweiss und Tränen ist endlich ein Problem gelöst worden, daß für einige Verwirrung gesorgt hatte: eine Kollegin hatte seit letzter Woche ein "Absturzgenerator-Projekt". Beim kompilieren oder beim anzeigen einer bestimmten Unit kam eine "Zugriffsverletzung in Adresse 000 lesen von 000"...und danach war Delphi bis zum Neustart nicht mehr zu gebrauchen, der Fehler persistierte. Wir haben jetzt die Ursache gefunden, und hätten gerne eine schöne Erklärung dafür. Grund war das die Kollegin eine Komponente auf der Form besagter Unit hatte, die sie noch um eine published property erweiterte, die nur write-Zugriff hatte. Wir denken uns, daß es eventuell mit Zugriffen aufs DFM, oder mit dem Unvermögen des OI etwas auszulesen zu tun hat, daß es dann knallte, aber genau können wir es uns nicht zusammenreimen. Wer von Euch Illuminaten kann das komplett auflösen? Sherlock |
AW: Zugriffsverletzung wegen WriteOnly published property
Ohne das jetzt mangels Sourcen des Objektinspektors überprüfen zu können, wird der OI wohl Schwierigkeiten haben, Write-Only-Properties anzuzeigen (wie sollte er auch). Er scheint es zu versuchen, was aber (as designed) zu einem Fehler führt.
Einen Hinweis dazu findet man in den "Eigenschaften des Objektinspektors", wo man einstellen kann, ob er Nur-Lese-Eigenschaften anzeigen soll. Von Nur-Schreiben-Eigenschaften steht da nichts. Das lässt vermuten, daß dieser Fall nicht vorgesehen ist. Ohne jetzt über den Sinn von Write-Only-Properties zu reden (ich würde hier eine Methode vorziehen), kann man nur empfehlen, derartige Komponenten nicht in der Design-Umgebung zu verwenden. |
AW: Zugriffsverletzung wegen WriteOnly published property
Ich denke mal dass es wahrlich am OI liegt, da dieser wohl jede published-Eigenschaft anzeigen wollen wird. Nur nachdem es nur einen Schreibzugriff gibt, wird es wohl zu einer Zugriffsverletzung kommen. Du könntest es ganz einfach testen und diese Nur-Schreiben-Property mal als public anstatt als published zu deklarieren. Ich würde behaupten, dass es dann zu keinerlei Problemen kommen sollte.
PS: Was für einen Sinn hat eine Write-Only-published-Eigenschaft? :gruebel: Alte Rtti? |
AW: Zugriffsverletzung wegen WriteOnly published property
Zitat:
Hier wäre wohl ein stinknormale public-Methode sinnvoller. |
AW: Zugriffsverletzung wegen WriteOnly published property
Zitat:
![]() Hier zum Beispiel geht es um ein Passwort, das man nicht auslesen können soll. edit: Eigenschaft published überlesen |
AW: Zugriffsverletzung wegen WriteOnly published property
Zitat:
(gut, ich seh das eher als unschön, was meine eigenen Klassen betrifft, denn privat ist nun plötzlich doch irgendwie public, aber dafür kommt man bei fremden Komponenten/Klassen an Sachen ran, wo man sonst nicht rangekommen währe :roll: ) |
AW: Zugriffsverletzung wegen WriteOnly published property
Zitat:
|
AW: Zugriffsverletzung wegen WriteOnly published property
Wer macht das schon?
Oder anders gefragt: Wer hier kennt alle geheimen Compilerschalter, denn irgendwie fehlt da Vieles in der OH (oder es ist nicht auffindbar). |
AW: Zugriffsverletzung wegen WriteOnly published property
Zitat:
![]() ![]() |
AW: Zugriffsverletzung wegen WriteOnly published property
Also grundsätzlich war es wohl ein Versehen bzw. Copy&Paste Fehler. :roll:
Danke für die Einblicke und Kommentare :dp: Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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