Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Vererbung: Klassentyp erwartet (https://www.delphipraxis.net/201346-vererbung-klassentyp-erwartet.html)

delphicoder123 14. Jul 2019 11:39

Vererbung: Klassentyp erwartet
 
Hallo,
ich habe eine eigene Unit Rechteck erstellt. Diese soll von der Klasse TRect erben.
Beim Compilieren tritt der Fehler mit der Meldung "Klassentyp erwartet" auf.
Was mache ich falsch?


Delphi-Quellcode:
unit rechteck;

interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TRechteck = class(TRect)

  private
  x1,x2,y1,y2: Integer;

  public
    constructor erstellen(x1,y1,x2,y2:Integer);
end;



implementation

constructor TRechteck.erstellen;
begin
  self.x1:=x1;
  self.y1:=y1;
  self.x2:=x2;
  self.y2:=y2;
end;

end.

Heuman 14. Jul 2019 11:45

AW: Vererbung: Klassentyp erwartet
 
Hallo,

Trect ist als record defeniert und nicht als class

siehe Hilfe.

GRuß

delphicoder123 14. Jul 2019 12:28

AW: Vererbung: Klassentyp erwartet
 
Zitat:

Zitat von Heuman (Beitrag 1436709)
Hallo,

Trect ist als record defeniert und als class

siehe Hilfe.

GRuß

Was muss ich konkret ändern?

Schokohase 14. Jul 2019 12:34

AW: Vererbung: Klassentyp erwartet
 
Delphi-Quellcode:
TRechteck = class
private
  x1,x2,y1,y2: Integer;
public
  constructor erstellen(x1,y1,x2,y2:Integer);
end;
Nicht das das jetzt sinnvoll ist, aber es kompiliert

delphicoder123 14. Jul 2019 12:42

AW: Vererbung: Klassentyp erwartet
 
Zitat:

Zitat von Schokohase (Beitrag 1436717)
Delphi-Quellcode:
TRechteck = class
private
  x1,x2,y1,y2: Integer;
public
  constructor erstellen(x1,y1,x2,y2:Integer);
end;
Nicht das das jetzt sinnvoll ist, aber es kompiliert

TRechteck soll aber von TRect erben.

EWeiss 14. Jul 2019 12:44

AW: Vererbung: Klassentyp erwartet
 
siehe
Die class TRechteck soll vom Record TRect erben?
Wie soll das gehen.

Die Fehlermeldung sagt es doch schon.. "Klassentyp erwartet"
Ist TRect ein Klassentyp?

gruss

delphicoder123 14. Jul 2019 13:39

AW: Vererbung: Klassentyp erwartet
 
Zitat:

Zitat von EWeiss (Beitrag 1436719)
siehe
Die class TRechteck soll vom Record TRect erben?
Wie soll das gehen.

Die Fehlermeldung sagt es doch schon.. "Klassentyp erwartet"
Ist TRect ein Klassentyp?

gruss


Es geht darum, dass ich in der Unit Rechteck, die Methode FillRect benötige. FillRect benötigt als Parameter ein TRect.
Um die Rechtecke zu zeichnen, verwende ich die Unit Rechteck. Rechteck ist aber nicht vom Typ TRect.
Das heißt, ich kann FillRect in der Unit Rechteck gar nicht aufrufen.

Heuman 14. Jul 2019 13:45

AW: Vererbung: Klassentyp erwartet
 
Hallo,
das sollte eigentlich funktionieren.

var rt:TRect;

begin

.fillrect(rt);

end;

Gollum 14. Jul 2019 15:45

AW: Vererbung: Klassentyp erwartet
 
Hallo,

dann gib doch Deiner Klasse eine TRect-Property:
Delphi-Quellcode:
TRechteck = class
private
  fRect:TRect;
public
  constructor Erstellen(x1,y1,x2,y2:Integer);
  property Rechteck:TRect read fRect;
end;


constructor TRechteck.Erstellen(x1,y1,x2,y2:Integer);
begin
  fRect:=Rect(x1, y1, x2, y2);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 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