Добрый день!
Короткий пример и файл -
https://disk.yandex.ru/d/36dU4gV9nO8L6Q "версия HwGUI" - windows. HWGUI 2.23 buld 2 (hwgui-2.23-b2.bcc). Компилятор C++ 5.5.1
#include "hwgui.ch"
#include "MAIN.h"
#include "dbstruct.ch"
#include "error.ch"
#include "hbdyn.ch"
#include "simpleio.ch"
#include "hbgtinfo.ch"
#include "setcurs.ch"
&& GTWVT - вҐа¬Ё- « (б Ја дЁЄ®©)
#include 'wvtwin.ch'
#ifdef __UNIX__
#define DEF_SEP '/'
#else
#define DEF_SEP '\'
#endif
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
FUNCTION TEST_1()
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LOCAL hChild := ''
LOCAL fname := TRS('‘Їа ў®з-ЁЄ - «®Ј®ўле ўлзҐв®ў')
LOCAL oWindow, oBrowse, i, nArea, kolf
LOCAL oStyle := HStyle():New( { 0xffffff, 0xbbbbbb }, 1 )
LOCAL oMsg
LOCAL bCol1 := {|o,h,x1,y1,x2,y2|
oStyle:Draw( h,x1,y1,x2,y2 )
RETURN Nil
}
LOCAL bPosChg := {|o| oBrowse:Refresh() }
LOCAL oToolbarbot1, oButton1, oCombobox1, oLabel1
LOCAL VAR_KEY
LOCAL oPanel
LOCAL oToolbartop1
LOCAL oOwnerbutton1, oOwnerbutton3, oOwnerbutton2, oOwnerbutton4, oOwnerbutton5
LOCAL F1
PUBLIC aBrwFont := { "MS Sans Serif", "0", "-13" }, oBrwFont, oMainFont
PUBLIC lMdi := .T.
gl_CpageRU1251 := "RU1251"
hb_cdpSelect( gl_CpageRU1251 ) // gl_CpageRU1251 := "RU1251" / gl_CpageRU866 := "RU866"
Use 'SNV' Shared Alias SNV
al_NalV := ALIAS()
(al_NalV)->(DBSETORDER()) // KODNV
oIcon1 := HIcon():AddResource("MainIcon3")
oBrwFont := HFont():Add( aBrwFont[1], Val(aBrwFont[2]), Val(aBrwFont[3]) )
INIT DIALOG oDlg TITLE fname ;
AT 0,25 SIZE 1500,600 ;
ICON oIcon1 ;
STYLE WS_SYSMENU+WS_SIZEBOX+WS_VISIBLE
SET KEY 0,VK_F6 TO RK_BRSNALV(2)
SET KEY 0,VK_F5 TO hwg_Msginfo("F5")
SET KEY 0,VK_F7 TO RK_BRSNALV(10)
@ 0,0 PANEL oPanel OF oDlg ;
SIZE oDlg:nWidth-2,45 ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS
@ 10,12 OWNERBUTTON oOwnerbutton1 OF oPanel ;
ON CLICK {|| RK_BRSNALV(3)};
SIZE 32,32 ;
BITMAP "KEY_EDIT" FROM RESOURCE TRANSPARENT ;
TOOLTIP TRS("ђҐ¤ ЄвЁа®ў -ЁҐ")
@ 1, 70 BROWSE oBrowse DATABASE OF oDlg ;
ON SIZE {|o,x,y|o:Move( ,,x,y-38 ) }
oBrowse:bPosChanged := bPosChg
oBrowse:htbcolor := 0x777777
oBrowse:bcolorSel := BCOLOR_SEL
oBrowse:tcolorSel := TCOLOR_SEL
oBrowse:oStyleHead := oStyle
oBrowse:ofont := oBrwFont
nArea := Select()
kolf := FCount()
oBrowse:alias := ALIAS()
oBrowse:aColumns := {}
ADD COLUMN {|| field->KODNV } TO oBrowse ;
HEADER TRS('Љ®¤') ;
TYPE 'C' LENGTH 3 DEC 0 ;
COLORBLOCK {|| _COLOR_() }
ADD COLUMN {|| field->NAME } TO oBrowse ;
HEADER PADC(TRS('Ќ Ё¬Ґ-®ў -ЁҐ Є®¤ - «®Ј®ў®Ј® ўлзҐв '),55) ;
TYPE 'C' LENGTH 55 DEC 0 ;
COLORBLOCK {|| _COLOR_() }
ADD COLUMN {|| field->SUM_NV } TO oBrowse ;
HEADER PADC(TRS('‘㬬 ўлзҐв '),17) ;
JUSTIFY LINE DT_RIGHT ;
PICTURE '999 999 999.99' ;
COLORBLOCK {|| _COLOR_() }
ADD COLUMN {|| DTOC(field->DAT_BEG) } TO oBrowse ;
HEADER TRS('„ в - з.') ;
COLORBLOCK {|| _COLOR_() }
ADD COLUMN {|| DTOC(field->DAT_END) } TO oBrowse ;
HEADER TRS('„ в § ў.') ;
TYPE 'C' LENGTH 10 DEC 0 ;
COLORBLOCK {|| _COLOR_() }
oBrowse:lAppable := .T.
oBrowse:bScrollPos := {|o,n,lEof,nPos|hwg_VScrollPos(o,n,lEof,nPos)}
oBrowse:lInFocus := .T.
oBrowse:freeze := 1
oBrowse:Refresh() //*- Refresh()
oDlg:Activate()
(al_NalV)->( dbCloseArea() )
gl_CpageRU866 := "RU866"
hb_cdpSelect( gl_CpageRU866 )
RETURN IIF( lMdi, oDlg:handle, oTabMain:GetActivePage() )
//*- RETURN hwg_EndWindow()
&&*=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=*
STATIC FUNCTION RK_BRSNALV(pnKey)
&&**********************************************************
IF pnKey = 3
hwg_msgInfo( TRS("Ќ ¦ в Є« ўЁи 3 ") )
ELSE
hwg_msgInfo( TRS("Ќ ¦ в Є« ўЁи ... ") )
ENDIF
RETURN .T.
&&*=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±
FUNCTION TRS( pcString )
&&**********************************************************
&&PUBLIC gl_CpageRU1251 := "RU1251"
&&PUBLIC gl_CpageRU866 := "RU866"
&&
LOCAL RetVal := ''
RetVal := hb_Translate( pcString , "RU866", "RU1251" )
RETURN RetVal
&&*=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=**=±°±=*
STATIC FUNCTION _COLOR_()
&&**********************************************************
/*
#define x_BLUE 16711680
#define x_DARKBLUE 10027008
#define x_WHITE 16777215
#define x_CYAN 16776960
#define x_BLACK 0
#define x_RED 255
#define x_GREEN 32768
#define x_GRAY 8421504
#define x_YELLOW 65535
*/
LoCAL RetVal := {}
IF (al_NalV)->SUM_NV <= 0 ; RetVal := {x_RED, x_WHITE, x_CYAN, x_GRAY}
ELSE ; RetVal := {x_BLUE, x_WHITE , x_BLACK, x_YELLOW }
ENDIF
RETURN RetVal