Só apanhei um pouco pra entender que era necessário o clique da direita.... rs
Código fonte relativamente simples, e poderoso.
Parabéns, fantástico.
Apenas comentário:
Uma coisa interessante da GTWVG é usar linha/coluna como referência.
Com base nisso, dá pra pensar em fazer nas LIBs gráficas do mesmo jeito.
Por exemplo, modifiquei um fonte que o Toledo postou tempos atrás, pra HMG Extended.
Original:
@ 030,005 label lbl_cep;
of form_cep;
value 'CEP';
autosize;
font 'tahoma' size 010;
bold;
fontcolor _preto_001;
transparent
@ 030,070 textbox tbox_cep;
of form_cep;
height 027;
width 85;
value cCep;
font 'tahoma' size 010;
backcolor _fundo_get;
fontcolor _letra_get_1;
inputmask '99999-999';
on enter {|| CepOk(StrTran(form_cep.tbox_cep.Value,"-",""))}
@ 060,005 label lbl_endereco;
of form_dados;
value 'Endereço';
autosize;
font 'tahoma' size 010;
bold;
fontcolor _preto_001;
transparent
@ 060,070 textbox tbox_endereco;
of form_cep;
height 027;
width 380;
value cEndereco;
font 'tahoma' size 010;
backcolor _fundo_get;
fontcolor _letra_get_1
@ 090,005 label lbl_bairro;
of form_dados;
value 'Bairro';
autosize;
font 'tahoma' size 010;
bold;
fontcolor _preto_001;
transparent
@ 090,070 textbox tbox_bairro;
of form_cep;
height 027;
width 280;
value cBairro;
font 'tahoma' size 010;
backcolor _fundo_get;
fontcolor _letra_get_1
@ 0120,005 label lbl_cidade;
of form_dados;
value 'Cidade';
autosize;
font 'tahoma' size 010;
bold;
fontcolor _preto_001;
transparent
@ 0120,070 textbox tbox_cidade;
of form_cep;
height 027;
width 250;
value cCidade;
font 'tahoma' size 010;
backcolor _fundo_get;
fontcolor _letra_get_1
@ 0160,005 label lbl_uf;
of form_dados;
value 'UF';
autosize;
font 'tahoma' size 010;
bold;
fontcolor _preto_001;
transparent
@ 0160,070 textbox tbox_uf;
of form_cep;
height 027;
width 30;
value cUf;
font 'tahoma' size 010;
backcolor _fundo_get;
fontcolor _letra_get_1
define label linha_rodape
col 000
row form_cep.height-090
value ''
width form_cep.width
height 001
backcolor _preto_001
transparent .F.
end label
Modificado:
WSay( 1, 1, "lbl_cep", "CEP" )
WGet( 1, 14, "tbox_cep", cCep, "99999-999", { || CepOk( StrTran( form_cep.tbox_cep.Value, "-", "" ) ) } )
WSay( 2, 1, "lbl_endereco", "Endereço" )
WGet( 2, 14, "tbox_endereco", cEndereco )
WSay( 3, 1, "lbl_bairro", "Bairro" )
WGet( 3, 14, "tbox_bairro", cBairro )
WSay( 4, 1, "lbl_cidade", "Cidade" )
WGet( 4, 14, "tbox_cidade", cCidade )
WSay( 5, 1, "lbl_uf", "UF" )
WGet( 5, 14, "tbox_uf", cUF )
...
FUNCTION WSay( nRow, nCol, cName, cValue )
@ nRow * 30, nCol * 5 LABEL &cName OF form_dados value cValue Autosize font 'tahoma' size 010 bold fontcolor BLACK transparent
RETURN NIL
FUNCTION WGet( nRow, nCol, cName, cValue, cPicture, bOnEnter )
LOCAL nHeight := 27, nWidth := Len( cValue ) * 10
IF cPicture == NIL
@ nRow * 30, nCol * 5 TEXTBOX &cName HEIGHT nHeight WIDTH nWidth ;
VALUE cValue ;
font "tahoma" size 010 backcolor BLUE fontcolor WHITE
ELSE
@ nRow * 30, nCol * 5 TEXTBOX &cName HEIGHT nHeight WIDTH nWidth ;
VALUE cValue ;
font "tahoma" size 010 backcolor BLUE fontcolor WHITE ;
INPUTMASK cPicture ON ENTER bOnEnter
ENDIF
RETURN NIL
Não deixa de ser uma alternativa.
Quem não tem cão, caça com gato, coelho, passarinho... o que a imaginação sugerir e que funcionar... rs