![]() |
[Fehler] edit.pas(91): E2356
Hallo, ich wollte meine in Delphi 6 geschrieben Komponenten auf Delphi 2005 installieren. das klappt aber nicht da ich immer folgen Fehler erhalte.
[Fehler] edit.pas(91): E2356 Für Eigenschaftszugriff muss ein Instanzenfeld oder eine Instanzenmethode verwendet werden. Was muss ich ändern das es funzt ? |
Re: [Fehler] edit.pas(91): E2356
Meine Glaskugel enthält leider nichts, das mir deinen Code anzeigen würde ;-)
Aber nach der Fehlermeldung zu schließen, solltest du für den Zugriff auf deine Eigenschaft ein Objekt oder eine Klassenmethode verwenden.. Was die Meldung eben sagt ;) |
Re: [Fehler] edit.pas(91): E2356
Hi,
poste am besten mal die betreffene Zeile. Ich hatte diese Fehlermeldung, als ich eine virtuell-abstrakte Klassenmethode als Getter für eine Property in D2005 verwenden wollte (was aber in D7 noch ging / geht). mfG mirage228 |
Re: [Fehler] edit.pas(91): E2356
Hallo, der code sieht wie folgt aus:
Delphi-Quellcode:
bei compilieren kommt dann der Fehler:
procedure DeadInt(Value: integer);
public class function GetId: integer; virtual; published property Id : integer read GetId write DeadInt; [Fehler] edit.pas(91): E2356 Für Eigenschaftszugriff muss ein Instanzenfeld oder eine Instanzenmethode verwendet werden |
Re: [Fehler] edit.pas(91): E2356
Hallo thklingler,
der Code benutzt die Methode GetId, die als Klassenmethode definiert ist. Die Fehlermeldung behauptet, es müsse eine Instanzmethode sein. Versuche einmal das class vor der function zu löschen. |
Re: [Fehler] edit.pas(91): E2356
Hallo, das habe ich schon probiert, dann muß ich die ganze Komponete um schreiben da ich die ganzen funktionen als Klassemethoden verwende. Es erscheint dann der Fehler
[Fehler] edit.pas(353): E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt. |
Re: [Fehler] edit.pas(91): E2356
ich versteh nicht ganz wozu du dann überhaupt ein Object nimmst wenn das dann alles Klassenmethoden sind, da kannst du doch auch gleich das als normale Funktionen declarieren.
Eine alternative damit du nicht alles umschreiben musst. Erstelle eine weitere Komponente wo alles nur Methoden der Klasse sind. Und in der Methode rufst du dann einfach die Klassenmethode des anderen Objectes auf. |
Re: [Fehler] edit.pas(91): E2356
Hi,
wie ich das sehe ist das exakt das Problem, das ich auch habe (siehe: ![]() Mich würde zugerne interessieren warum Borland das seinfach so geändert hat und ob sie es rückgängig machen könnten... :gruebel: mfG mirage228 |
Re: [Fehler] edit.pas(91): E2356
Ein Workaround sollte doch recht einfach sein:
Delphi-Quellcode:
procedure DeadInt(Value: integer);
public class function CGetId: integer; virtual; function GetId: integer; virtual; published property Id : integer read GetId write DeadInt; //... function Getid: integer; begin Result := CGetId; //oder alternativ <Klassenname>.CGetId end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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