Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
Du könntest uns mal den genauen code von der TViech declaration und der mutier function geben
Ich sehe momentan keinen unterschied zwischen dynamischen und statischen arrays der auf den code den du uns hier gegeben hast irgendeinen Einfluss hätte. (mal von setlength abgesehn)
Wie gesagt: wenn er bei einer änderung am letzten Element im selben Schritt alle anderen ändert, sieht das für mich...
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
Ich hab jetzt als Initialisierung setlength mit 1 gemacht aber die viecheranzahl auf 0 gelassen, damit funktionierts wunderprächtig
TViech = record
laenge: integer;
haare: integer;
end;
TViecherGruppe = record
viecheranzahl: integer;
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
huch den hab ich ja noch garnich gesehn^^
hmm das wäre genau was passiert wenn du nur pointer durch die Gegend schieben würdest...
Sicher das TViech ein record ist?:D
hab mir auch grade ein testprojekt gebaut und deinen code kopiert.
TViech als
record mit laenge und haare als integer declariert
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
örm, erzeugt das überhaupt code?
Da fehlt ne Zuweisung oder?
Wir sind nicht in C und haben soweit ich weiss keinen += operator :D
...warum funktionieren bei meinen delphicodes die highlights nich...
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
Ändert doch immernoch nichts am übergebenen TViech.
Oder ist result in procedure ein pseudonym für den ersten var parameter? (könnte ja sein :) )
procedure mutiere(var viech:tviech);
begin
viech.länge:=viech.länge+random(5); //oder inc(viech.länge, random(5) wenns kurz sein soll:)
viech.haare:=viech.haare+random(5);
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
mutiere(blaueviecher.viecher)
procedure mutiere(viech:tviech):tviech;
begin
result.länge:=viech.länge+random(5);
result.haare:=viech.haare+random(5);
end;
erm... procedure|result?
aber fällt dir was auf?^^
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
Achso ich hatte überlesen das TViech ein record ist :shock:
Dann schliesse ich mich dir mal an und hätte gerne mal den mutiercode gesehn ;)
@stephan
zu dem Zeitpunkt hat das array viecherzahl+1 viele Elemente
in steht also das letzte und := kopiert das vorletzte
Soweit ich das verstanden habe ist das genau was er will.
Forum: Object-Pascal / Delphi-Language
Delphi
by HenKst,
8. Jan 2009
Also wie Klaus schon sagte
eigentlich müssten immer schon alle Elemente identisch gewesen sein weil du mit
blaueviecher.viecher:=blaueviecher.viecher;
immer nur die Pointer kopierst
Wenn du bei einem eine property änderst, änderst du sie in allen.
Warum das mit nem Statischen array klappt versteh ich nicht.