![]() |
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. |
AW: Vererbung: Klassentyp erwartet
Hallo,
Trect ist als record defeniert und nicht als class siehe Hilfe. GRuß |
AW: Vererbung: Klassentyp erwartet
Zitat:
|
AW: Vererbung: Klassentyp erwartet
Delphi-Quellcode:
Nicht das das jetzt sinnvoll ist, aber es kompiliert
TRechteck = class
private x1,x2,y1,y2: Integer; public constructor erstellen(x1,y1,x2,y2:Integer); end; |
AW: Vererbung: Klassentyp erwartet
Zitat:
|
AW: Vererbung: Klassentyp erwartet
![]() 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 |
AW: Vererbung: Klassentyp erwartet
Zitat:
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. |
AW: Vererbung: Klassentyp erwartet
Hallo,
das sollte eigentlich funktionieren. var rt:TRect; begin .fillrect(rt); end; |
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 10:41 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 by Thomas Breitkreuz