NiltonGM escreveu:Legal Pablo, muito obrigado, o Sr. Claudio prontamente já respondeu, vejo que vocês são bons amigos, agora vou testar a solução que ele passou.
Sim, além disso unimos forças para melhorar o HMG/MiniGui e quando é tratado em forma profissional, todos saÃmos ganhando.
Eu apenas repassei a sua questão e todo o esforço e mérito é do Dr. Claudio, ele é um gênio !
Só que as opções de cores (HeaderDYNAMICFORECOLOR e HeaderDYNAMICBACKCOLOR), ainda não sabemos por quê não funciona. Pode ser o compilador MiniGW ou pode ser o sistema operacional. Porque em XP as cores não são exibidas, eram pra serem exibidas as cores azul na primeira célula do Header e vermelho na segunda. Mas parece que em Win7 (eu não tenho aqui Win7) exibe HeaderDYNAMICFORECOLOR e não o HeaderDYNAMICBACKCOLOR.
Se você tiver XP 64 bits e Win7, teste ai por favor:
Para ser compilado com HMG 3.3.1 e aplicado
Patch1 e
Patch2/* Para ser compilado com HMG 3.3.1 e aplicado Patch1 e Patch2 (ver links no tópico) */
#include "hmg.ch"
Function Main
aItems := {}
AADD (aItems, {"Carrot", 5, "A"})
AADD (aItems, {"Cauliflower", 0, "B"})
AADD (aItems, {"Corn", 15, "C"})
AADD (aItems, {"Tomato", 0, "D"})
AADD (aItems, {"Zucchini", 20, "E"})
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 600 ;
HEIGHT 400 ;
MAIN
@ 10,10 GRID Grid_1 ;
WIDTH 550 ;
HEIGHT 330 ;
HEADERS {'Product','Stock','Supplier'} ;
WIDTHS {250,150,100};
ITEMS aItems;
EDIT;
CELLNAVIGATION;
COLUMNCONTROLS { NIL, {'TEXTBOX','NUMERIC'}, NIL }
Form_1.Grid_1.ColumnJUSTIFY (2) := GRID_JTFY_RIGHT
Form_1.Grid_1.ColumnJUSTIFY (3) := GRID_JTFY_CENTER
aFont := ARRAY FONT "Calibri" SIZE 11 BOLD ITALIC
Form_1.Grid_1.ColumnDYNAMICFONT (1) := {|| IF ( Form_1.Grid_1.CellEx(This.CellRowIndex,2) == 0, aFont, NIL) }
Form_1.Grid_1.ColumnDYNAMICFONT (2) := {|| IF ( Form_1.Grid_1.CellEx(This.CellRowIndex,2) == 0, aFont, NIL) }
// Dynamic Header
Form_1.Grid_1.HeaderDYNAMICFONT (1) := {|| ARRAY FONT "Arial" SIZE 12 ITALIC UNDERLINE }
Form_1.Grid_1.HeaderDYNAMICFONT (3) := {|| ARRAY FONT "Calibri" SIZE 12 BOLD }
Form_1.Grid_1.HeaderDYNAMICFORECOLOR (1) := {|| HeaderForeColor() }
Form_1.Grid_1.HeaderDYNAMICFORECOLOR (2) := {|| HeaderForeColor() }
Form_1.Grid_1.HeaderDYNAMICFORECOLOR (3) := {|| HeaderForeColor() }
Form_1.Grid_1.HeaderDYNAMICBACKCOLOR (1) := {|| HeaderBackColor() }
Form_1.Grid_1.HeaderDYNAMICBACKCOLOR (2) := {|| HeaderBackColor() }
Form_1.Grid_1.HeaderDYNAMICBACKCOLOR (3) := {|| HeaderBackColor() }
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
Function HeaderForeColor
Local aColor
IF This.CellColIndex == 1
aColor := BLUE
ELSEIF This.CellColIndex == 2
aColor := RED
ELSE
aColor := NIL
ENDIF
Return aColor
Function HeaderBackColor
Local aColor
IF This.CellColIndex == 1
aColor := YELLOW
ELSEIF This.CellColIndex == 2
aColor := PINK
ELSE
aColor := NIL
ENDIF
Return aColor
E dê um retorno exibindo a tela capturada do teste.