Hallo,
ich habe ein Problem und komme nicht weiter.
Ein Objekt soll die Referenz auf sich als Resultat zurückliefern.
Also nach dem Motto. Wenn du getroffen bist, dann liefere dich selbst zurück.
Im aufrufenden Programm kann dann die aktiveFigur auf die getroffene Figur
gesetzt werden.
Wie kann "das Objekt sich selbst zurückliefern?"
Hier der Programmcode einer Methode eines Qbjektes (result := self
funktioniert nicht!):
Code:
function TQuadrat.getroffen (pHPosition: real; pVPosition: real) : TFigur;
begin
if ((pHPosition > self.gibHPosition) AND (pHPosition < self.gibHPosition+zGroesse)
AND (pVPosition > self.gibVPosition) AND (pVPosition < self.gibVPosition+zGroesse)) then
// dies ist die Figur
begin
hatStift.zeichneRechteck(10,10);
result := Self;
end
else
begin
if (kenntNachfolger <> NIL) then
begin
kenntNachfolger.getroffen(pHPosition,pVPosition);
end
else result := NIL;
end
end;
Aufrufen will ich es:
Code:
aktiveFigur.deaktiviere;
// checken, welches Quadrat getroffen wurde
aktiveFigur := meineFiguren.getroffen(dieMaus.hPosition,dieMaus.vPosition);
aktiveFigur.aktiviere;
Für Hilfe wäre ich sehr dankbar.
Gruss
Gunnar