![]() |
Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Hi,
Ich habe ein kleines Problem mit meinen Klassen: Hier die Definitionen:
Delphi-Quellcode:
der Fehler liegt in der procedure Render der TGuiButton Klasse
TGuiElement = class
private ftop, fleft, fwidth, fheight: Double; fid: Integer; fname: String; fclassName: String; [...] TGuiButton = class(TGuiElement) private fOnClick: TNotifyEvent; public procedure Render; end;
Delphi-Quellcode:
warum hab ich keinen Zugriff auf die Attribute der Vaterklasse?
glTranslated( fleft, ftop,0);
|
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Du hast sie doch selbst als private deklariert. Du kannst nun entweder Properties mit einer höheren Sichtbarkeit erstellen, über die Du auf die Felder zugreifst, oder Du verschiebst sie direkt nach protected.
|
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
ok aber ich auch, das fehlt leider bei meinem letzen post, auch public propertys erstellt und auch auf die kann ich nicht zugreifen.
Selbst wenn ich sie protected mache geht es immer noch nicht! |
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Etwas mehr Code bitte.
|
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Kein Problem
Delphi-Quellcode:
TGuiElement = class
protected ftop, fleft, fwidth, fheight: Double; fid: Integer; fname: String; fclassName: String; public procedure Render; virtual; abstract; property top: Double read ftop write ftop; property left: Double read fleft write fleft; property width: Double read fwidth write fwidth; property height: Double read fheight write fheight; property id: Integer read fid write fid; property name: String read fname write fname; property ClassName: String read fclassName write fclassName; end; TGuiButton = class(TGuiElement) private fOnClick: TNotifyEvent; public procedure Render; property OnClick: TNotifyEvent read fOnClick write fOnClick; end;
Delphi-Quellcode:
procedure TGuiButton.Render;
begin glPushMatrix; glTranslated(fleft, ftop,0); //Felher taucht erstmals hier auf glBegin(GL_QUADS); glColor3f(1,0,1); glVertex3f(fwidth,0 ,0); glVertex3f(fwidth,0 ,0); glVertex3f(fwidth,fheight,0); glVertex3f(0 ,fheight,0); glEnd; glPopMatrix; end; |
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Nicht auf fleft/ftop zugreifen, sondern auf left und top (dasselbe gilt für width und height). Außerdem fehlt das override hinter Render in der abgeleiteten Klasse.
|
AW: Erhalte Zugriffsfehler bei Verwendung von Attributen des paremt
Oop. Ok aber der Fehler schient wohl auch noch wo anders zu liegen das self ergibt bei mir nil.
Ich prüfe es nochmal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 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