почему флажок не перемещается при изменении размера стека?
Я сделал стек, который отображает строки текста, которые меняют свою ширину при изменении размера стека. Столбцы категории меняют свое положение при изменении размера, но флажок не меняется.
Что мне не хватает в коде? Какие изменения необходимо внести?
Если я понимаю, чего вы пытаетесь достичь здесь, тогда в вашем обработчике LayoutControl внесите следующие изменения:
-- put the rect of btn "btnCheck" of me into theFieldRect
-- put item 3 of pControlRect - 5 into item 3 of theFieldRect
-- set the rect of btn "btnCheck" of me to theFieldRect
set the left of btn "btnCheck" of me to the right of fld "cat" of me
Однако я думаю, что изменение размера поля Cat тоже неверно. Попробуйте что-то вроде:
on LayoutControl pControlRect
set the right of btn "btnCheck" of me to item 3 of pControlRect-4
set the right of fld "Cat" of me to the left of btn "btnCheck" of me
get the rect of fld "Line" of me
put the left of fld "Cat" of me into item 3 of it
set the rect of fld "Line" of me to it
put the formattedHeight of fld "Line" of me + item 2 of it into item 4 of it
set the rect of fld "Line" of me to it
put item 4 of it into item 4 of pControlRect
set the rect of graphic "Background" of me to pControlRect
end LayoutControl
Чтобы отредактировать скрипт LayoutControl, вам нужно открыть инспектор свойств сетки данных и нажать кнопку Row Behavior.... Это представит редактор сценариев для поведения шаблона строки.
personMonte Gouldingschedule12.12.2013
comment
Привет Монте, спасибо за ваш ответ. Верхняя часть кода работает нормально. Я экспериментировал с нижними 7 строками, помещая их в код карты или код стека, но они вообще не работают. Вот ссылка на стек: dropbox.com/s/ug694xdr2rjvfka/ - personmark; 12.12.2013
comment
Я добавил примечание о том, как редактировать скрипт LayoutControl.
- personMonte Goulding; 12.12.2013
comment
Еще раз спасибо, Монте. Теперь я поместил эти 7 строк в скрипт Row Behavior, но ничего не появилось.
- personmark; 12.12.2013
comment
Ах... извините, у меня была небольшая проблема с одной строкой. Я исправил это выше и завершил весь обработчик, так что вы можете просто скопировать и вставить ;-)
- personMonte Goulding; 12.12.2013
comment
Теперь это работает намного лучше. И это выглядит проще, чем исходный код, который у меня был. Спасибо!
- personmark; 13.12.2013
comment
Я хотел бы проголосовать за ваш ответ, но я не могу этого сделать :-(
- personmark; 13.12.2013
comment
Если вас устраивает мой ответ, вы можете принять его как правильный, установив флажок. Похоже, кто-то на SO любит отрицать мои сообщения без видимой причины и без объяснения причин... не уверен, почему это так...
- personMonte Goulding; 13.12.2013
comment
Теперь как 1-строчный вид, так и вид «Полная строка» работают нормально. Но странно то, что скрипты поведения для обоих представлений одинаковы!?? - Я не понимаю, почему? Стек можно скачать отсюда: stackoverflow.com/questions/20542113/ - personmark; 13.12.2013
Потому что у DataGrid нет этой функции. Если вы будете использовать диспетчер геометрии, свойства GM не копируются из флажка в шаблоне в флажки в фактическом DG. Так что ГМ не работает. Возможно, вы могли бы написать собственный скрипт, который устанавливает право всех флажков на положение относительно ширины карточки:
on resizeStack
lock screen
repeat with x = 1 to number of buttons
if the style of btn x is "checkbox" then
set the right of btn x to the width of this cd - 100
end if
end repeat
unlock screen
end resizeStack
К сожалению, это также не работает с сеткой данных, потому что DG также выполняет некоторое (или значительное) изменение размера самостоятельно.
Было бы намного проще создать свой собственный.
personMarkschedule11.12.2013
comment
Спасибо Марк, Ну, создать любой скрипт самостоятельно не так просто, так как я совсем новичок. До сих пор я мог проверить другие примеры стека и части кода и каким-то образом собрать их воедино... Мне нужно узнать намного больше.
- personmark; 12.12.2013