domingo, 31 de maio de 2009

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.

0 comentários:

Postar um comentário