Orion9

|
Posted: Sat Jun 20, 2026 13:09 Post subject: |
|
|
Опохмелился немного с утра...
В общем, если добавить одну строку между
| Code: | If DragIdx < DropIdx Then
For i = DragIdx + 1 To DropIdx |
Т.е.
| Code: | If DragIdx < DropIdx Then
If gHBarMap[DropIdx-1] = -2 Then DropIdx -= 1
For i = DragIdx + 1 To DropIdx |
То теперь работает корректно, почти как у Гислера
 Hidden text
Но у Гислера все-равно лучше и правильнее. У него работает так: если при вставке кнопки указатель мыши ближе к левому краю, то вставка происходит перед этой кнопкой; если ближе к правому, то после этой кнопки. В скрипте не так. Если индекс перетаскиваемой кнопки больше индекса вставляемой кнопки, то новая кнопка встанет перед старой. Если индекс меньше, то кнопка встанет после.
Есть еще один баг, на скрине он виден. Если панель заканчивается разрывом -2, то перенос за такой разрыв приводит к потере кнопки. Для такого случая нужно отдельно вводить условие, но пока в ближайшее время не смогу поковыряться. Случай, конечно, больше надуманный, однако его тоже надо предусмотреть.
В общем, уже лучше. Но еще есть над чем работать. |
|