![]() |
OOP: Klassen ableiten
Hallo!
Ich hab ne Frage zu OOP: Kann man eine Klasse von einem TRichEdit und eine andere von einem TImage ableiten? Wenn ja: Wie? PS: vom TRichEdit brauche ich die Lines Eigenschaft (da keine Begrenzung von Zeilen, brauche unterschiedlich viele) und vom TImage das Bild, so das ich darin auch andere einzeichnen kann (über Canvas.Draw). |
Re: OOP: Klassen ableiten
Delphi-Quellcode:
TYPE
TAbgeleiteteKlasse = CLASS(TVorgaengerKlasse) {...} END; Gruß Stephan |
Re: OOP: Klassen ableiten
Hab ich gemacht:
Delphi-Quellcode:
Dann bringts mir folgende Fehlermeldung:
type
TRichEdit1 = class (TRichEdit) ... end;
Delphi-Quellcode:
(Beim TImage natürlich mit TImage statt TRichEdit)
[Error] Weg.pas(6): Undeclared identifier: 'TRichEdit'
Edit: Liegt aber net am Namen für die Klasse! Der Fehler kommt, egal wie die Klasse heißt, und es wird immer die Vorgänger Klasse als Fehler markiert |
Re: OOP: Klassen ableiten
ComCtrls in uses vergessen?
Delphi-Quellcode:
uses Comctrls,...........;
|
Re: OOP: Klassen ableiten
für TImage dementsprechend "ExtCtrls" noch in die uses klausel eintragen
|
Re: OOP: Klassen ableiten
Ups... :oops:
Gibt noch ein Fehler:
Delphi-Quellcode:
folgende Fehlermeldung:
type
TRichEdit1 = class (TRichEdit) FX1:String; // Hier ist der Fehler FX2:String; FY1:String; FY2:String; public property X1 : String Read FX1 Write FX1; property X2 : String Read FX2 Write FX2; property Y1 : String Read FY1 Write FY1; property Y2 : String Read FY2 Write FY2; procedure Wegpunktefestlegen; procedure Paint; end;
Delphi-Quellcode:
[Error] Weg.pas(9): Published field 'FX1' not a class nor interface type
|
Re: OOP: Klassen ableiten
schreib mal:
Delphi-Quellcode:
vor deinen strings
private
|
Re: OOP: Klassen ableiten
Deklariers mal nicht published, sondern Private o.ä. (also FX1 etc.)
Gruß Stephan :dance: |
Re: OOP: Klassen ableiten
achja, noch ein tipp...
Delphi-Quellcode:
der übersicht wegen solltest du das ganze ein bisschen besser einreihen :zwinker:
type
TRichEdit1 = class (TRichEdit) private FX1: String; FX2: String; FY1: String; FY2: String; public property X1: String Read FX1 Write FX1; property X2: String Read FX2 Write FX2; property Y1: String Read FY1 Write FY1; property Y2: String Read FY2 Write FY2; procedure Wegpunktefestlegen; procedure Paint; end; das zeigt dir delphi schon an TForm1 wie das geht ;) |
Re: OOP: Klassen ableiten
PS: Wenn X1 auf FX1 direkt zugreift (Read und Write), kannste X1 gleich direkt public machen, ohne property... weil der Sinn der Property (Geheimnisprinzip, Kontrolle...) nicht erfüllt ist ;) oder aber nict direkt drauf zugreifen, sondern über Methoden (wäre sauberer)
das aber nur so nebenbei :) Gruß Stphan :dance: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17: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