Hi snOw,
in deinen Erläuterungen verwendest du Begriffe (z.B. kategorien) deren Bedeutung für das Problemverständnis du vorher nicht darlegst - an solchen Stellen komme ich aus dem Tritt. Verzeih.
Ich habe dein Code-Fragment auf die relevanten Zeilen reduziert und komme zu dem Schluss, das dein Code prinzipiell korrekt ist. Der Fehler muss in den Code-Zeilen liegen, die du nicht zeigst. Ich will dir nicht zu einem kompletten
oop rewrite raten - das kann dir von anderer Seite noch widerfahren - aber ein bischen aufräumen solltest du schon. Auch rein prozeduraler Code kann in Delphi schön aussehen. Vielleicht siehst du dann auch sofort, wo dein Fehler liegt.
Hier ein Muster ohne Wert als Denkanstoß:
Delphi-Quellcode:
var
i: integer;
begin
for i := 1 to ArtikelCount do
if Check(Artikel[i]) then
if Exists(ArtikelNummer(i))
then MarkForUpdate(ArtikelNummer(i))
else MarkForInsert(ArtikelNummer(i));
end;
Grüße vom marabu