Wenn Low(MyBtns) gleich 0 ist, tritt das Problem aber wieder auf.
Bei dynamischen Arrays ist Low() immer 0. Nötigenfalls muss man Low() dann eben als Offset berücksichtigen. Ein dynamisches Array von 1 bis Length zu durchlaufen kann jedenfalls nicht die Lösung sein, es sei denn, man steht auf Fehlermeldungen.