Erstmal hallöchen,
so undzwar ich habe ein kleines Problem..
durch ein Buttonclick soll die Funktion der Steuerung ( enterRechteck() ) aufgerufen werden und diese soll dann die Funktion whereIamRechteck() der Unterklasse TRechteck aufrufen.
zuletzt sollte das Rechteck-Objekt gelöscht werden (.Destroy)
doch geht es nicht..
es meckert beim aufruf von
-> dieFigur.whereIamRechteck()
-> dieFigur.Destroy()
weiss jemand weiter? ich wäre für jegliche Hilfe dankbar
mfg
c3ytin
Delphi-Quellcode:
type
TSteuerung =
class;
TFigur =
class;
TForm1 =
class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
strict private
dieSteuerung: TSteuerung;
public
procedure whereIamGUI();
end;
TSteuerung =
class
strict private
dieGUI: TForm1;
[b]dieFigur: TFigur;[/b]
strict protected
public
constructor CreateSteuerung(p_Form1: TForm1);
procedure whereIamSteuerung();
procedure enterRechteck();
end;
TFigur =
class [b]
abstract[/b]
strict private
strict protected
public
procedure askWhereIam();
end;
TRechteck =
class(TFigur)
strict private
strict protected
[b]
public[/b]
[b]
procedure whereIamRechteck();[/b]
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
// ########### ASSOZIATIONEN ###########
procedure TForm1.FormCreate(Sender: TObject);
begin
dieSteuerung := TSteuerung.CreateSteuerung(self);
end;
constructor TSteuerung.CreateSteuerung(p_Form1: TForm1);
begin
inherited Create;
dieGUI := p_Form1;
end;
// ########### METHODEN ###########
procedure TForm1.whereIamGUI();
begin
showmessage('
GUI');
end;
procedure TSteuerung.whereIamSteuerung();
begin
showmessage('
Steuerung');
end;
procedure TRechteck.whereIamRechteck();
begin
showmessage('
Rechteck');
end;
procedure TSteuerung.enterRechteck();
begin
[b] dieFigur := TRechteck.Create();[/b]
[b] dieFigur.whereIamRechteck();
//FEHLER: undefinierter Bezeichner[/b]
[b] dieFigur.Destroy();
//FEHLER: undefinierter Bezeichner[/b]
end;
// ########### BUTTONS ############
procedure TForm1.Button1Click(Sender: TObject);
begin
dieSteuerung.enterRechteck();
end;
end.