-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
10. Jan 2009
ich hab jetzt noch nich ganz verstanden, was das bring:
{$define TYPED_DP_COLLECTION_TEMPLATE}
_COLLECTION_ITEM_ = TmxCustomItem;
{$INCLUDE dpCollection_tmpl.pas}
TTypedCollection = _COLLECTION_;
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
10. Jan 2009
wie schreib ich da den type? mit den properties= so vllt?
type
TViecher = class(TCollectionitem)
protected
function GetViech(Index: Integer): TViech;
procedure SetViech(Index: Integer; Value: TViech);
public
function Add: TViech;
function Insert(Index: Integer) : TViech;
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
10. Jan 2009
Das mit der Collection sieht gut aus.
2 Fragen:
1. Ist die Anzahl der möglichen Viecher höher oder niedriger wie bei dem array, was ist der vorteil zum array
2. kann ich auch kollektion einer kollektion bilden? also angenommen, ich möchte alle viecher verändern, aber den Forschritt festhalten, in dem ich alle Versionen des Viechs habe?
z.b
viech.haare=1 -> mutiere
viech.haare=2 ->...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
sieht gut aus, vor allem auch eleganter. Ich werd mir das erst mal verinnerlichen bevor ich anfange, an meinem projekt rumzuschrauben^^
aber danke trotzdem
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
ja, stack ist zu gering.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
ich bin jetzt nochmal alles durchgegangen. Den ganzen verdammten quelltext.
Ich hab jetzt wieder alle arrays statisch zurückgebaut.
-> siehe da, es funktioniert wieder.
Wo ich wieder beim Anfang wäre...
Gibt es Mengentypen mit denen ich mehr als 10000 typen speichern kann?
nein?
d.h nach 10000 durchläufen bin ich gezwungen, den stapel zu leeren, abzuspeichern und einen neuen stapel...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
Ich hab mir das jetzt noch einmal mit test-echos durchgeschaut, und ihr hattet irgendwie recht.
in
blaueviecher.viecher:= mutiere(blaueviecher.viecher);
geht er Alle felder des arrays durch und mutiert alle gleichzeitig. Bloß warum??? Wie kann ich das machen, dass er nur das eine, letzte Feld mutiert?
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
Tut mir leid, ich habs falsch geschrieben. So wie oben sieht es aus.
Leider ist das gar nicht das Problem, es besteht immer noch. Das problem bei dem array war sowieso, dass er maximal 10000 viecher aufnehmen konnte. Wieviel viecher kann ich mit tobjectlist aufnehmen? Ich brauch es ja erst gar nicht versuchen, wenn da weniger reinpassen. Kann es sein, dass setlength alle vorhandenen felder um...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
vllt hängt das problem auch irgendwie mit setlength und dem array zusammen.
vllt kann ich aus dem tviech ein object bauen und es dann in eine tobjetlist stecken.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
ach ja, die funktion mutiere hat ja nur den parameter tviech:
procedure mutiere(viech:tviech):tviech;
begin
result.länge:=viech.länge+random(5);
result.haare:=viech.haare+random(5);
end;
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
ich bin mit meinem latein auch am ende. der fehler ist so verrückt, ich glaube ich bekomm gleich en krampf im hirn.
das ergebnis ist das, dass ALLE so sind wie das letzte, mutierte viech.
Dieses viech ist nachweißlich anders als die anderen. Ich hab hier ein paar zahlenbeispiele:
viech1:
länge:1
haare:2
-- neuer timer durchgang
viech1:
länge:3
haare:5
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
da ist nur ein timer, der damit zusammen hängt:
procedure tform1.timer1timer(sender:tobject);
begin
inc(blaueviecher.viecheranzahl);
setlength(blaueviecher.viecher,blaueviecher.viecheranzahl+1); //der array ist 1 größer wie die benötigte anzahl
blaueviecher.viecher:=blaueviecher.viecher // hier sieht es so aus wie das letzte
mutiere(blaueviecher.viecher) // hier wird es ein inviduum, da...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
ähm... möglicherweise hast du recht, aber stumpfsinnigerweise hat es vorher funktioniert. Außerdem will ich ja nur das allerletzte viech so werden lassen das allervorletze viech. Gibts da eine bessere Lösung=?
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
Es kommt keine Fehlermeldung, es ist einfach nur so, dass alle viecher so sind wie das letzte viech.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by vsilverlord,
8. Jan 2009
Hallo,
ich hab ein etwas größeres Projekt, weswegen ich nicht den ganzen quelltext reinschreiben kann.
Ich werde mal versuchen zu beschreiben. Vorher hatte ich einen statischen array mit seiner anzahl als record:
tviechergruppe=record
viecher:array of tviech;
viecheranzahl:integer;
end;
tviech ist einfach ein weiterer record mit den eigenschaften des viechs.