Einzelnen Beitrag anzeigen

SquareEnix

Registriert seit: 8. Sep 2009
15 Beiträge
 
Delphi 3 Professional
 
#4

Re: Ungewollter Zugriff auf in einem Array gespeichertes Obj

  Alt 9. Sep 2009, 08:31
@sx2008
Ich weiß auch nicht warum ich TRobot überhaupt abgeleitet habe, denn es verwendent keine der Attribute oder Methoden von TDatabase... Ich glaube ich werde es extrahieren und eigenständig machen.

Zu deiner Frage: Ich verwende in der Klasse TRobot eine Variable, die ein TRobot ist:
Delphi-Quellcode:
...
var
Ziel: TRobot;
...
procedure TRobot.ZielAussuchen (Feinde: Array of TRobot; Prioritaet: integer);
var i: integer; Entfernung: double;
begin
Entfernung:=1000000;
for i:= 1 to (High(Feinde))+1 do
  begin
    if EntfernungMessen(Feinde[i].PPunkt)<Entfernung then
      begin
      Entfernung:=EntfernungMessen(Feinde[i].PPunkt);
      Ziel:=Feinde[i];
      Showmessage('Ziel gewählt');
      end;
  end;
end;
...
Diese Methode dient dazu, dass der Roboter den ihm nächsten Feind angreift.

Zur restlichen Klasse inklusiv Initialisieren:
Delphi-Quellcode:
unit Robot;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBTables;

type
  TRobot = class(TDatabase)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
  ...
  procedure Initialisieren(PosX, PosY: integer; StartWinkel, Geschwindigkeit: double);
  ...
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;


procedure Register;
var Position:Array[1..2] of integer;
    Winkel_1,Speed:double;
    Ziel: TRobot;

implementation

...

procedure TRobot.Initialisieren (PosX, PosY: integer; StartWinkel, Geschwindigkeit: double);
begin
Position[1]:=PosX;
Position[2]:=PosY;
Winkel_1:=StartWinkel;
Speed:=Geschwindigkeit;
end;

...

end.
Ich hoffe das hilft weiter. Es kann sein, dass euch die Programmierung etwas schlampig vorkommt, aber ich programmiere erst seit kurzem öfters. Danke bereits für die Posts!
  Mit Zitat antworten Zitat