Página 2 de 2

LABEL com borda

Enviado: 27 Jul 2023 21:08
por JoséQuintas
Sua informação foi maravilhosa, o nome InputWindow
Bastaram alguns segundos !!!!
Em h_ControlMisc.prg

Código: Selecionar todos

   FOR i := 1 TO l
      LN := 'Label_' + hb_ntos( i )
      CN := 'Control_' + hb_ntos( i )
      @ ControlRow , 10 LABEL (LN) VALUE aLabels [i] WIDTH nLabelWidth
Essas 4 linhas eram o que eu precisava.
Comecei a testar aqui.
Acho que agora pode decolar.

Valeu.

LABEL com borda

Enviado: 27 Jul 2023 21:36
por JoséQuintas
hmge.png
Uia.....
Com conteúdo, borda e tudo.

Aquelas 4 linhas deram a informação pra resolver tudo de uma vez.

IMPORTANTE: com DEFINE LABEL não aceita do mesmo jeito, era o que eu estava usando antes.

LABEL com borda

Enviado: 28 Jul 2023 11:19
por Fernando queiroz
Quintas em HWGUI eu uso assim:

Código: Selecionar todos

@ 840,506 SAY oLabel25 CAPTION Hb_DTOC(::DATALT, "DD/MM/YYYY")   SIZE 154,30 ;
		STYLE WS_BORDER+SS_CENTER ;
		COLOR 16777215  BACKCOLOR 255  ;
		FONT HFont():Add( '',0,-21,400,,,) 
teste.jpg

LABEL com borda

Enviado: 28 Jul 2023 11:52
por JoséQuintas
Tinha testado com WS_BORDER e não deu.
Meu fonte tá muito louco:

Código: Selecionar todos

         IF ! Empty( aItem[ CFG_VTABLE ] )
#ifdef HBMK_HAS_HWGUI
            @ nCol2 + ( ( aItem[ CFG_LEN ] + 3 ) * 12 ), nRow2 SAY aItem[ CFG_VOBJ ] CAPTION aItem[ CFG_VVALUE ] OF ;
               iif( ::lWithTab, oTab, ::oDlg ) SIZE Len( aItem[ CFG_VVALUE ] ) * 12, 20 COLOR COLOR_FORE ;
               TRANSPARENT
#endif
#ifdef HBMK_HAS_HMGE
            aItem[ CFG_VOBJ ] := "LabelB" + Ltrim( Str( aItem:__EnumIndex ) )
            @ nRow2, nCol2 + ( ( aItem[ CFG_LEN ] + 3 ) * 12 ) LABEL ( aItem[ CFG_VOBJ ] ) ;
               PARENT ( ::oDlg ) ;
               VALUE aItem[ CFG_VVALUE ] WIDTH Len( aItem[ CFG_VVALUE ] ) * 12 HEIGHT 20 ;
               BORDER
#endif
#ifdef HBMK_HAS_OOHG
            WITH OBJECT aItem[ CFG_VOBJ ] := TLabel():Define()
               :Row := nRow2
               :Col := nCol2 + ( ( nLen + 3 ) * 12 )
               :Value := aItem[ CFG_VVALUE ]
               :Height := 20
               :Width := Len( aItem[ CFG_VVALUE ] ) * 12
               :Border := .T.
            ENDWITH
#endif
Compilo com qualquer coisa.
Testando tudo de uma vez kkk
Isso garante que se houver diferença, é algum detalhe da LIB.

Nota: É igual eu falei: sou principiante, fazendo coisa de principiante, aprendendo ainda, mas desse jeito dá a sensação de que sei tudo, sem saber nada. E tá indo em frente.

LABEL com borda

Enviado: 28 Jul 2023 12:07
por JoséQuintas
hwgui.png
Eureka.
O problema em hwgui era porque coloquei TRANSPARENT.
Com TRANSPARENT a borda não sai.
É o mesmo fonte anterior, lá já atende MINIGUI e HWGUI.

Fernando, valeu, já tinha testado isso, mas como a única diferença do meu teste anterior e o seu era o TRANSPARENT removi.

Notaram que interessante: mesmo tópico resolveu o mesmo problema em duas LIBs.

Surgiu um imprevisto em hwgui: com TRANSPARENT a borda some, mas sem TRANSPARENT o fundo fica branco e a letra branca desaparece.
Também tentei tirar a aparência 3D da borda usando STYLE WS_BORDER + BS_FLAT mas não foi. Sem 3D acho que a informação ficaria mais "leve", e sem o fundo branco idem, mas ainda resta a opção de definir cor de fundo igual à cor do form, o que deixaria equivalente a TRANSPARENT.

LABEL com borda

Enviado: 28 Jul 2023 13:09
por JoséQuintas
3d.png
Acho que dá pra considerar que a parte de visual é comum a todas as LIBs, apesar da solução não ser a mesma.
Só por isso continuando aqui.

Troquei a cor de fundo.
Teoricamente com 3D seria algo mais sofisticado, mas na prática tá parendo que é falha.
Não descobri o que usar, não achei nenhum STYLE ss_ no Windows pra isso.

No VB6 isso era o default, no NET deixou de ser, acho que enxergaram isso.