i have mage a copy of XbrHexEdit() for "Dark-Mode"
as you can see i got "just" a "Frame" but no "hilight"-Bar
what Codeblock have to be "fill"
- Code: Select all Expand view RUN
- DEFINE DIALOG oDlg SIZE 990, 600 PIXEL FONT oFont TITLE cTitle COLOR BFcolor, BGcolor ;
STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, WS_MAXIMIZEBOX, WS_MINIMIZEBOX, WS_THICKFRAME )
@ 30, 10 XBROWSE oBrw SIZE - 10, - 30 PIXEL OF oDlg DATASOURCE {} NOBORDER FOOTERS COLOR BFcolor, BGcolor FONT oFont
ADD TO oBrw DATA RangeRepl( CHR( 0 ), CHR( 31 ), SUBSTR( cTmp, oBrw:nArrayAt * 16 - 15, 16 ), '.' ) ;
HEADER "Text" SIZE 210
ADD TO oBrw DATA STRTOHEX( SUBSTR( cTmp, oBrw:nArrayAt * 16 - 15, 16 ) ) ;
HEADER "HexChar" PICTURE "@R" + REPLICATE( " !!", 16 ) SIZE 580
oBrw:SetColor( BFcolor, BGcolor )
IF BGcolor = Rgb( 0, 0, 1 )
oBrw:SetStyle( - 2 ) // Dark-Mode
ENDIF
// WITH OBJECT oBrw
oBrw:bSeek := { | c, nAt | IF( EMPTY( c ), nAt := 1, nAt := AT( UPPER( c ), cUpper ) ), ;
IF( nAt > 0, oBrw:nArrayAt := INT( nAt / 16 ) + 1, nil ), ;
nAt > 0 }
oBrw:bKeyCount := { || nLines }
oBrw:nHeadStrAligns := AL_CENTER
oBrw:nColDividerStyle := 1
oBrw:nStretchCol := 1
oBrw:bClrStd := { || { BFcolor, BGcolor } }
oBrw:bClrSel := { || { BFcolor, BGcolor } }
oBrw:bClrHeader := { || { BFcolor, BGcolor } }
oBrw:bClrFooter := { || { BFcolor, BGcolor } }
// is this for "hilight"-Bar ?
oBrw:bClrSelFocus := {|| { CLR_WHITE, GetSysColor( COLOR_MENUHILIGHT )} }
oBrw:bRecSelHeader := { || "LineHex" }
oBrw:bRecSelData := { | o | NUMTOHEX( o:nArrayAt, 8 ) }
oBrw:bRecSelFooter := { | o | NUMTOHEX( o:nLen, 8 ) }
oBrw:nRecSelWidth := "BBBBBBBBB"
// WITH OBJECT :aCols[ 2 ]
oBrw:aCols[ 2 ] :nEditType := IF( lReadOnly, EDIT_NONE, EDIT_GET )
oBrw:aCols[ 2 ] :bEditValid := { | o | LEN( HEXTOSTR( CharRem( ' ', o:VarGet() ) ) ) == 16 }
oBrw:aCols[ 2 ] :bClrEdit := { || { CLR_BLACK, CLR_YELLOW } }
oBrw:aCols[ 2 ] :bOnPostEdit := { | o, x, n | IF( n == VK_ESCAPE, nil, ( ;
x := HEXTOSTR( CharRem( ' ', x ) ), ;
IF( x == o:Value, nil, ( cTmp := ;
LEFT( cTmp, oBrw:nArrayAt * 16 - 16 ) + ;
x + SUBSTR( cTmp, oBrw:nArrayAt * 16 + 1 ), ;
oDlg:AEvalWhen() ) ;
) ) ) }
// END
//
oBrw:CreateFromCode()
// END
p.s. have not used WITH OBJECT as my "click" does not know how to "format" it (yet)