У меня есть кнопка. Когда я нажал эту кнопку, я хочу, чтобы диалоговое окно отображалось в виде нескольких текстовых полей и кнопок. Я искал все вокруг, чтобы попытаться выяснить, как это сделать, но я все больше смущаюсь. Может ли кто-нибудь помочь?Как создать пользовательское диалоговое окно в LiveCode
ответ
Простейшим примером диалогового окна является это. Сделайте новый субстрат вашей основной столы и вызовите подставку «Диалог». Добавить кнопку в substack, вызовите кнопку «ОК» и дать ему следующий скрипт:
on mouseUp
set the dialogData to "OK"
close this stack
end mouseUp
Сделать еще одну кнопку в вашем mainstack и дать ему этот скрипт:
on mouseUp
go stack "Dialog" as modal
put the dialogData
end mouseUp
Теперь у вас есть диалоговое окно. Вы можете добавлять поля и другие кнопки в стек Dialog. Например, вы можете создать кнопку отмены со следующим сценарием:
on mouseUp
set the dialogData to "Cancel"
close this stack
end mouseUp
, и если у вас есть поле, вы можете изменить сценарий кнопки «OK» в
on mouseUp
set the dialogData to fld 1
close this stack
end mouseUp
Создать новый substack в вашем файле, который выглядит так, как вы хотите, чтобы диалоговое окно выглядело, а затем используйте команду «модальный», чтобы показать его.
Хотя модальные диалоги немного старомодны, так почему бы просто не сделать его отдельным стеком, откройте его (например, используя команду «modeless»), и таким образом позвольте пользователю проверить или скопировать данные из главного окна ?
Обновление: Сделайте то, что предлагает Марк. Синтаксис «как модальный» более читабельен, чем просто использовать «модальный» в качестве команды (не знал, что LiveCode имеет этот вариант сейчас). Тем не менее, я бы по-прежнему предлагал использовать modess, если вы вообще можете, это просто лучше для ваших пользователей, если они могут идти туда и обратно между окнами, а не быть вынужденными в фиксированном порядке.