Hallo zusammen,
ich sehe hier wahrscheinlich den Wald or lauter Bäumen nicht, aber vielleicht könnt Ihr mir helfen.
Ich habe einen Array von dynamischen Checkboxen (ist Delphi 7), es handelt sich um maximal 40 Boxen.
Bei Box 31 steigt er immer aus - komisch, da auch in einem anderen THread die 31 genannt wurde...
Und so mache ich es (Unwichtiges habe ich entfernt):
Delphi-Quelltext
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:
| procedure TPW.OkayClick(Sender: TObject); Var CB_Array : Array of TCheckbox; Begin DataModul.Macht.Active:=TRUE; Anzahl:=DataModul.Macht.RecordCount; SetLength(CB_Array, Anzahl); DataModul.Macht.First; WHILE NOT DataModul.Macht.EOF Do Begin Nummer:=DataModul.Macht.FieldValues['MAN_POS']; hier-----> CB_Array[Nummer]:=TCheckBox.Create(ReihenfolgeMaechte); CB_Array[Nummer].parent:=ReihenfolgeMaechte; CB_Array[Nummer].Caption:=DataModul.Macht.FieldValues['MACHT']; CB_Array[Nummer].Alignment:=taLeftJustify; IF(Nummer<21)Then Begin CB_Array[Nummer].Left:=8; CB_Array[Nummer].Top:=Nummer*24; End Else Begin CB_Array[Nummer].Left:=150; CB_Array[Nummer].Top:=Nummer*24; End; CB_Array[Nummer].Checked:=DataModul.Macht.FieldValues['MAN_PROC']; CB_Array[Nummer].Font.Style:=[]; DataModul.Macht.Next; End; |
An der markierten Stelle steigt er bei der 31. Checkbox (reproduzierbar) mit einem Range Check Error aus. Warum?
Viele Grüße
David
Lieber gut machen statt besser wissen.