Solução para Data grid com 2 ou mais colunas em Plua

Olá novamente! Eu resolvi parcialmente meu problema adaptando uma sugestão postada por Morten Agerlin Petersen na lista de e-mail oficial do Plua. Mas eu não usei "gui.field", eu usei multiplos "gui.list", um para cada coluna de dados passados para a função.

Olhe o código desenvolvido (não é o melhor código... mas funciona)
-- tool to easy display multi colums data using Plua

function eventsHandler(e, id, arg)

 --print("e"..e.." id"..id.."arg"..arg)

 -- incredible bad code here !

 -- dont make this in your house please :)
 gui.setstate(1800,arg) 

 gui.setstate(1801,arg) 
 gui.setstate(1802,arg) 


end

function datagrid(data,lines,colums,height,widthColums)

 d={}
 x = 0
 for j=1, colums 
-->do

for i=1, lines do

d[i] = data[i][j]
end

screen.moveto(x)

x = x + (widthColums[j]*5) +1

list = gui.list(height,widthColums[j],d)

gui.sethandler(list,eventsHandler)
end

end


-- testing ------------------------------------

mydata = {}
for a=1,30 do

mydata[a] = {}
mydata[a][1] = a;
mydata[a][2] = "description "-->..a;

mydata[a][3] = "value "..a;

end

screen.moveto(0,30)

gui.title("Data grid with >= 2 colums")

widthColums = {}

widthColums[1] = 5
widthColums[2] = 18

widthColums[3] = 8

-- data, lines,colums, height, width for each colum of matrix

datagrid(mydata,30,3,12,widthColums)


gui.main()
Neste exemplo eu crio 3 colunas (de listas) na tela, a posição de cada uma é ajustada para parecer que é "um só" componente.

Novamente, esta não é a melhor solução, mas vou trabalhando com o que tenho.

Obrigado por tudo amigos.
2009-05-31 13:06:00
Este é o antigo Live Helton

Então, português é minha língua mãe, eu não tenho tanto a aprender quanto nos demais idiomas, assim este blog não discute aprendizado do idioma, e sim tópicos randômicos de interesse do dia a dia. Tecnologia, desenvolvimento, um pouco de reflexão crítica, enfim, uma bagunça bem como nossa mente é.
RSS Feed
"A vida é curta demais para ser pequena / The live is so short to be small / Das leben zu kurz sind für kleine sein". (Benjamin Disraeli)