Tô na cola...
Veja;
#include "hwgui.ch"
Function Main
Local oMainWindow
INIT WINDOW oMainWindow MAIN TITLE "Example" ;
AT 200,0 SIZE 400,150
MENU OF oMainWindow
MENUITEM "&Exit" ACTION hwg_EndWindow()
MENUITEM "&Dialog" ACTION DlgGet()
ENDMENU
ACTIVATE WINDOW oMainWindow
Return Nil
STATIC FUNCTION DlgGet()
LOCAL oModDlg, oBrw1, cnSQL
cnSQL := win_OleCreateObject( "ADODB.Recordset" )
cnSQL:Open( hb_cwd() + "teste.ado" )
INIT DIALOG oModDlg TITLE "Licenτas" AT 0,0 SIZE 1024,600
@ 1,1 BROWSE ARRAY oBrw1 SIZE 1022,500 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL
oBrw1:bOther := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam)}
@ 500,720 OWNERBUTTON ON CLICK {|| cnSQL:Close(), hwg_EndDialog()} ;
SIZE 180,36 FLAT ;
TEXT "Close" COLOR hwg_ColorC2N("0000FF")
oBrw1:aarray := cnSQL
oBrw1:AddColumn( HColumn():New( "Codigo", { |v,o| (v), o:aArray:Fields( "CODIGO" ):Value },"C",6,0,.F.,DT_CENTER ) )
oBrw1:AddColumn( HColumn():New( "Nome", { |v,o| (v), o:aArray:Fields( "NOME" ):Value }, "C",30,0,.T.,DT_CENTER,DT_RIGHT ) )
oBrw1:aColumns[2]:lResizable := .F.
oBrw1:bSkip := { | o, nSkip | ADOSkipper( o:aArray, nSkip ) }
oBrw1:bGotop := { | o | o:aArray:MoveFirst() }
oBrw1:bGobot := { | o | o:aArray:MoveLast() }
oBrw1:bEof := { | o | o:nCurrent > o:aArray:RecordCount() }
//oBrw1:bBof := { | o | o:nCurrent == 0 }
oBrw1:bRcou := { | o | o:aArray:RecordCount() }
oBrw1:bRecno := { | o | o:aArray:AbsolutePosition }
obrw1:bRecnoLog := obrw1:bRecno
oBrw1:bGOTO := { | o, n | (o), o:aArray:Move( n - 1, 1 ) }
ACTIVATE DIALOG oModDlg
Return Nil
FUNCTION ADOSkipper( cnSQL, nSkip )
LOCAL nRec := cnSQL:AbsolutePosition()
IF ! cnSQL:Eof()
cnSQL:Move( nSkip )
IF cnSQL:Eof()
cnSQL:MoveLast()
ENDIF
IF cnSQL:Bof()
cnSQL:MoveFirst()
ENDIF
ENDIF
RETURN cnSQL:AbsolutePosition() - nRec
Static FUNCTION fKeyDown(oBrw, msg, wParam, lParam)
LOCAL nKEY := hwg_PtrToUlong( wParam ) //wParam
IF msg == WM_KEYDOWN
IF nKey = VK_F2
hwg_Msginfo("Total: " + Str(oBrw:aArray:RecordCount())+hb_eol() + "Recno:" + Str(oBrw:nCurrent) + hb_eol() + "Absoluto:" + Str(oBrw:aArray:AbsolutePosition) )
ENDIF
ENDIF
RETURN .T.
nCurrent sempre com 1
Pressione F2 que vai mostrar, até aqui o fonte da Hwgui está ok. Falta o nCurrent retornar o valor correto, mas ai é adaptação do ADO.
Saudações,
Itamar M. Lins Jr.