Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrere Variablen mit dem selben Namen ansprechen! (https://www.delphipraxis.net/68292-mehrere-variablen-mit-dem-selben-namen-ansprechen.html)

pacman1986 27. Apr 2006 14:31


Mehrere Variablen mit dem selben Namen ansprechen!
 
das ist auch direkt meine Frage kann man mehrer variablen mit dem selben namen ansprechen?
falls euch das irritiert hier die erklärung :

Ich Programmier grad ein Spiel hab für die Schüsse im Meinem Spiel einen eigenen Typ der von TImageSprite Abgeleitet ist
Delphi-Quellcode:
type
  TSchuss = class(TImageSprite)
  private
    { Private-Deklarationen }
    xdiff,                //Geschwindigkeit
    kind,                 //Um mehrere Arten einzubauen
    dmg  : integer;      //Verursachender Schaden

  public
    { Public-Deklarationen }
    constructor Create(AParent:TSprite);override;
    procedure DoMove (MoveCount:Integer);override;
    procedure DoCollision(Sprite:TSprite; var Done:Boolean);override;
  end;
jetze benutz ich eine variable um diese zu Createn

Delphi-Quellcode:
schuesse : TSchuss;
den create ruf ich hiermit auf

Delphi-Quellcode:
             
Schuesse := TSchuss.Create(DXSpriteEngine1.Engine);
   With Schuesse do begin
     ....
   end;
Das Funktioniert auch wudnerbar

jetzt will ich aber ein Multiplayer modus einbauen und muss über Netzwerk ein paar Informationen verschicken

muss ein array machen und so das ganze nochmal umschreoben oder kann ich mit einer FindComponent ähnlichen methode die variablen die den selben namen haben (schuesse) einzeln ansprechen

Mavarik 27. Apr 2006 15:16

Re: Mehrere Variablen mit dem selben Namen ansprechen!
 
Hallo!

Also... Dein Programm muss ja dann auf die Daten, die über das Netzwerk kommen reagieren können...

Da Du sicherlich nicht nur Schüsse übertragen wirst und sicherlich in irgent einer Form die Daten
kodieren musst.

Das Klingt nach eine großen Case...

Delphi-Quellcode:
  Case DatenID of
   Schuss : begin
            end
   Player : begin
            end;
   Item  : begin
            end;
   Licht : begin
            end;
   Tuer  : begin
            end;
  end; // of case
Hier kannst Du dann die einzelen Variablen belegen...

Frank :coder:

pacman1986 27. Apr 2006 15:23

Re: Mehrere Variablen mit dem selben Namen ansprechen!
 
die eigentliche Übertragung ist nicht das problem!
ich habe eine variable schuesse die im speicher immer durch create noch ein schuss anlegt. der este geht automatisch das heisst ich greife nicht einzeln auf die daten zu sie werden automatisch verändert. ich will jetzt aber beispielsweise die x und y koordinaten haben
wenn ich mit
Delphi-Quellcode:
schuesse.x;
bzw.
Delphi-Quellcode:
schuesse.y;
darauf zugreife kommt ja nur ein wert ich will aber alle haben deswegen würde ich gern wissen wie ich das anstellen kann ohne ein array zu benutzen. ich will jetzt die daten des schusses auslesen das ist das einzige womit ich probleme habe. der rest ist in arrays gepackt ^^.

jim_raynor 27. Apr 2006 15:26

Re: Mehrere Variablen mit dem selben Namen ansprechen!
 
Du musst dir ein Array oder auch eine Liste (TList) mit den Objekten machen. Eine Variable kann nicht auf mehrere Objekte zeigen.

pacman1986 27. Apr 2006 16:02

Re: Mehrere Variablen mit dem selben Namen ansprechen!
 
danke das wollt ich wissen also a bisse mit pointer rumprobieren

/edit : ich hab jetzt verkette listen durch pointer genommen schien mir am sinnvollsten für das was ich haben will thx

shmia 27. Apr 2006 17:56

Re: Mehrere Variablen mit dem selben Namen ansprechen!
 
Zitat:

Zitat von pacman1986
danke das wollt ich wissen also a bisse mit pointer rumprobieren

Das brauchst du nicht, wenn du statt TList die Klasse TObjectList verwendest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 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 by Thomas Breitkreuz