![]() |
Eigenes Edit
Hi Leute,
ich bin gerade dabei ein eigenes Edit zu entwickeln. Nun stehte ich aber vor einem Problem. Ich möchte gerne die Farbe ändern, wenn das Edit wirklich notwendig ist. Nun kommt aber leider schon ein Fehler.
Delphi-Quellcode:
Der Fehler: E2233 Auf Eigenschaft 'Color' kann hier nicht zugegriffen werden
[...]
public constructor Create(AOwner: TComponent); override; procedure RequiredRefresh; [...] constructor TEEdit.Create(AOwner: TComponent); begin RequiredRefresh; end; procedure TEEdit.RequiredRefresh; begin if FRequired=True then TEEdit.Color:=$004080FF; <---Fehler end; Wie kann ich diesen Fehler beheben? |
AW: Eigenes Edit
Jo. "TEEdit.Color" wäre ein Zugriff auf eine Klassen-Variable. Du möchtest aber - wenn ich das richtig verstehe - die Farbe einer einzelnen Instanz ändern. Das wäre dann wohl "self.Color".
Wenn Du Dich in der Richtung weiter schlau machen magst, dann ist das Stichwort "Klassenvariable" für Dich relevant. |
AW: Eigenes Edit
Dann kommt aber immer ein Fehler, wenn ich das Edit auf mein Formular ziehen möchte. Ich kann es aber installieren.
:? |
AW: Eigenes Edit
hm. Wenn "ein Fehler" kommt, ist die Sache natürlich klar. Dann kann es nur "eine Ursache" geben, nämlich die, dass ... :gruebel:
So allgemein wüsste ich auch nicht, wo der Fehler liegt. Es ist mir nicht bekannt, dass man in einem abgeleiteten Edit im Konstruktor nicht die Farbe setzen dürfte. Jetzt müsste man tiefer einsteigen: Angefangen mit der Frage, welcher Fehler es konkret ist, der da auftritt, über die Frage, ob Du von einem normalen TEdit ableitest oder von was anderem bis hin zu einem Kompilieren mit Debug-DCUs, dem Ausführen im Einzelschritt und der dann möglicherweise offensichtlichen Antwort auf die Frage, an welcher Stelle der Fehler auftritt. |
AW: Eigenes Edit
Wenn Du schon im Konstruktor die Farbe ändern willst, solltest Du zumindest vorher den geerbten Konstruktor aufrufen. Außerdem vergleicht man niemals (!!!) mit true. Und drittens wäre eine Property Required mit entsprechendem Setter vielleicht zielführend.
|
AW: Eigenes Edit
ui - stimmt. In diesem Fall wäre ein Crash-Kurs in Sachen Vererbung und Komponenten-Entwicklung vielleicht angebracht. Ich bin mir sicher, dass man mit 30 Minuten Schmökern in Tutorials locker 2 Stunden an (weniger) Fehlersuche gewinnt.
|
AW: Eigenes Edit
An dieser Stelle kann man wieder einmal nur dazu raten, die Klassenvervollständigung zu nutzen, dann fügt Delphi freundlicherweise das "inherited" gleich selbst ein.
|
AW: Eigenes Edit
zudem man das setzen der Farbe im Setter der Property Required erledigen sollte und das RequiredRefresh eigentlich eine private/protected Methode ist
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 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