Como ativamente mudar o rótulo de seqüência de caracteres no visualworks smalltalk
-
15-09-2020 - |
Pergunta
Eu estou tentando alterar dinamicamente o valor de um rótulo em um ApplicationModel dinamicamente durante a execução do meu programa.Eu tentei:
(self builder labelAt: #Label4) labelString: 'Dynamic text here'.
Mas se um labelString não entendeu o erro.Quando eu executo:
(self builder labelAt:#Label4)
Eu recebo "UndefinedObject".O que, obviamente, sugere que eu não sinto o meu objeto de Rótulo.
Solução
Tente
(self builder componentAt: #Label4) widget labelString: 'whatever'
ou
(self widgetAt: #Label4) labelString: 'whatever'
Outras dicas
Se você tem um Modelo para a mudança de valor é muito fácil de usar só de leitura InputField vinculado ao seu modelo.Atrevo-me a dizer ter um Modelo para uma alteração de valor é geralmente uma boa idéia.
Se você definir InputField como só de leitura e sem um limite, que será exatamente como um texto normal, com etiqueta.A partir de um ponto de vista de usuário a única diferença está na capacidade de selecionar e copiar texto de leitura-apenas o campo de entrada, o que é útil em muitos casos.
Por outro lado, as Etiquetas podem ter muito mais rico do olhar.Você pode usar o Texto, ComposedText ou Imagem para eles.