AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Ungewollter Zugriff auf in einem Array gespeichertes Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

Ungewollter Zugriff auf in einem Array gespeichertes Objekt

Ein Thema von SquareEnix · begonnen am 8. Sep 2009 · letzter Beitrag vom 9. Sep 2009
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz