Olá,
Luis (ou qualquer pessoa que já tenha inserido campo de texto em Lua), você poderia postar um exemplo de entrada de texto em Lua aqui no fórum?
obrigado
Giuliano
Autor: Giuliano Bertoti
Olá,
Luis (ou qualquer pessoa que já tenha inserido campo de texto em Lua), você poderia postar um exemplo de entrada de texto em Lua aqui no fórum?
obrigado
Giuliano
Autor: Giuliano Bertoti
Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.
Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:
1616 comentários
local IGNORE = false
function handler (evt)
-- Verifica se são eventos do teclado
if IGNORE then
return
end
if evt.class == 'key' and evt.type == 'press'
then
canvas:attrFont ("Times",10,"Bold") --Seta fonte
canvas:attrClip (0,0,40,20)
canvas:attrColor('white') --Seta fundo
canvas:drawRect('fill',0,0,canvas:attrSize())
canvas:attrColor('red') --Seta fonte
canvas:drawText(evt.key,contagem,0)
contagem=contagem+1
canvas:flush()
end
end
event.register(handler)
frase={}
canvas:attrFont ("Times",10,"Bold") --Seta fonte
canvas:attrClip (0,0,200,10)
local IGNORE = false
function handler (evt)
-- Verifica se são eventos do teclado
if IGNORE then
return
end
if evt.class == 'key' and evt.type == 'press'
then
canvas:attrColor('white') --Seta fundo
canvas:drawRect('fill',0,0,canvas:attrSize())
canvas:attrColor('red') --Seta cor
frase[contagem]=evt.key
tamanho_frase=0
for i=1,contagem do
x,y=canvas:measureText(frase[i])
canvas:drawText(frase[i],tamanho_frase,0)
tamanho_frase=tamanho_frase+x
end
contagem=contagem+1
canvas:flush()
end
end
event.register(handler)
Então Carlos...criei um método seguindo sua idéia...
function TextBox (x,y,dx,face,size,style,color_letter,color_background,evt,frase_atual) x é a coordenada x na tela
y é a coordenada y na tela
dx é o tamanho do espaço que vc quer o campo de texto
face é a font, style o estilo e size o tamanho..
cor de letra e cor de background..
O evento que vai ser analisado é o evt...
frase_atual é o vetor que possui a frase que foi construida até agora para poder desenhar a frase. - Se o valor do evento for uma letra diferente de Nill, seta pra cima,baixo,esqueda e enter ele adiciona a letra no vetor...retorna o vetor frase_atual
- Se o valor do evento for Nill ou seta pra cima,baixo ou esquerda, nada faz e retorna o vetor frase_atual
- Se o valor do evento for uma seta para a direita, adiciona espaço a frase, retorna o vetor frase_atual
- Se o valor do evento for enter, retorna false...dizendo que é fim de entrada. Uma implementação do método abaixo...não está muito bem comentado, mas creio que dê para entender o funcionamento.(ele está meio grande, não existe um meio de postar o código no fórum de forma mais limpa?) local frase_atual1 = {}
local frase_atual2 = {}
recipiente=0
recipiente2=0
canvas:attrClip (0,0,300,50)
local IGNORE = false -- Método TextBox recebe como parametros respectivamente
--Coordenada horizontal do textbox
--Coordenada vertical do textbox
--tamanho do textbox
--Face,Size e Style...respectivamente dizem respeito a fonte usada no textbox
--Color_letter e coloe_background...respectivamente dizem respeito a cor da letra do textbox e a do fundo
--evt é o evento a ser analizado
--frase atual, é onde o evento caso válido vai ser guardado. function TextBox (x,y,dx,face,size,style,color_letter,color_background,evt,frase_atual)
if evt.key == Nill then
return frase_atual
end
if evt.key == 'CURSOR_UP' then
return frase_atual
elseif evt.key == 'CURSOR_DOWN' then
return frase_atual
elseif evt.key == 'CURSOR_LEFT' then
return frase_atual
end
if evt.class == 'key' and evt.type == 'press'
then
if evt.key == 'ENTER'
then
return false
end
canvas:attrFont (face,size,style) --Seta fonte
canvas:attrColor(color_background) --Seta fundo
canvas:drawRect('fill',x,y,dx,size)
canvas:attrColor(color_letter) --Seta cor
tamanho_frase=0
i=1
while frase_atual[i] ~= NILL do
x,l=canvas:measureText(frase_atual[i])
canvas:drawText(frase_atual[i],tamanho_frase,y)
tamanho_frase=tamanho_frase+x
i=i+1
end
if evt.key == 'CURSOR_RIGHT' then
frase_atual[i]=" "
else
frase_atual[i]=evt.key
end
canvas:drawText(frase_atual[i],tamanho_frase,y)
canvas:flush()
end
return frase_atual
end function handler (evt)
--Se o recipiente não for falso então nao acabou de escrever no textbox1
if (recipiente ~= false) then
recipiente =TextBox(0,0,300,"Times",10,"Bold","blue","white",evt,frase_atual1)
--Se nao acabou de escrever no textbox1, então salva o conteudo do recepiente.
if(recipiente ~=false) then
frase_atual1=recipiente
end
else
recipiente2 = TextBox(0,20,300,"Times",30,"Bold","red","green",evt,frase_atual2)
if(recipiente2 ~=false) then
frase_atual2=recipiente2
end end
if(recipiente2 == false) then
event.post('out', {class='ncl', type='presentation', transition='stops'})
end
end
event.register(handler)
clube.ncl.org.br/?q=node/55
Abs On Thu, Aug 28, 2008 at 5:03 PM, wrote:
> Forum: NCLua: Dúvidas sobre o uso da Linguagem Lua em programas NCL
> Thread: Campos de Texto em Lua (exemplo)
> Author: Newton Ichihara
> Posted: 2008-08-28 17:03:16.701069-03
>
> Se eu vi bem...dentro o emulador do ginga, no caminho
> /usr/local/lib/lua/5.1/gui
>
>
>
> tem uma gui para fazer textbox...oO
>
> Recebendo correspondência demais? Gerencie suas notificações em:
> www.softwarepublico.gov.br/notifications/manage
Obrigado