AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Vererbung: Klassentyp erwartet

Ein Thema von delphicoder123 · begonnen am 14. Jul 2019 · letzter Beitrag vom 14. Jul 2019
Antwort Antwort
delphicoder123

Registriert seit: 14. Feb 2019
90 Beiträge
 
#1

Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 11:39
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.
  Mit Zitat antworten Zitat
Benutzerbild von Heuman
Heuman

Registriert seit: 12. Nov 2016
Ort: Bielefeld
47 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 11:45
Hallo,

Trect ist als record defeniert und nicht als class

siehe Hilfe.

GRuß

Geändert von Heuman (14. Jul 2019 um 13:33 Uhr) Grund: Fehler berichtigt.
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
90 Beiträge
 
#3

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 12:28
Hallo,

Trect ist als record defeniert und als class

siehe Hilfe.

GRuß
Was muss ich konkret ändern?
  Mit Zitat antworten Zitat
Schokohase

Registriert seit: 17. Apr 2018
833 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 12:34
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
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
90 Beiträge
 
#5

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 12:42
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.
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.579 Beiträge
 
Delphi 2010 Architect
 
#6

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 12:44
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

Geändert von EWeiss (14. Jul 2019 um 12:54 Uhr)
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
90 Beiträge
 
#7

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 13:39
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.
  Mit Zitat antworten Zitat
Benutzerbild von Heuman
Heuman

Registriert seit: 12. Nov 2016
Ort: Bielefeld
47 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 13:45
Hallo,
das sollte eigentlich funktionieren.

var rt:TRect;

begin

.fillrect(rt);

end;
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Vererbung: Klassentyp erwartet

  Alt 14. Jul 2019, 15:45
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;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf