Einzelnen Beitrag anzeigen

twofel

Registriert seit: 23. Feb 2011
12 Beiträge
 
#1

DELPHI XE4 obj.orient. Programmierung

  Alt 23. Mai 2013, 11:23
Hallo Community,

beim Testen von Delphi XE4 habe ich Probleme bei der Ausführung des folgenden Programms.
Der Fehler : nach dem Compilieren startet das Programm welches zwei Kreise und ein Rechteck darstellt ,
aber die Objekte werden nicht mit Farben ausgefüllt. Irgendwas scheint mit der Objektorienten Programmierung
nicht zu stimmen. ( also dieses Objekt BRUSH )
Könnt ihr mir helfen ?

Hier der Code aus Computerbild 8/2000

Delphi-Quellcode:
unit Zeichenprogramm2;
// Zeichenprogramm Kreis, Rechteck
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TGrafikobjekt=class
x,y: integer;
fuellFarbe:TColor;
randFarbe:TColor;
procedure anzeigen;virtual;
end;

TKreis = class(TGrafikobjekt)
radius:integer;
procedure anzeigen;override;
end;

TRechteck=class(TGrafikobjekt)
r,s:integer;
procedure anzeigen;override;
end;

TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation
{$R *.DFM}


procedure TKreis.anzeigen;
begin
Form1.canvas.ellipse(x,y,x+radius*2,y+radius*2);
end;

procedure TRechteck.anzeigen;
begin
Form1.canvas.rectangle(x,y,x+100,y+100);
end;

procedure TGrafikObjekt.anzeigen;
begin
Form1.canvas.pen.color:=randFarbe;
Form1.canvas.brush.color:=fuellFarbe;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Kreis:TKreis;
var Kreis2:TKreis;
begin
Kreis:=TKreis.create;
Kreis.x:=50;
Kreis.y:=60;
Kreis.radius:=100;
Kreis.randFarbe:=clGreen;
Kreis.fuellFarbe:=clYellow;
Kreis.anzeigen;
Kreis.destroy;
Kreis2:=TKreis.create;
Kreis2.x:=20;
Kreis2.y:=70;
Kreis2.radius:=200;
Kreis2.randFarbe:=clRed;
Kreis2.fuellFarbe:=clBlue;
Kreis2.anzeigen;
Kreis2.destroy;
end;

procedure TForm1.Button2Click(Sender: TObject);
var Rechteck:TRechteck;
begin
Rechteck:=TRechteck.create;
Rechteck.x:=100;
Rechteck.y:=50;
Rechteck.randfarbe:=clGreen;
Rechteck.fuellfarbe:=clYellow;
Rechteck.anzeigen;
Rechteck.destroy;
end;

end.

Geändert von twofel (23. Mai 2013 um 11:25 Uhr)
  Mit Zitat antworten Zitat