Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OOP: Klassen ableiten (https://www.delphipraxis.net/33143-oop-klassen-ableiten.html)

maximus Caesar 2. Nov 2004 11:08


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).

Steve 2. Nov 2004 11:10

Re: OOP: Klassen ableiten
 
Delphi-Quellcode:
TYPE
 TAbgeleiteteKlasse = CLASS(TVorgaengerKlasse)
  {...}
END;

Gruß
Stephan

maximus Caesar 2. Nov 2004 11:14

Re: OOP: Klassen ableiten
 
Hab ich gemacht:

Delphi-Quellcode:
type
TRichEdit1 = class (TRichEdit)
...
end;
Dann bringts mir folgende Fehlermeldung:

Delphi-Quellcode:
[Error] Weg.pas(6): Undeclared identifier: 'TRichEdit'
(Beim TImage natürlich mit TImage statt 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

Andis 2. Nov 2004 11:24

Re: OOP: Klassen ableiten
 
ComCtrls in uses vergessen?

Delphi-Quellcode:
uses Comctrls,...........;

Pseudemys Nelsoni 2. Nov 2004 11:28

Re: OOP: Klassen ableiten
 
für TImage dementsprechend "ExtCtrls" noch in die uses klausel eintragen

maximus Caesar 2. Nov 2004 11:30

Re: OOP: Klassen ableiten
 
Ups... :oops:

Gibt noch ein Fehler:
Delphi-Quellcode:
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;
folgende Fehlermeldung:

Delphi-Quellcode:
[Error] Weg.pas(9): Published field 'FX1' not a class nor interface type

Pseudemys Nelsoni 2. Nov 2004 11:32

Re: OOP: Klassen ableiten
 
schreib mal:

Delphi-Quellcode:
private
vor deinen strings

Steve 2. Nov 2004 11:32

Re: OOP: Klassen ableiten
 
Deklariers mal nicht published, sondern Private o.ä. (also FX1 etc.)

Gruß
Stephan :dance:

Pseudemys Nelsoni 2. Nov 2004 11:36

Re: OOP: Klassen ableiten
 
achja, noch ein tipp...

Delphi-Quellcode:
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;
der übersicht wegen solltest du das ganze ein bisschen besser einreihen :zwinker:
das zeigt dir delphi schon an TForm1 wie das geht ;)

Steve 2. Nov 2004 11:39

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 00:47 Uhr.
Seite 1 von 2  1 2      

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