GTWVG e Wvt_DrawLabel

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

GTWVG e Wvt_DrawLabel

Mensagem por ANDRIL »

Fazendo alguns testes agora que consegui compilar os exemplos usando hb3.2, não estou conseguindo obter o resultado desejado.
Assim exibe na tela todos
aPaint := {}
l=14
c=4
AAdd( aPaint, { "Label", {|| Wvt_DrawLabel( l, c, "ITEM NUMERO 1", 0, , RGB( 0, 0, 0 ), RGB( 255,255,255 ), "Arial", 8,8 , , , , .F., .F. ) }, { WVT_BLOCK_LABEL, 2, 00, 4, 00 } } )
AAdd( aPaint, { "Label", {|| Wvt_DrawLabel( l+1, c, "ITEM NUMERO 2", 0, , RGB( 0, 0, 0 ), RGB( 255,255,255 ), "Arial", 8,8 , , , , .F., .F. ) }, { WVT_BLOCK_LABEL, 2, 00, 4, 00 } } )
AAdd( aPaint, { "Label", {|| Wvt_DrawLabel( l+2, c, "ITEM NUMERO 3", 0, , RGB( 0, 0, 0 ), RGB( 255,255,255 ), "Arial", 8,8 , , , , .F., .F. ) }, { WVT_BLOCK_LABEL, 2, 00, 4, 00 } } )
AAdd( aPaint, { "Label", {|| Wvt_DrawLabel( l+3, c, "ITEM NUMERO 4", 0, , RGB( 0, 0, 0 ), RGB( 255,255,255 ), "Arial", 8,8 , , , , .F., .F. ) }, { WVT_BLOCK_LABEL, 2, 00, 4, 00 } } )
Assim só exibe o último, é como se o array ser preenchido em tempo de execução só o último adicionado é considerado.
l=14
c=4
for i=1 to 4
AAdd( aPaint, { "Label", {|| Wvt_DrawLabel( l+i, c, "ITEM NUMERO "+STR(i), 0, , RGB( 0, 0, 0 ), RGB( 255,255,255 ), "Arial", 8,8 , , , , .F., .F. ) }, { WVT_BLOCK_LABEL, 2, 00, 4, 00 } } )
next
WvtSetPaint( aPaint )
Estou criando uma lista dos itens do pedido usando os labels e parei nesta etapa.
Alguma idéia?
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG e Wvt_DrawLabel

Mensagem por JoséQuintas »

Pena que meus controles adicionais só funcionam no 3.4, iria gostar....

Bom... isso tem a ver com codeblock, e quando está criando o codeblock, ele é criado com a variável e não com o valor dela.

A opção é fazer isso em uma função, assim o valor não se altera.

Código: Selecionar todos

nCol := 4
nRow := 14
aPaint := {}
FOR nCont = 1 TO 4
   AddLabel( aPaint, nRow, nCol, nCont )
NEXT
wvtSetPaint( aPaint )

FUNCTION AddLabel( aPaint, nRow, nCol, nCont )

   AAdd( aPaint, { "label", { || wvt_DrawLabel( nRow + nCont, nCol, "PROD." + Str( nCont, 2 ), 0, ;
      RGB( 0, 0, 0 ), RGB( 255, 255, 255 ), "Arial", 8, 8, , , , .F., .F. ) }, ;
      { WVT_BLOCK_LABEL, 2, 0, 4, 0 } } )

   RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

GTWVG e Wvt_DrawLabel

Mensagem por ANDRIL »

José funcionou perfeitamente desta forma indicada.
Procurei mais não achei uma forma de criar os labels usando pixel, somente linha,coluna. Se tivesse como usar pixel caberiam mais linhas no display, já usando linha,coluna acaba tendo um tamanho fixo da linha (não do texto).
Obrigado!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder