Grund für Fehlermeldung

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Grund für Fehlermeldung

Beitrag von Jan »

Hallo,

kann mir jemand sagen, was diese Meldung mir sagen möchte? "Access to member-variable not allowed in this context". Das Irritierende daran ist, daß ich die Variable einfach nur an eine Funktion übergebe, so wie ich das an anderen Stellen auch mache. Ich habe die auch nicht anders deklariert als die anderen Variablen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Hi Jan,

ist die Var Exported, oder Protected, oder Hidden? Den Fehler kenne ich, aber mir fällt nicht mehr ein, was ich damals verbockt hatte. Oder ist die Var aus einer anderen Klasse, bzw. Vererbung?
Im Zweifelsfall an der Stelle über den Debugger gucken, wie es aussieht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Martin Altmann »

Z.B. das dass Objekt noch nicht erzeugt ist?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Für Methoden gibt es sowas.
25 XPP_ERR_METHOD_ACCESS Zugriff auf Methode ist in diesem
Kontext nicht erlaubt (z.B. wenn eine
Methode nicht als EXPORTED: deklariert ist,

kann sie nicht in Funktionen sondern nur
in Methoden aufgerufen werden).
das ist natürlich besonders clever
28 XPP_ERR_MEMBERVAR_ACCESS Zugriff auf Member-Variable ist
in diesem Kontext nicht erlaubt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Jan »

Hallo Manfred und Martin,

die ist als PROTECTED deklariert. Wenn ich die als EXPORTED einbaue, dann funktioniert es. Das habe ich inzwischen schon rausbekommen.

Hubert hat aber mal hier geschrieben, aus Kapselungsgründen wäre ein PROTRECTED ACCESS besser. Aber wie baue ich das ein? Ich hab die Hilfe durchwühlt und rumprobiert, weil ich da nix gefunden habe. Ich komme nicht dahinter, wie ich das umsetzen soll/kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Jan,

ich stelle fest: Wir sind immer noch Leidensgenossen. Ich kapiere das auch noch nicht wirklich. Ich bastel schon den ganzen Tag hier rum und verstehe manchmal nicht warum es klappt, bzw. warum es nicht klappt. :?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Jan »

Manfred,

seit wann sind Du und ich Leidensgenossen? Du spielst doch die Klaviatur der Klassen im Schlaf rauf und runter. Und ich bin froh, wenn ich die Vokabeln gerade mal richtig schreiben kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Martin Altmann »

Jan,
zeige mal Deine Klassendeklaration und wo und wie Du die betreffende Methode aufrufst.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Jan,

Du denkst wohl auch: Kurz vor Weihnachten, da wollen wir mal Lustig sein! Nicht wahr? Klaviatur, rauf und runter. Danke dass Du mir so viel schon zutraust. =D>

Ich lese gerade: Protected Access. Ist dass nicht auch wieder geschützt und kann so nicht klappen, wie Du es gerne hättest?
Zuletzt geändert von Manfred am Sa, 29. Nov 2008 21:10, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Jan »

Martin,

das ist ein Mißverständnis. Es geht um eine PROTECTED VAR. Die bei der Übergabe an eine STATIC FUNCTION die oben genannte Fehlermeldung erzeigt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Jan »

Manfred,

1) Ich bin immer lustig :^o

2) Naja, ich denke mal wenn ich eine PROTECTED VAR mit ACCESS einbaue, dann ist die zwar nur in der Klasse sichtbar, kann aber extern übergeben werden.

Sag ich mal so blauäugig als Klassen-Dummy. Aber irgendwas hat Hubert sich ja wohl bei seiner Aussage gedacht.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Martin Altmann »

Jan,
das kann nicht gehen!
Eine PROTECTED VAR kann nur innerhalb der Klasse angesprochen werden, in der sie auch deinfiert ist! Nicht in einer Instanz der Klasse und nicht von aussen!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Nee,

wenn ich das richtig interpretiere, ist der generelle Zugriff (auch lesend) außerhalb untersagt. Das ist ja der Sinn und Zweck einer Kapselung. Der Raum ist dicht und keiner kommt rein, oder kann rein gucken. Nur die die drin sind, die sehen was los ist und können spielen.

Maddin war mal wieder schneller....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Jan »

Hey Leute,

ich will die VAR nicht von außen ansprechen! Ich will die an eine FUNCTION übergeben! Die zwar im gleichen pgr File liegt, aber eben nicht innerhalb der Klasse.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Jan,

KAPSELUNG, Raum ist abgeschlossen, Keine Fenster, keine Türen.... Nix mit weitergeben. OOP. Das ist das Dingen daran. Nicht mit Funktionen verwechseln.

(wehe das war jetzt falsch von mir erklärt)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von Martin Altmann »

Manfred,
nö - war genau richtig!
Jan,
mach eine EXPORTED Methode in Deine Klasse, die die PROTECTED VAR zurückgibt.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grund für Fehlermeldung

Beitrag von Manfred »

Oder überlege, warum die VAR Protected ist/sein muß und mache sie Exported.

Ich kriege auch gerade einen Affen hier mit Protected usw.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Grund für Fehlermeldung

Beitrag von brandelh »

Hi Jan,

ehrlich gesagt verwende ich auch meist EXPORTED, statt der Kapselung.
Bei eigenen Klassen für eigene Programme ist das OK,
da man selbst ja am Besten weiß, welche Parameter OK sind.

Wenn man aber Klassen veröffentlicht und jedem Programmierer einfach Zugriff auf die "Unterwäsche" lässt,
braucht man sich nicht über peinliche Momente zu wundern :D

Für die Beurteilung was genau bei dir fehlschlägt braucht man aber auf jeden Fall die Code-Zeilen des Aufrufs,
es gibt hier nämlich viele verschiedene Ursache Möglichkeiten ;-)
Gruß
Hubert
Antworten