Liste mit Objekten
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Liste mit Objekten
Hallo,
Ich würde gerne wissen wie ich eine Liste erstelle , mit Objekten , sagen wir das Objekt hat als Eigenschaft X und Y (Double) und wie ich in einer Schleife zB für jedes Element die X und Y Daten verändern kann
Danke im Vorraus
Ich würde gerne wissen wie ich eine Liste erstelle , mit Objekten , sagen wir das Objekt hat als Eigenschaft X und Y (Double) und wie ich in einer Schleife zB für jedes Element die X und Y Daten verändern kann
Danke im Vorraus
-
- Beiträge: 6918
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Liste mit Objekten
Am besten mit einer Array.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Wie oder was soll ih mit einem Array wenn die Anzahl von Objekten unbekannt ist? Ein Array hat dich eine feste Länge,oder?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2816
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Liste mit Objekten
Nicht unbedingt, es gibt ja auch dynamische Arrays.
Wenn du aber wirklich Objekte hast, solltest du eine Liste nehmen. Zum Beispiel eine generische:
Wenn du aber wirklich Objekte hast, solltest du eine Liste nehmen. Zum Beispiel eine generische:
Code: Alles auswählen
program Project1;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, Fgl;
type
// Deine Klasse
TMyClass = class(TObject)
private
FX: Integer;
FY: Integer;
public
property X: Integer read FX write FX;
property Y: Integer read FY write FY;
end;
// Die Spezialisierung einer generischen Objektliste für deine Klasse
TMyList = specialize TFPGObjectList<TMyClass>;
var
MyList: TMyList;
o: TMyClass;
begin
try
// Erzeuge eine neue Listeninstanz
MyList := TMyList.Create();
// Füge der Liste drei neue Elemente hinzu
MyList.Add(TMyClass.Create);
MyList.Add(TMyClass.Create);
MyList.Add(TMyClass.Create);
// durchlaufe die Liste und setze für jedes Objekt X=10 und Y=9
for o in MyList do begin
o.X := 10;
o.Y := 9;
end;
finally
FreeAndNil(MyList);
end;
end.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Gesundheit// Die Spezialisierung einer generischen Objektliste für deine Klasse
TMyList = specialize TFPGObjectList<TMyClass>;

-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Kann ich beim Erstellen schon parameter wie X oder Y mit angeben?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2816
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Liste mit Objekten
Ja, definiere einen eigenen Konstruktor:
Dann kannst du das im Aufruf machen:
Code: Alles auswählen
constructor TMyClass.Create(AX, AY: Integer);
begin
inherited Create;
FX := AX;
FY := AY;
end;
Code: Alles auswählen
MyList.Add(TMyClass.Create(10, 9));
MyList.Add(TMyClass.Create(0, 0));
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Wie/Wo binde ich das ein? bzw ich bekomme einen fehler
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2816
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Liste mit Objekten
Dazu schau doch mal hier rein: http://de.wikibooks.org/wiki/Programmie ... struktoren
Idealerweise liest du dir das ganze eBook mal durch. Das dürfte viele Fragen schon klären.
Idealerweise liest du dir das ganze eBook mal durch. Das dürfte viele Fragen schon klären.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Werd mich nachher mal durch arbeiten danke schon mal
Und wo genau muss nun TMyList = specialize TFPGObjectList<TMyClass>; hin ohne dass es einen fehler verursacht?
Und wo genau muss nun TMyList = specialize TFPGObjectList<TMyClass>; hin ohne dass es einen fehler verursacht?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2816
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Liste mit Objekten
Ich habe dir doch oben ein komplettes Beispiel gegeben. Selbst wenn du noch nciht den grundlegenden Aufbau eines FPC-Programms verstanden hast, sollte das deine Frage beantworten.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 18
- Registriert: Do 26. Mär 2015, 14:45
Re: Liste mit Objekten
Lag wohl daran das mir ein end; abhanden gekommen ist im unteren Programmteil