unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,geomForm,Rechteck,Kreis, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
la_flaeche: TLabel;
ed_hoehe: TEdit;
ed_breite: TEdit;
bt_flaeche: TButton;
Image1: TImage;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure bt_flaecheClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
rechteck: TRechteck;
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var geomForm : TgeomForm;
begin
rechteck := TRechteck.create(12, 12);
end;
Meine Klasse (
in einer anderen
Unit) sieht momentan so aus:
unit geomForm;
interface
uses Graphics;
type
TgeomForm =
class(TCanvas)
private
Fx:Integer;
Fy:Integer;
public
procedure verschieben(dx,dy :Integer);
function flaeche:Integer;
virtual;
abstract;
procedure zeichne(x,y:Integer) ;
virtual;
abstract;
end;
implementation
procedure TgeomForm.verschieben(dx,dy: Integer);
begin
self.Fx := self.Fx + dx;
self.Fy := self.Fy + dy;
end;
end.
Von dieser Klasse leitet sich wiederrum die Klasse TRechteck ab:
unit rechteck;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,geomForm,Kreis, StdCtrls, ExtCtrls;
type
TRechteck =
class(TgeomForm)
private
Fhoehe:Integer;
Fbreite:Integer;
public
constructor create(hoehe, breite: Integer);
function flaeche : Integer;
override;
procedure zeichne(x,y:integer);
override;
end;
implementation
constructor TRechteck.create(hoehe, breite: Integer);
begin
inherited create;
FHoehe := hoehe;
FBreite := breite;
end;
function TRechteck.flaeche: Integer;
begin
result := Fhoehe*Fbreite;
end;
procedure TRechteck.zeichne(x,y:Integer);
var handle:hdc;
begin
moveto(x,y);
lineto(x+50,y+50);
end;
end.