Está claro qual é o problema.
Quero criar o ownerbutton com a mesma cor de fundo da dialog, e parece impossível.
pegar oDlg:bColor não funciona, porque a janela não existe.
É lógico que se isso não funciona, também não vai funcionar pegar o handle ou qualquer outra coisa.
Qual a saída?
Sei lá... talvez criar janela invisível, como a gtwvg faz.
Ownerbutton styles/etc
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Ownerbutton styles/etc
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 783
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Ownerbutton styles/etc
Código: Selecionar todos
#define BrowseStyleHead HStyle():New( { 4339747,4339747,4339747, 12632256 }, 1,, 0.4, 16759929 )
#define OwnerbuttonStyle { HStyle():New( {0, 0}, 1,{8,8,8,8}, ), HStyle():New( {0, 0, 0, 16777215}, 1,{8,8,8,8}, 0, 0 ), HStyle():New( {0, 0}, 1,{8,8,8,8}, ) }
#define OwnerbuttonStyleMenu { HStyle():New( {0, 0}, 1,{8,8,8,8}, ), HStyle():New( {0, 0, 0, 16777215}, 1,{8,8,8,8}, 0, 0 ), HStyle():New( {0, 0}, 1,{8,8,8,8}, ) }
#define OwnerbuttonStyleNoBorder { HStyle():New( {0, 0}, 1,{8,8,8,8}, ), HStyle():New( {0, 0, 0, 16777215}, 3,{8,8,8,8}, 0, 0 ), HStyle():New( {0, 0}, 1,{8,8,8,8}, ) }
#define OwnerbuttonLupa { HStyle():New( {16777215}, 1,, ), HStyle():New( {16777215}, 1,, 2, 0 ), HStyle():New( {16777215}, 1, ) }
#define OwnerbuttonPrinter { HStyle():New( {16777215}, 1,, ), HStyle():New( {16777215}, 1,, 2, 0 ), HStyle():New( {16777215}, 1, ) }
#define GradienteColor {4339747,4339747,4339747, 4339747}
#define OwnerbuttonLogin1 { HStyle():New( {2631720}, 1,, 1 ), HStyle():New( {1842204}, 2,, 1 ), HStyle():New( {04210752}, 1,, 2, 16777215 ) }
#define OwnerbuttonLogin2 { HStyle():New( {0}, 1,, ), HStyle():New( { 0}, 1,, 2, 16777215 ), HStyle():New( {0}, 1,, 2, 16777215 ) }
#define OwnerbuttonLogin3 { HStyle():New( {0},,,), HStyle():New( { 0},,,, 16777215 ), HStyle():New( {0},,,,) }
#define PanelMenuColor HStyle():New( { 4339747,4339747,4339747,4339747},, {8,8,8,8} )
#define BrowseBarColorPrimary {0,16777215,16777215,8421504 }
#define BrowseBarColorSecondary {255, 16777215 ,16777215,255 }
#define DashboardPanelColor HStyle():New( { 4339747,4339747,4339747, 12632256}, 1, , 1, 16759929 ) criei um .ch de cores CORES.CH
Uso os OwnnerButton assim
Código: Selecionar todos
@ 5,10 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 73,63 ;
ON CLICK {|| ::CADASTRO_PRODUTOS_MANUTENCAO( "INCLUIR" ), oPage1:oBrowse1:aArray := ::CADASTRO_PRODUTOS_MANUTENCAO_CARREGA( "ORDER BY " + cAlvo_Consulta ), ::CADASTRO_PRODUTOS_MANUTENCAO_onDlgInit( oDlg ), oPage1:obrowse1:REFRESH()};
FLAT ;
TEXT 'Inclui' COLOR 16777215 ;
COORDINATES 0, 40, 0, 0 ;
BITMAP HBitmap():Addresource('add-file-256-30') ;
COORDINATES 0, 5, 0, 0 ;
TOOLTIP 'Incluir novo Produto'
oOwnerbutton1:aStyle := OwnerbuttonStyleHARBOUR 3.2, HWGUI 2.23 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
- JoséQuintas
- Administrador

- Mensagens: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Ownerbutton styles/etc
Muito bom isso mas.... cuidado
Assim confunde o que é variável ou #define, porque geralmente #define é tudo letra maiúscula
E se não usar compilação -w3 -es2.... vai ser complicado.
Lembre-se que esses defines vão deixar o fonte grande pra compilação, isso é diferente de variável.
Talvez assim:
A diferença pode ser grande.
Imagine 1.000 componentes, com #define vai ter 1.000 vezes tudo aquilo no fonte.
Já com FUNCTION, vai ter uma vez só.
Se usa muito, só trocar e ver o tamanho do EXE no final.
O difícil pode ser encontrar nome único pra tudo, que não complique o uso, mas talvez ajude a chegar em algum padrão de uso interessante.
Outra opção seria criar os #defines para um número único, e ter uma função única:
Vai usar muito, no aplicativo inteiro, melhor já ir pensando enquanto não aumenta o uso mais ainda.
Assim confunde o que é variável ou #define, porque geralmente #define é tudo letra maiúscula
E se não usar compilação -w3 -es2.... vai ser complicado.
Lembre-se que esses defines vão deixar o fonte grande pra compilação, isso é diferente de variável.
Talvez assim:
Código: Selecionar todos
FUNCTION HStyleOwner(); RETURN ....
FUNCTION HStyleOwnerMenu(); RETURN ...
FUNCTION HStyleOwnerNoBorder(); RETURN ...
FUNCTION HStyleOwnerLupa(); RETURN ...
FUNCTION HStyleOwnerPrinter(); RETURN ...
FUNCTION HStyleOwnerLogin1(); RETURN ...
FUNCTION HStyleOwnerLogin2(); RETURN ...
FUNCTION HStyleOwnerLogin3(); RETURN ...
Imagine 1.000 componentes, com #define vai ter 1.000 vezes tudo aquilo no fonte.
Já com FUNCTION, vai ter uma vez só.
Se usa muito, só trocar e ver o tamanho do EXE no final.
O difícil pode ser encontrar nome único pra tudo, que não complique o uso, mas talvez ajude a chegar em algum padrão de uso interessante.
Outra opção seria criar os #defines para um número único, e ter uma função única:
Código: Selecionar todos
#define HSTYLE_OWNER 1
#define HSTYLE_OWNER_MENU 2
...
FUNCTION MyStyle( nOpc )
LOCAL hStyle
DO CASE
CASE nOpc == HSTYLE_OWNER; hStyle := ...
CASE nOpc == HSTYLE_OWNER_MENU; hStyle := ...
ENDCASE
RETURN hStyle
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
- JoséQuintas
- Administrador

- Mensagens: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Ownerbutton styles/etc
Uia, amontoando geral:
Código: Selecionar todos
#define ZE_HSTYLE_OWNER 1
#define ZE_BACKCOLOR 2
Código: Selecionar todos
INIT DIALOG ::oFrm CLIPPER NOEXIT TITLE ::cTitulo AT 20, 0 SIZE 800, 600 BACKCOLOR ze_Style( ZE_BACKCOLOR ) ON EXIT hwg_EndDialog()
Código: Selecionar todos
oBtn:aStyle := ze_Style( ZE_HSTYLE_OWNER )
Código: Selecionar todos
FUNCTION ze_Style( nStyle )
LOCAL xValue
DO CASE
CASE nStyle == ZE_HSTYLE_OWNER
xValue := { ;
HStyle():New({ze_Style(ZE_BACKCOLOR)},1), ; /* normal color */
HStyle():New({ze_Style(ZE_BACKCOLOR)},1,,3,0), ; /* click color */
HStyle():New({16759929,16771062},1,,2,12164479) } /* over color */
CASE nStyle == ZE_BACKCOLOR
xValue := 15790720
ENDCASE
RETURN xValue
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/