AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Edit

Ein Thema von mb1996 · begonnen am 26. Dez 2011 · letzter Beitrag vom 26. Dez 2011
Antwort Antwort
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#1

Eigenes Edit

  Alt 26. Dez 2011, 16:56
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:
[...]
  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;
Der Fehler: E2233 Auf Eigenschaft 'Color' kann hier nicht zugegriffen werden


Wie kann ich diesen Fehler beheben?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:03
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:30
Dann kommt aber immer ein Fehler, wenn ich das Edit auf mein Formular ziehen möchte. Ich kann es aber installieren.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:36
hm. Wenn "ein Fehler" kommt, ist die Sache natürlich klar. Dann kann es nur "eine Ursache" geben, nämlich die, dass ...

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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:36
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:38
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Eigenes Edit

  Alt 26. Dez 2011, 17:48
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Eigenes Edit

  Alt 26. Dez 2011, 18:36
zudem man das setzen der Farbe im Setter der Property Required erledigen sollte und das RequiredRefresh eigentlich eine private/protected Methode ist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 11:30 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