Ich habe, weil mein AdHoc Programmieren nichts gebracht hat, nun nochmal von vorne angenfangen und mich auch ein wenig zur TObjectList belesen.
Mein Plan:
1. Erstelle eine Klasse TPriolist mit prio: integer; arr_jobs: array of TJob
2. Für alle Prioritäten erstelle eine Priolist vom Typ TPriolist, gebe prio die Priorität und füge arr_jobs alle Jobs mit dieser Priorität hinzu.
3. Speichere jede Priolist in ol vom Typ TObjectlist
etc...
Das funktioniert auch ganz gut, bis auf dass er die Jobs nicht speichert. Also nachdem ich fertig bin ist in jeder Priolist die Prio gespeichert, die Länge des arr_jobs richtig, aber im Array sind alle Variablen des Jobs 0.
Was hab ich nu schon wieder falsch?
Delphi-Quellcode:
// verschiedene Prios in Priolist speichern
for i := 0 to Length(arr) - 1 do
begin
contains := false;
for j := 0 to ol.Count - 1 do
begin
Priolist := ol[j] as TPriolist;
if arr[i].j_prio = Priolist.prio then
contains := true;
end;
if contains = false then
begin
Priolist := TPriolist.Create;
Priolist.prio := arr[i].j_prio;
for j := 0 to Length(arr) - 1 do
begin
size := Length(Priolist.arr_jobs);
if arr[j].j_prio = Priolist.prio then
if not subListsContain(Priolist, arr[j]) then
begin
Inc(size);
SetLength(Priolist.arr_jobs, size);
Priolist.arr_jobs[size] := arr[j];
end;
end;
ol.Add(Priolist);
end;
end;