Página 1 de 1

bug FOLDEREX

Enviado: 27 Ago 2024 20:23
por JoséQuintas
fundomdi.png
Dependendo do uso, fivewin tem muito disso, se não definir cor para FOLDEREX acontece dessas coisas.
Isso não acontece com FOLDER.
Sei lá as situações, é tanto teste pra resolver pipino, que não sei todas as situações.
Talvez em MDI e WINDOW e em DIALOG não, ou talvez em qualquer WINDOW, já não sei mais.

Só sei que tem diferenças quanto a WINDOW, DIALOG, MDI, MDI Child.
Nisso de cor, na criação de abas, ao ocultar abas, etc.

Mas está andando, devagar mas está.
Formato dlgauto, fazer o que...

bug FOLDEREX

Enviado: 28 Ago 2024 12:09
por Kapiaba
Não vi o FOLDEREX neste exemplo. Pegue o hábito de postar o CÓDIGO para análise, pls.

está usando o comando TRANSPARENT no DIALOGO?

Mostre o Código por gentileza.

Regards, saludos.

bug FOLDEREX

Enviado: 28 Ago 2024 13:09
por JoséQuintas
Vai ter que criar aí e testar situações.
Estou relatando o fato, e solução.

Variações DIALOG/WINDOW

Código: Selecionar todos

STATIC FUNCTION gui_DialogCreate( xDlg, nRow, nCol, nWidth, nHeight, cTitle, bInit, lModal, xParent )

   LOCAL nType := 1

   hb_Default( @lModal, .F. )

   //DO CASE
   //CASE cTitle == "MENU"
   //   DEFINE WINDOW xDlg MDI FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
   //      PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
   //      COLOR "W/B"
   //CASE lModal
      DEFINE DIALOG xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
         PIXEL OF xParent /* FONT oFont */ TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
         COLOR COLOR_LIGHTGRAY
   //CASE nType == nType
   //   DEFINE WINDOW xDlg MDICHILD OF xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
   //      PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
   //      VSCROLL HSCROLL COLOR LIGHT_GRAY
   //CASE nType == 2
   //   DEFINE WINDOW xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
   //      PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
   //      COLOR LIGHT_GRAY
   //ENDCASE

   (xDlg);(nRow);(nCol);(nWidth);(nHeight);(cTitle);(bInit)

   RETURN Nil
tabex

Código: Selecionar todos

STATIC FUNCTION gui_TabCreate( xDlg, xParent, xControl, nRow, nCol, nWidth, nHeight )

   // dialog/window hell - need create with all pages
   // tab/folder/folderex hell

   @ nRow, nCol FOLDEREX xControl PIXEL ;
      PROMPTS "Page 1", "Page 2", "Page 3", "Page 4", "Page 5" ;
      ; //BITMAPS "bmpfolder" ; // folderex
      OF xParent SIZE nWidth, nHeight ;
      COLOR { COLOR_LIGHTGRAY, COLOR_LIGHTGRAY }
   //oFld:SetColor( ::nTextColorR, ::nBackColorR )

   (xDlg);(xControl);(nRow);(nCol);(nWidth);(nHeight)

   RETURN Nil

STATIC FUNCTION gui_TabEnd( xDlg, xTab, nPageCount )

   LOCAL xPage

   // dialog/window hell - works for dialog
   IF xDlg:ClassName() == "TDIALOG"
      ASize( xTab:aPrompts, nPageCount )
   ENDIF
   (xDlg);(xTab);(nPageCount)

   RETURN Nil
page

Código: Selecionar todos

STATIC FUNCTION gui_TabPageBegin( xDlg, xParent, xControl, xPage, nPageCount, cText )

   // dialog/window hell
   IF nPageCount <= Len( xControl:aPrompts )
      xControl:aPrompts[ nPageCount ] := cText
   ELSE
      xControl:AddItem( cText )
   ENDIF
   xPage := xControl:aDialogs[ nPageCount ]

   xControl:Refresh()

   (xDlg); (xControl); (cText); (xPage); (nPageCount)

   RETURN Nil

STATIC FUNCTION gui_TabPageEnd( xDlg, xControl )

   (xDlg); (xControl)

   RETURN Nil
Detesto código fonte de GUI, e não vou criar um só pra mostrar o defeito.

Fivetech apaga postagem quando mostra recurso faltando ou defeito.
Não é incentivo pra pedir ajuda ou criar fonte.

Postei nos dois fóruns:
O oficial que dizem que não é oficial, mas é o indicado no site
O outro, que o próprio Linares passou como oficial.
Nos dois as postagens sumiram.

Olhando esses fontes uma coisa é certa:
Em DIALOG normal funciona, é exatamente o que está fazendo agora.

bug FOLDEREX

Enviado: 28 Ago 2024 14:14
por JoséQuintas
tab.png
É isso que queria ver ?

Código: Selecionar todos

STATIC FUNCTION gui_DialogCreate( xDlg, nRow, nCol, nWidth, nHeight, cTitle, bInit, lModal, xParent )

   LOCAL nType := 1

   hb_Default( @lModal, .F. )

   DO CASE
   CASE cTitle == "MENU"
      DEFINE WINDOW xDlg MDI FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
         PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
         //COLOR "W/B"
   //CASE lModal
   //   DEFINE DIALOG xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
   //      PIXEL OF xParent /* FONT oFont */ TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
   //      COLOR COLOR_LIGHTGRAY
   CASE nType == nType
      DEFINE WINDOW xDlg MDICHILD OF xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
         PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
         VSCROLL HSCROLL //COLOR COLOR_LIGHTGRAY
   //CASE nType == 2
   //   DEFINE WINDOW xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
   //      PIXEL TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
   //      COLOR LIGHT_GRAY
   ENDCASE

   (xDlg);(nRow);(nCol);(nWidth);(nHeight);(cTitle);(bInit)

   RETURN Nil
Mudei pra MENU ser MDI, e as outras MDIChild.

Código: Selecionar todos

STATIC FUNCTION gui_TabCreate( xDlg, xParent, xControl, nRow, nCol, nWidth, nHeight )

   // dialog/window hell - need create with all pages
   // tab/folder/folderex hell

   @ nRow, nCol FOLDEREX xControl PIXEL ;
      PROMPTS "Page 1", "Page 2", "Page 3", "Page 4", "Page 5" ;
      ; //BITMAPS "bmpfolder" ; // folderex
      OF xParent SIZE nWidth, nHeight ;
      //COLOR { COLOR_LIGHTGRAY, COLOR_LIGHTGRAY }
   //oFld:SetColor( ::nTextColorR, ::nBackColorR )

   (xDlg);(xControl);(nRow);(nCol);(nWidth);(nHeight)

   RETURN Nil
E retirei a cor de FOLDEREX

bug FOLDEREX

Enviado: 28 Ago 2024 14:18
por JoséQuintas
dialog.png
Também FOLDEREX sem cor definida, mas somente DIALOG.
Tudo certo.

Em DIALOG sai certo.
Em WINDOW MDI + MDICHILD sai errado.

Mais alguma coisa pro Xerife?

bug FOLDEREX

Enviado: 28 Ago 2024 14:27
por JoséQuintas
mdi.png
Faltou dizer.
Em MDI, altero no menu oMenu:AddChild()

Vou simplificar pra não ter que mexer, assim que confirmar o nome:

Código: Selecionar todos

IF xDlg:ClassName() == "TMDIWINDOW"
   oMenu:AddChild()
ENDIF

bug FOLDEREX

Enviado: 28 Ago 2024 14:32
por JoséQuintas
mdiclient.png
Na dúvida, ou é TMDICLIENT ou é TMDIFRAME.

bug FOLDEREX

Enviado: 28 Ago 2024 14:37
por JoséQuintas
mdiframe.png
TMDIFRAME.

Agora entra automático, sem eu precisar mexer no fonte do menu.

bug FOLDEREX

Enviado: 29 Ago 2024 10:29
por JoséQuintas
dlgauto não é pra isso, mas alterei pra gerar fonte.

Por exemplo aqui:

Código: Selecionar todos

      DEFINE DIALOG xDlg FROM nRow, nCol TO nRow + nHeight, nCol + nWidth ;
         PIXEL OF xParent /* FONT oFont */ TITLE cTitle + " (" + GUI():LibName() + ")" ICON "ICOWINDOW" ;
         COLOR COLOR_LIGHTGRAY

      cTxtPrg += [   DEFINE DIALOG xDlg FROM ] + hb_ValToExp( nRow ) + [, ] + hb_ValToExp( nCol ) + ;
         [ TO ] + hb_ValToExp( nRow + nHeight ) + [, ] + hb_ValToExp( nCol + nWidth ) +  [ ;] + hb_Eol()
      cTxtPrg += [      PIXEL OF xParent /* FONT oFont */ TITLE ] + hb_ValToExp( cTitle + " (" + GUI():LibName() ) + ;
         [ ")" ICON "ICOWINDOW" ;] + hb_Eol()
      cTxtPrg += [      COLOR COLOR_LIGHTGRAY] + hb_Eol()
      cTxtPrg += hb_Eol()
Alterei só alguns lugares, sem me preocupar com nome de variável

Código: Selecionar todos

   SetGetColorFocus( .T. )

   DEFINE DIALOG xDlg FROM 0, 0 TO 700, 1024 ;
      PIXEL OF xParent /* FONT oFont */ TITLE "DBCLIENT (FIVEWIN" ")" ICON "ICOWINDOW" ;
      COLOR COLOR_LIGHTGRAY

   @ 10, 10 BUTTONBMP xControl PROMPT "Insert" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoPlus" TOP ACTION Eval( {|| ... }

   @ 10, 63 BUTTONBMP xControl PROMPT "Edit" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoEdit" TOP ACTION Eval( {|| ... }

   @ 10, 116 BUTTONBMP xControl PROMPT "Delete" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoTrash" TOP ACTION Eval( {|| ... }

   @ 10, 169 BUTTONBMP xControl PROMPT "View" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "AppIcon" TOP ACTION Eval( {|| ... }

   @ 10, 222 BUTTONBMP xControl PROMPT "First" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoGoFirst" TOP ACTION Eval( {|| ... }

   @ 10, 275 BUTTONBMP xControl PROMPT "Previous" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoGoLeft" TOP ACTION Eval( {|| ... }

   @ 10, 328 BUTTONBMP xControl PROMPT "Next" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoGoRight" TOP ACTION Eval( {|| ... }

   @ 10, 381 BUTTONBMP xControl PROMPT "Last" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoGoLast" TOP ACTION Eval( {|| ... }

   @ 10, 434 BUTTONBMP xControl PROMPT "Print" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoPrint" TOP ACTION Eval( {|| ... }

   @ 10, 487 BUTTONBMP xControl PROMPT "History" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoBook" TOP ACTION Eval( {|| ... }

   @ 10, 540 BUTTONBMP xControl PROMPT "Save" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoOk" TOP ACTION Eval( {|| ... }

   @ 10, 593 BUTTONBMP xControl PROMPT "Cancel" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoNoOk" TOP ACTION Eval( {|| ... } CANCEL

   @ 10, 646 BUTTONBMP xControl PROMPT "Exit" OF xParent ;
      SIZE 50, 50 PIXEL RESOURCE "icoDoor" TOP ACTION Eval( {|| ... } CANCEL

   @ 70, 5 FOLDEREX xControl PIXEL ;
   PROMPTS "Page 1", "Page 2", "Page 3", "Page 4", "Page 5" ;
   OF xParent SIZE 994, 550 ;
   COLOR { COLOR_LIGHTGRAY, COLOR_LIGHTGRAY }

   xControl:aPrompts[1] := "Page 1"
   xPage := xControl:aDialogs[ 1 ]
   xControl:Refresh()

   @ 12, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 108, 20 COLOR CLR_BLUE TRANSPARENT

   @ 37, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 84, 20 COLOR CLR_BLUE TRANSPARENT

   @ 62, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 72, 20 COLOR CLR_BLUE TRANSPARENT

   @ 87, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 120, 20 COLOR CLR_BLUE TRANSPARENT

   @ 112, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 84, 20 COLOR CLR_BLUE TRANSPARENT

   @ 112, 400 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 84, 20 COLOR CLR_BLUE TRANSPARENT

   @ 137, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 102, 20 COLOR CLR_BLUE TRANSPARENT

   @ 137, 262 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 96, 20 COLOR CLR_BLUE TRANSPARENT

   @ 162, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 108, 20 COLOR CLR_BLUE TRANSPARENT

   @ 160, 220 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 360, 20 COLOR CLR_BLUE TRANSPARENT BORDER

   @ 187, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 84, 20 COLOR CLR_BLUE TRANSPARENT

   @ 185, 196 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 360, 20 COLOR CLR_BLUE TRANSPARENT BORDER

   @ 187, 628 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 108, 20 COLOR CLR_BLUE TRANSPARENT

   @ 212, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 126, 20 COLOR CLR_BLUE TRANSPARENT

   @ 237, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 11928, 20 COLOR CLR_BLUE TRANSPARENT

   @ 337, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 11928, 20 COLOR CLR_BLUE TRANSPARENT

   @ 335, 220 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOPLUS" TOP ACTION Eval( {|| ... }

   @ 335, 240 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOTRASH" TOP ACTION Eval( {|| ... }

   @ 335, 260 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOEDIT" TOP ACTION Eval( {|| ... }

   xControl:aPrompts[2] := "Page 2"
   xPage := xControl:aDialogs[ 2 ]
   xControl:Refresh()

   @ 12, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 11928, 20 COLOR CLR_BLUE TRANSPARENT

   @ 10, 220 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOPLUS" TOP ACTION Eval( {|| ... }

   @ 10, 240 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOTRASH" TOP ACTION Eval( {|| ... }

   @ 10, 260 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOEDIT" TOP ACTION Eval( {|| ... }

   @ 212, 10 SAY xControl VAR xValue OF xParent PIXEL ;
      SIZE 11928, 20 COLOR CLR_BLUE TRANSPARENT

   @ 210, 220 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOPLUS" TOP ACTION Eval( {|| ... }

   @ 210, 240 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOTRASH" TOP ACTION Eval( {|| ... }

   @ 210, 260 BUTTONBMP xControl PROMPT "" OF xParent ;
      SIZE 18, 18 PIXEL RESOURCE "ICOEDIT" TOP ACTION Eval( {|| ... }

   ASize( xTab:aPrompts, 2 )
Pois é...
Mais fácil do que ficar digitando fonte.