Jump to content
Fivewin Brasil

Eric.Developer

Membros
  • Posts

    443
  • Joined

  • Last visited

Everything posted by Eric.Developer

  1. Olá pessoal!! Eu ia postar uma dica, mas se transformou em dúvida...rs... Montei uma rotina de propósito geral, onde pesquiso o handle do controle informado(ou ativo), e retorno o objeto associado. Caso eu procure o controle que esta em foco, sempre encontra corretamente. O problema ocorre quando vou procurar o Handle da janela ativa (GetActiveWindow()), nem sempre é encontrado. Encontra a primeira (DEFINE WINDOW), segunda (Dialog resource), mas não a terceira (Dialog resource). Exemplo de Uso: FindObject() // Retorna o objeto do controle com o foco. WindowObject() // Retorna o objeto da janela ativa /**************************************************** Retorna o objeto associado ao Handle informado. ****************************************************/ function FindObject( nHandle ) // => oControl TypeU nHandle Def GetFocus() return FindObj( nHandle, GetAllWin() ) /**************************************************** Faz a pesquisa recursiva ****************************************************/ static function FindObj( nHandle, oSource ) // oControl local oControl if ValTypeA(oSource) AEVAL( oSource, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) elseif ValTypeO(oSource) if oSource:hWnd = nHandle oControl:=oSource elseif 'DIALOG' $ oSource:ClassName .or. ; 'WINDOW' $ oSource:ClassName .or. ; '#32770' $ oSource:ClassName .or. ; 'MDICHILD' $ oSource:ClassName .or. ; 'MDIFRAME' $ oSource:ClassName AEVAL( oSource:aControls, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) elseif 'FOLDER' $ oSource:ClassName .or. ; 'PAGES' $ oSource:ClassName AEVAL( oSource:aDialogs, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) endif endif return oControl /**************************************************** Retorna o Objeto da janela ativa ****************************************************/ function WindowObject() // => oWindow return FindObject( GetActiveWindow() ) //**************************************************** Virtualmente, Éric xHarbour.org (0.99.71) + FiveWin (2.8/6.12) + Pelles C (4.50.113) + HBMake + ADSCDX (ainda) Editado por - ericmagaldi on 20/02/2007 17:45:01
  2. Olá pessoal!! Eu ia postar uma dica, mas se transformou em dúvida...rs... Montei uma rotina de propósito geral, onde pesquiso o handle do controle informado(ou ativo), e retorno o objeto associado. Caso eu procure o controle que esta em foco, sempre encontra corretamente. O problema ocorre quando vou procurar o Handle da janela ativa (GetActiveWindow()), nem sempre é encontrado. Encontra a primeira (DEFINE WINDOW), segunda (Dialog resource), mas não a terceira (Dialog resource). Exemplo de Uso: FindObject() // Retorna o objeto do controle com o foco. WindowObject() // Retorna o objeto da janela ativa /**************************************************** Retorna o objeto associado ao Handle informado. ****************************************************/ function FindObject( nHandle ) // => oControl TypeU nHandle Def GetFocus() return FindObj( nHandle, GetAllWin() ) /**************************************************** Faz a pesquisa recursiva ****************************************************/ static function FindObj( nHandle, oSource ) // oControl local oControl if ValTypeA(oSource) AEVAL( oSource, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) elseif ValTypeO(oSource) if oSource:hWnd = nHandle oControl:=oSource elseif 'DIALOG' $ oSource:ClassName .or. ; 'WINDOW' $ oSource:ClassName .or. ; '#32770' $ oSource:ClassName .or. ; 'MDICHILD' $ oSource:ClassName .or. ; 'MDIFRAME' $ oSource:ClassName AEVAL( oSource:aControls, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) elseif 'FOLDER' $ oSource:ClassName .or. ; 'PAGES' $ oSource:ClassName AEVAL( oSource:aDialogs, {|o,x| x:=FindObj(nHandle,o), oControl:=if(x=nil,oControl,x) }) endif endif return oControl /**************************************************** Retorna o Objeto da janela ativa ****************************************************/ function WindowObject() // => oWindow return FindObject( GetActiveWindow() ) //**************************************************** Virtualmente, Éric xHarbour.org (0.99.71) + FiveWin (2.8/6.12) + Pelles C (4.50.113) + HBMake + ADSCDX (ainda) Editado por - ericmagaldi on 20/02/2007 17:45:01
  3. Na época, montei esta função, para substituir o Copy To, que exportava para o Bradesco. alguns exemplos de uso: TMP->( CopyToSDF() ) TMP->( CopyToSDF('BRADESCO.TXT') ) CopyToSDF() CopyToSDF('BRADESCO.TXT') /*************************************************************************** CopyToSDF( , [] ) ==> lSuccess Descricao: Exporta registros para um arquivo ASCII. ****************************************************************************/ FUNCTION CopyToSDF( cFileTarget, aFields, cDelimiter ) // --> lSuccess LOCAL nFCreate,nRecno LOCAL lSucess LOCAL cAlias Local nFields cDelimiter := If ( cDelimiter == Nil, "", cDelimiter ) cFileTarget:=STRTRAN( IF( cFileTarget == NIL, ALIAS() + ".TXT", cFileTarget ), " ") cFileTarget+=IF( AT( ".", cFileTarget ) = 0 .OR. RAT("\", cFileTarget) > RAT(".", cFileTarget), ".TXT", "" ) cFileTarget:=LOWER( cFileTarget ) cAlias :=ALIAS() lSucess:=.F. IF aFields == NIL aFields:={} AEVAL( DbStruct(), { |x| AADD( aFields, x[1] )} ) ENDIF nFields := Len(aFields) IF ! EMPTY(cAlias) .AND. (nFCreate:=FCREATE( cFileTarget ) ) > 0 nRecno:=RECNO() AEVAL( aFields, {|x,y| aFields[y]:=FIELDWBLOCK( x, SELECT(cAlias) ) } ) DbGoTop() DO WHILE ! EOF() If !Empty(cDelimiter) AEVAL( aFields, {|x,z,y|y:=EVAL(x), FWRITE( nFCreate, AllTrim(TRANSFORM( IF(VALTYPE(y) = "D", DTOS(y), y ), "")) + If ( z < nFields, cDelimiter, "") ) } ) Else AEVAL( aFields, {|x,y|y:=EVAL(x), FWRITE( nFCreate, TRANSFORM( IF(VALTYPE(y) = "D", DTOS(y), y ), "") ) } ) Endif FWRITE( nFCreate, CRLF ) DbSkip() ENDDO DbGoTo( nRecno ) FCLOSE( nFCreate ) lSucess:=.T. ENDIF RETURN lSucess //*************************************************************** Virtualmente, Éric xHarbour.org 0.99.71 / FiveWin 2.8 / 6.12 / Pelles C / HBMake
  4. Olá, usem DBINFO( DBI_SHARED ), esta função tem diversas informações sobre o alias aberto. Como usa uma constante, não esqueçam do: #include 'dbinfo.ch' Virtualmente, Éric xHarbour.org 0.99.71 / FiveWin 2.8 / 6.12
  5. Ola JC ! Há alguns anos, desenvolvi em Clipper uma forma alternativa para registrar informações em tempo de compilação de forma automática, e dentro da APPS eu posso usar as funções que defini, para alguns controles. DateCompilation() * TimeCompilation() * PathCompilation() OSCompilation() MachineCompilation() UserCompilation() ModuleCompilation() * Não tem nenhuma relação com a data/hora do EXE, pois estas podem ser alteradas. Ela funciona perfeitamente para xHarbour, e com pouca modificação, poderá funcionar para qualquer linguagem. Infelizmente não posso postar como funciona, pois ela faz parte do ErrorSys Dinâmico avançado - Minha contribuição aos Clippeiros (de minha autoria), free somente OBJ, onde não tem esse recurso, somente para quem adquiri o PRG (R$ 80,00). http://br.groups.yahoo.com/group/clipper-br/message/28509 Caso houver interesse me informe. Virtualmente, Éric xHarbour 0.99.71 + FW 2.8/6.12 msn..: ericmagaldi@hotmail.com skype: ericmagaldi
×
×
  • Create New...