Einzelnen Beitrag anzeigen

gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#1

TObjectList problem...

  Alt 23. Dez 2010, 09:10
Hallo zusammen,

Ehrlich gesagt habe ich keine Ahnung was los ist, aber irgendwas ist ganz ganz komisch in meiner App. ^^'

Ich habe folgende zwei Loops implementier (Schon länger her, aber jetzt bereiten sie mir probleme)


nun zum Problem:
Nachdem i im ersten Loop 8 erreicht hat. (von 10) und das end des loopes erreicht resp überschritten wird zerschiesst er mir den inhalt der FVoltOVList (die sich im loop unterhalb befindet.). Das heisst dort steht dann nur noch müll in der Liste und wenn ich anschliessend versuche das Objekt auszulesen bekomm ich ne Access vaiolation.

Das was mir nicht in den Kopf geht ist, das wirklich bis zu dem Zeitpunkt wo das end überschritten wird alles noch in bester Ordnung ist :-/

Ich habe auch die Loops umgedreht. also zuerst die voltOV und erst dann die Fans... das funktioniert dann bis ich das nächste mal auf die FVoltOVList zugreife und mir ein objekt rausholen will.
Code:
  For i:= 0 to FFanOvList.Count -1 do begin
    FanObject:= FFanOvList[i] as TFanOverlayObject;
    FanObject.RPM:= ResultRecord.fans[FanObject.RPMArrayPos];
    FanObject.NewSpeed := GetNewSpeedForAFan(FanObject);
    If FanObject.IdleRPM > FanObject.RPM then
      FanObject.IdleRPM:= FanObject.RPM
    else If FanObject.LoadRPM < FanObject.RPM then
      FanObject.LoadRPM:= FanObject.RPM;
  end;

  for i := 0 to FVoltOvList.Count - 1 do begin
    VoltObject:= FVoltOvList[i] as TVoltOverlayObject ;
    VoltObject.Voltage:= ResultRecord.Volts[VoltObject.VoltArrayPos]/100 ; //FormatFloat('###0.0##',ResultRecord.Volts[VoltObject.VoltArrayPos]/100)
    If VoltObject.IdleVolt > VoltObject.Voltage then
      VoltObject.IdleVolt:= VoltObject.Voltage
    else If VoltObject.LoadVolt < VoltObject.Voltage then
      VoltObject.LoadVolt:= VoltObject.Voltage;
  end;
hat jemand eine idee woran das liegen könnte?

Gruss Sev
  Mit Zitat antworten Zitat