Как активно изменить строку метки в visualworks smalltalk - PullRequest
3 голосов
/ 14 июля 2010

Я пытаюсь динамически изменять значение метки в ApplicationModel динамически во время работы моей программы.Я пытался:

(self builder labelAt: #Label4) labelString: 'Dynamic text here'.

Но получить ошибку labelString не понял.Когда я запускаю:

(self builder labelAt:#Label4)

, я получаю «UndefinedObject».Что, очевидно, говорит о том, что я не возвращаю свой объект Label.

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

Попробуйте

(self builder componentAt: #Label4) widget labelString: 'whatever'

или

(self widgetAt: #Label4) labelString: 'whatever'
0 голосов
/ 27 января 2011

Если у вас есть Model для вашего изменяющегося значения, довольно просто использовать InputField только для чтения, привязанный к вашей модели.Я осмелюсь сказать, что иметь модель для изменяющегося значения - это, как правило, хорошая идея.

Если вы определите InputField только для чтения и без рамки, он будет выглядеть точно как обычная текстовая метка.С точки зрения пользователя, единственное отличие заключается в способности выделять и копировать текст из поля ввода только для чтения, что полезно во многих случаях.

С другой стороны, метки могут выглядеть намного более богато.Вы можете использовать Текст, ComposedText или Изображение для них.

...