Autor |
Beitrag |
DiamondDog
      
Beiträge: 460
|
Verfasst: Mo 22.11.10 13:13
Hallo Leute,
ich würde gerne in meinem ValueListEditor Einträge per Buttonklick rauf oder runter verschieben, leider bekomme ich immer den Fehler "Listenindex überschreitet das Maximum". Leider weiß ich nicht genau wo drann das liegen kann, weil meiner Meinung nach der Index nicht überschritten wird.
Hier mal mein Code dazu:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.btnAufClick(Sender: TObject); begin if ListEditor1.Row > 1 then begin ListEditor1.Strings.Move(ListEditor1.Row,ListEditor1.Row-1); end; end;
procedure TForm1.btnAbClick(Sender: TObject); begin if ListEditor1.Row < ListEditor1.Strings.Count then begin ListEditor1.Strings.Move(ListEditor1.Row,ListEditor1.Row+1); end; end; |
Danke schon mal an alle fürs Helfen.
Mfg Dog
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.11.10 13:42
|
|
DiamondDog 
      
Beiträge: 460
|
Verfasst: Mo 22.11.10 13:53
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.11.10 13:59
DiamondDog hat folgendes geschrieben : | Also ich muß doch prüfen ob die ausgewählte Zeile, kleiner ist als das Maximum der Liste oder? |
Genau, als das Maximum (Length - 1), nicht kleiner als die Anzahl (Length).
Denn das letzte Element ist auch kleiner als das Length, nämlich genau 1 kleiner...
|
|
LSanchez
      
Beiträge: 26
Erhaltene Danke: 8
|
Verfasst: Mo 22.11.10 14:07
richtig wäre:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.btnAufClick(Sender: TObject); begin if ListEditor1.Row > 0 then begin ListEditor1.Strings.Move(ListEditor1.Row,ListEditor1.Row-1); end; end;
procedure TForm1.btnAbClick(Sender: TObject); begin if ListEditor1.Row < (ListEditor1.Strings.Count - 1) then begin ListEditor1.Strings.Move(ListEditor1.Row,ListEditor1.Row+1); end; end; |
Gruß
Luis Sanchez
|
|
DiamondDog 
      
Beiträge: 460
|
Verfasst: Mo 22.11.10 14:14
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.11.10 14:27
Kann es sein, dass du eine fixed Zeile oben hast? Dann wäre der erste Eintrag Row = 1, aber Strings[0]...
|
|
DiamondDog 
      
Beiträge: 460
|
Verfasst: Mo 22.11.10 14:36
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.11.10 14:40
Also: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.btnAufClick(Sender: TObject); begin if ListEditor1.Row > 1 then ListEditor1.Strings.Move(ListEditor1.Row - 1,ListEditor1.Row - 2); end;
procedure TForm1.btnAbClick(Sender: TObject); begin if ListEditor1.Row < ListEditor1.Strings.Count then ListEditor1.Strings.Move(ListEditor1.Row - 1,ListEditor1.Row); end; |
Für diesen Beitrag haben gedankt: DiamondDog
|
|
DiamondDog 
      
Beiträge: 460
|
Verfasst: Mo 22.11.10 14:43
|
|
|