AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eindeutige ID für Erben eines Objekts ?

Ein Thema von raven_22 · begonnen am 7. Apr 2006 · letzter Beitrag vom 7. Apr 2006
Antwort Antwort
raven_22

Registriert seit: 25. Aug 2003
Ort: Leipzig
23 Beiträge
 
Delphi 7 Enterprise
 
#1

Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 05:15
Hoffentlich bin ich hier in der richtigen Kategorie.
Wenn nicht dann bitte versieben.

Ich erzeuge ein Objekt mit der ID 0
Nun möchte ich andere Objekte von diesem Mutterobjekt ableiten.
Wie schaffe ich es dass sich die ID bei jeder Ableitung um eins erhöht ?


Delphi-Quellcode:
type

   tMyObject = object // mein Objekt
        Name : string;
          ID : integer; // ID = 0
end;

LG Marko
---_-= raven_22 =-_---
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 05:38
meinst du ableiten im richtigen Sinne mit Vererbung? Wenn dem so ist würde ich im Initialization-Abschnitt eine Art RegisterMethode des "Mutter"-Objectes aufrufen welche die ID um 1 erhöht und dann zurück gibt.

Wozu brauchst du das ganze? Vielleicht gibt es ja eine bessere Möglichkeit das Ziel zu erreichen ohne die ID erhöhen zu müssen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
raven_22

Registriert seit: 25. Aug 2003
Ort: Leipzig
23 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 06:15
Ja ableiten im Sinne von vererben.
Wenn du es genau wissen willst, ich will eine Ameisenkolonie simulieren.
Um die einzelnen Objekte (Armeisen) identifizieren zu können will ich ihnen eine ID verpassen.
Es gibt also ein Grundobjekt mit der ID 0
Jedes Objekt was ich davon abeilte soll eine eigene eindeutige ID haben.
Dann gibt’s noch verschiedene Unterklassen, Königin, Arbeiter, Soldaten…

LG Marko
---_-= raven_22 =-_---
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 06:37
Hi,

ich würde es z.B. so machen:

Delphi-Quellcode:
interface

type
  TMyObject = class(TObject)
  private
    FID: Integer;
    FName: string;
  public
    constructor Create(const AName: string);
    property ID: Integer read FID write FID;
    property Name: string read FName write FName;
  end;

implementation

Var
  // Variable für ID
  AIndex: Integer = 0;

constructor TMyObject.Create(const AName: string);
begin
  inherited Create;
  FName := AName;
  FID := AIndex;
  Inc(AIndex);
end;
Test:
Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
Var
  Ameise : TMyObject;
begin
  Ameise := TMyObject.Create('Gustav');
  ShowMessage(Format('Ameise %s Index %d', [Ameise.Name, Ameise.id]));
  Ameise := TMyObject.Create('Anton');
  ShowMessage(Format('Ameise %s Index %d', [Ameise.Name, Ameise.id]));
end;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
7. Apr 2006, 06:50
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
\\"Hoffentlich bin ich hier in der richtigen Kategorie.\\" Leider nicht. In dieser Sparte sollen Vorschläge für die CodeLibrary und keine Fragen gepostet werden
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 07:12
Hallo,
ich bin mich sicher das die Ameisen der Ameisenkolonie nicht standalone erzeugt werden.
Ich denke, dass die Ameisenkolonie die Collection für die einzelen Ameisen ist.
Im einfachsten Fall wäre die Ameisenkolonie ein TList-Nachfahre. Die function Add
liefert als Ergebnis die Anzahl der Elemente. Das wäre der dann ein prima Index
für die Ameisenobjekte. Dann könnte man sich auch globale Variablen sparen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 07:13
Guten Morgen, Marko.

Wenn die Objekte keine Individue sind, dann kannst du auch einfach den Objektzeiger als Identifikation benutzen. Der einzige mir gerade einfallende Grund für eine selbstverwaltete Objekt-ID in einer Simulation ist die Identifikation eines Individuums - wenn du z.B. zu einem bestimmten Zeitpunkt wissen willst, wie es Ameise 42 geht. Das ist aber eher ungewöhnlich.

Grüße vom marabu
  Mit Zitat antworten Zitat
raven_22

Registriert seit: 25. Aug 2003
Ort: Leipzig
23 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Eindeutige ID für Erben eines Objekts ?

  Alt 7. Apr 2006, 09:00
Wow die Vorschläge sind schon mal ganz gut, ist schon was brauchbares dabei.
Die Objekte sollen ganz Individuell sein und sich mehr oder weniger intelligent verhalten.
Und da jede Ameise sich sozusagen selber steuert, will ich wissen wer gerade was macht und so weiter.
Die Armeisen sollen ja auch Informationen miteinander austauchen, beispielsweiße zur Wegfindung.
Die Frage ist nur wie viele von diesen autonomen Objekten ich gleichzeitig laufen lassen kann ohne den Rechner zu sehr zu belasten.

Der Code von dataspider ist schon fast so wie ich’s wollte, hab ihn nur etwas abwandeln müssen.
Ich wollte nämlich kein TObject sondern nur ein Object, ohne das ganze Zeug was schon da ist.

Also erstmal Danke an euch alle, ich werd mal sehen wie weit ich komme.

LG Marko
---_-= raven_22 =-_---
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz