Einzelnen Beitrag anzeigen

schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Ungewollter Zugriff auf in einem Array gespeichertes Obj

  Alt 9. Sep 2009, 09:44
Zitat von SquareEnix:
@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.

Delphi-Quellcode:
{...}
type
  TRobot = class(TDatabase)
{...}
  end;

procedure Register;
var Position:Array[1..2] of integer;
    Winkel_1,Speed:double;
    Ziel: TRobot;
Also, erstens würde ich einfach das TDatabase durch TObject ersetzen.

Du verwendest globale Variablen, um deine Daten aus der Methode Initialisieren zu speichern. Mache aus diesen Variablen (private) Felder von TRobot. Im Moment verwendet jede Instanz die gleichen Variablen, um die Werte zu speichern.

Delphi-Quellcode:
type
  TRobot = class(TObject)
  private
    FPosition: Array[1..2] of Integer;
    FWinkel_l: double;
    FSpeed: double;
  public
    procedure Initialisieren(...);
  end;
Hier "besitzt" jeder Roboter sein eigenes Variablenset, welches nur er verwenden kann. Um von aussen hierauf zugreifen zu können, verwende am besten Properties, hierbei kannst du dann eingreifen, wenn jemand den Wert lesen oder schreiben will.
  Mit Zitat antworten Zitat