Bom, se for alguma coisa q estou compilando de errado, ai eu já nao sei :X
CINI =
C_OUTPUTFOLDER =
DEFFILE =
INCLUDEFOLDERS = include
LAUTORUN =
LDEBUG = .F.
LGUI = .F.
LIBFOLDERS =
LMT = .F.
LNOAUTOFWH = .F.
LPRG_CLASSICDEBUG = .F.
LPRG_DEBUG = .T.
LUSEDLL = .F.
MAPFILE =
MYC_FLAGS =
MYDEFINES = HWG_USE_POINTER_ITEM;__XHARBOUR__
MYLINK_FLAGS =
MYPRG_FLAGS =
MYRC_FLAGS =
MYSLY_FLAGS =
OUTPUTFOLDER = xbp
PRG_OUTPUTFOLDER =
RC_OUTPUTFOLDER =
RUNARGUMENTS =
SLY_OUTPUTFOLDER =
STARTIN =
TARGETFOLDER =
Todos os arquivos do source, menos, aqueles q eu falei...
tenho um código aqui, e eu utilizo o valid em um EditBox, ( mas ele tem um bugsinho xD ), mas, funciona normal, acho q nao é a lib, é alguma outra coisa, ja testei em outra maquina, e tb, nao funcionou, nao sei se é algo q compilo de errado, se é alguma macumba q foi jogada na minha maquina, nao sei dizer :X
Código: Selecionar todos
#include "windows.ch"
#include "guilib.ch"
#include "inkey.ch"
#include "hbclass.ch"
function main
browse():new(.f.) // .t. to enable edit || .f. to disable edit
Return Nil
************
class browse
************
private:
data lEdit
*********************
* Variaveis browser *
*********************
data oEdGoto, oTbar, oBrwDb
data oValPesq, vValPesq
data o_Obtn1, o_Obtn2, o_Obtn3, o_Obtn4
data nRecData init 1
data nLast init 0
public:
method new( lEdit ) constructor
private:
method BrowseMove( cPar, cType )
method GoToRec(cType)
method BuscaNome()
endclass
********************************
method new( lEdit ) class browse
********************************
USE "dados\clientes.dbf" ALIAS clientes SHARED
IF .not. file("clientes.ntx")
INDEX on nome to IND1
endif
DBSETORDER(1)
nLast := LASTREC()
dbGoTop()
// Form
INIT DIALOG oDlg TITLE "Consulta em Tela" ;
AT 01,01 SIZE 795,595 NOEXIT ;
FONT HFont():Add( 'Arial',0,-13,400,,,) ;
STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER
// Atalhos
SET KEY 0,VK_F12 TO {|| oDlg:Close() }
// Browsers
if lEdit
@ 02 ,02 BROWSE oBrwDb DATABASE SIZE 790, 550 ;
STYLE WS_VSCROLL + WS_HSCROLL ;
AUTOEDIT ;
ON UPDATE {|| oBrwDb:REFRESH() } ;
ON KEYDOWN {|oBrwDb, nKey| BrowseDbKey(oBrwDb, nKey, @nLast, oLbl2, "") } ;
ON POSCHANGE {|| ::BrowseMove( "null", "Dbs" ) }
else
@ 02 ,02 BROWSE oBrwDb DATABASE SIZE 790, 550 ;
STYLE WS_VSCROLL + WS_HSCROLL ;
ON UPDATE {|| oBrwDb:REFRESH() } ;
ON KEYDOWN {|oBrwDb, nKey| BrowseDbKey(oBrwDb, nKey, @nLast, oLbl2, "") } ;
ON POSCHANGE {|| ::BrowseMove( "null", "Dbs" ) }
endif
// Panel
@ 0, 445 PANEL oTbar1 SIZE 600, 22;
BACKCOLOR 13160660
// Labels
@ 17,5 SAY oLbl1 CAPTION "Registro :" OF oTbar1 SIZE 70,22
@ 270,5 SAY oLbl2 CAPTION "De: " + ALLTRIM(STR(nLast)) OF oTbar1 SIZE 70,22
@ 355,5 SAY oLbl1 CAPTION "Busca :" OF oTbar1 SIZE 70,22
*******************
// Inicio Buttons *
*******************
@ 85,2 OWNERBUTTON o_Obtn1 OF oTbar1 SIZE 20,20 ;
BITMAP "images\Home.bmp" TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| ::BrowseMove( "Home", "Dbs" ) } ;
TOOLTIP "Inicio dos Registro"
@ 105,2 OWNERBUTTON o_Obtn2 OF oTbar1 SIZE 20,20 ;
BITMAP "images\Up.bmp" TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| ::BrowseMove( "Up", "Dbs" ) } ;
TOOLTIP "Subir Um"
@ 215,2 OWNERBUTTON o_Obtn3 OF oTbar1 SIZE 20,20 ;
BITMAP "images\Down.bmp" TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| ::BrowseMove( "Down", "Dbs" ) } ;
TOOLTIP "Descer Um"
@ 235,2 OWNERBUTTON o_Obtn4 OF oTbar1 SIZE 20,20 ;
BITMAP "images\End.bmp" TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| ::BrowseMove( "End", "Dbs" ) } ;
TOOLTIP "Fim dos Registro"
*******************
* fim buttons *
*******************
*******************
// Edit Box *
*******************
@ 130,2 GET ::oEdGoto VAR ::nRecData OF oTbar1 SIZE 80,22 ;
VALID {|| ::GoToRec("Dbs")} ;
@ 400,2 GET ::oValPesq VAR ::vValPesq OF oTbar1 SIZE 100,22 ;
ON CHANGE {|| ::BuscaNome() }
oBrwDb:bcolorSel := 10027008
oBrwDb:AddColumn( HColumn():New( "Nome" , FieldBlock(Fieldname(1)),"C", 36,00) )
oBrwDb:AddColumn( HColumn():New( "Telefone" , FieldBlock(Fieldname(2)),"C", 14,00) )
oBrwDb:AddColumn( HColumn():New( "Celular" , FieldBlock(Fieldname(3)),"C", 14,00) )
oBrwDb:AddColumn( HColumn():New( "Tipo" , FieldBlock(Fieldname(4)),"C", 12,00) )
oBrwDb:aColumns[1]:length := 36 // TAMANHO
oBrwDb:aColumns[1]:nJusHead := DT_CENTER //CENTRALIZA
oBrwDb:aColumns[2]:nJusHead := DT_CENTER
oBrwDb:aColumns[3]:nJusHead := DT_CENTER
oBrwDb:aColumns[4]:nJusHead := DT_CENTER
oBrwDb:aColumns[2]:picture:="@R (99) 9999-9999" //MASCARA
oBrwDb:aColumns[3]:picture:="@R (99) 9999-9999"
//oBrwDb:Freeze:=1
if lEdit
oBrwDb:aColumns[1]:lEditable := .T.
oBrwDb:aColumns[2]:lEditable := .T.
oBrwDb:aColumns[3]:lEditable := .T.
oBrwDb:aColumns[4]:lEditable := .T.
endif
oDlg:Activate()
return self
*********************************************
method BrowseMove( cPar, cType ) class browse
*********************************************
if cPar == "Home"
oBrwDb:TOP()
elseif cPar == "Up"
oBrwDb:LineUp()
elseif cPar == "Down"
oBrwDb:LineDown()
elseif cPar == "End"
oBrwDb:BOTTOM()
endif
if cType == "Dbs"
::oEdGoto:SetText(oBrwDb:recCurr)
elseif cType == "Array"
::oEdGoto:SetText(oBrwDb:tekzp)
endif
return nil
**************************************
method GoToRec(cType) class browse
**************************************
if ::nRecData == 0
::nRecData := 1
endif
if ::nRecData > nLast
::nRecData := nlast
endif
oBrwDb:TOP()
if cType == "Dbs"
dbGoto(::nRecData)
elseif cType == "Array"
oBrwDb:tekzp := ::nRecData
endif
oBrwDb:Refresh()
SETFOCUS(oBrwDb:handle)
return .t.
*******************************
method BuscaNome() class browse
*******************************
if len(trim(::vValPesq)) > 2
SELE clientes
INDEX ON nome to indice1
SET ORDER TO 1
seek trim(::vValPesq)
set softseek off
if found()
? "achou"
oBrwDb:REFRESH()
else
? "nada :("
endif
endif
return nil
**************************************************
function BrowseDbKey(oBrwDb, nKey, nLast, oLbl2, cPar)
**************************************************
if nKey == 46 // DEL
if TIPO="Nokia"
if msgyesno("Deseja Realmente Excluir esse Registro ?")
oBrwDb:REFRESH()
endif
else
MSGINFO("ATENÇÃO...FAVOR ENTRAR NO CADASTRO DE ORIGEM PARA ALTERAR OU DELETAR ESSE REGISTRO","Aviso do Sistema")
endif
elseif nKey == K_ESC // ESC
EndDialog()
elseif nKey == VK_RETURN .OR. nKey == 65 .OR. nKey == 97
if !TIPO="Nokia"
MSGINFO("ATENÇÃO...FAVOR ENTRAR NO CADASTRO DE ORIGEM PARA ALTERAR OU DELETAR ESSE REGISTRO","Aviso do Sistema")
endif
endif
return .t.