Hallo EE
die IntegerList auf die ich mir hier beziehe ist diese hier (von Udontknow):
www.delphi-forum.de/...ighlight=integerlist
Seit neuestem ergibt sich bei einem Add in die Liste ein EListError bei der markierten Stelle. Der einzige Unterscheid zu der Originalliste ist der Klassenname der bei mir "TSortedIntegerlist" heisst.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| function TSortedIntegerlist.Add(Value: Integer): Integer; var i: integer; begin Result:=-1;
if (FAcceptDuplicates) or (IndexByValue(Value)=-1) then Result:=FList.Add(Pointer(Value));
While (Result>0) and (Self[Result]<Self[Result-1]) do begin i:=Self[Result-1]; Self[Result-1]:=Self[Result]; Self[Result]:=i; Dec(Result); end; end; |
Füllen tue ich die Liste mithilfe einer Query die Daten aus einer SQL Abfrage erhält.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| function TYearBox.FillBox: boolean; var lSortedIntegerList: TSortedIntegerlist; lIx: integer; begin result := false; try cbBox.Properties.Items.BeginUpdate; cbBox.Properties.Items.Clear; lSortedIntegerList := TSortedIntegerlist.Create; lSortedIntegerList.Clear; try DoOpenSQL(qFilter, fSQL); while not qFilter.EOF do begin lSortedIntegerList.Add(qFilter.FieldByName(fValueField).AsInteger); qFilter.Next; end;
for lIx := 0 to lSortedIntegerList.Count-1 do begin cbBox.Properties.Items.Add(IntToStr(lSortedIntegerList.Items[lIx])); end;
result := true; except on E:Exception do begin ShowErrMsg(Format(rsFastBoxError, [lblDescription.Caption, fSQL, '', E.Message])); end; end; finally cbBox.Properties.Items.EndUpdate; if assigned(lSortedIntegerList) then FreeAndNil(lSortedIntegerList); end; end; |
Kann mir jemand helfen diesen Fehler zu beheben? Ich verzweifle schon ^^
Danke!
Diskutiere nie mit einem Irren - er zieht dich auf sein Niveau und schlägt dich mit seiner Erfahrung.