AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Zugriffsverletzung wegen WriteOnly published property
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung wegen WriteOnly published property

Ein Thema von Sherlock · begonnen am 25. Apr 2012 · letzter Beitrag vom 25. Apr 2012
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#1

Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 08:27
Delphi-Version: 2007
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 08:58
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 09:03
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? Alte Rtti?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 09:28
PS: Was für einen Sinn hat eine Write-Only-published-Eigenschaft? Alte Rtti?
Denke ich auch. Was ist der Sinn davon? Du kannst es im OI nicht kontrollieren, du kannst es auch im Programm nicht wieder auslesen.
Hier wäre wohl ein stinknormale public-Methode sinnvoller.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#5

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 11:21

PS: Was für einen Sinn hat eine Write-Only-published-Eigenschaft? Alte Rtti?
http://docs.embarcadero.com/products...eonly_xml.html

Hier zum Beispiel geht es um ein Passwort, das man nicht auslesen können soll.


edit: Eigenschaft published überlesen
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 12:03
Hier zum Beispiel geht es um ein Passwort, das man nicht auslesen können soll.[/s]
Ganz praktisch an der neuen RTTI ... man kommt nun auch an private Felder ran.

(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 )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 12:04
Ganz praktisch an der neuen RTTI ... man kommt nun auch an private Felder ran.

(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 )
Man kann doch die extended RTTI ganz gezielt für Klassen deaktivieren, oder?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#8

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 12:28
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).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#9

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 12:46
Oder anders gefragt: Wer hier kennt alle geheimen Compilerschalter, denn irgendwie fehlt da Vieles in der OH (oder es ist nicht auffindbar).
Aber nicht wirklich...

Liste der Delphi-Compiler-Direktiven - Index

RTTI-Direktive (Delphi)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#10

AW: Zugriffsverletzung wegen WriteOnly published property

  Alt 25. Apr 2012, 14:41
Also grundsätzlich war es wohl ein Versehen bzw. Copy&Paste Fehler.

Danke für die Einblicke und Kommentare

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:20 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