Trata-se de uma tentativa de simulação do programa tbr33.prg do source do Clipper 5.2, só que com uma array.
Todavia, não estou conseguindo exibir corretamente os dados.
Infelizmente, os elementos (arquivos) da matriz aStru são alternadamente exibidos, ou seja, 1,3,5,7, etc.
Sei que o problema está na deifinção de nLine (ou não
Alguém se habilita a ajudar.
Obrigado.
MarceloG
Compile, linkedit, execute e veja:
Código: Selecionar todos
#include "inkey.ch"
FUNCTION Main()
LOCAL aStru, oTbr, i, oTbc, nLine, GetList, uTbr
cls
aStru := directory()
oTbr:=TBROWSENEW(01,01,MAXROW()-2,MAXCOL()-3)
oTbr:COLORSPEC:="N/W*,N/GR*"
oTbr:COLSEP := ' '
oTbr:HEADSEP := 'ÄÄ'
nLine := 1
i := 1
oTbc:=TBCOLUMNNEW("Teste1",{||IIF(nLine == 1, aStru[i,1], "")})
oTbc:PICTURE:="@!"
oTbc:WIDTH :=20
oTbc:CARGO :="Teste1"
oTbr:ADDCOLUMN(oTbc)
oTbc:=TBCOLUMNNEW("Teste2",{||IIF(nLine == 1, aStru[i,2], aStru[i,3])})
oTbc:PICTURE:="@!"
oTbc:WIDTH :=10
oTbc:CARGO :="Teste2"
oTbr:ADDCOLUMN(oTbc)
oTbr:GOTOPBLOCK :={||nLine := 1, i := 1}
oTbr:GOBOTTOMBLOCK:={||nLine := 2, i := LEN(aStru)}
oTbr:SKIPBLOCK :={|n,nSavei|;
nSavei := i,;
i := IIF(n > 0,MIN(LEN(aStru),i+n),MAX(1,i+n)),;
IIF( (i % 2) == 0, nLine := 2, nLine := 1),;
i - nSavei}
GetList := {}
@ 01,01,MAXROW()-2,MAXCOL()-3 GET uTbr TBROWSE oTbr;
VALID {||Iif(LastKey() == K_ENTER,READKILL(.T.),.T.)}
READ
RETURN
//---------------------------------