Luiz Fernando Posted April 4, 2011 Report Share Posted April 4, 2011 pessoal com a funcao abaixo, sei qual objeto estava antes de chamar minha_funcao. static function minha_funcao(oDlg) oCtl :=oDlg:oCtlFocus() if (oCtl:hWnd = oGet1:hWnd ) // se for o objeto que quero elseif (oCtl:hWnd = oGet2:hWnd ) . . . id=code>id=code>agora o que precisava saber , era a anterior da ultima ex: tenho tres gets na minha tela, e varios buttons, ao clicar num destes buttons irei para funcao acima, mais precisava saber qual get estava antes de ter clicado no botao...pois senão meu ultimo objeto sera sempre os buttons... sera que teria como? Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted April 4, 2011 Author Report Share Posted April 4, 2011 pessoal com a funcao abaixo, sei qual objeto estava antes de chamar minha_funcao. static function minha_funcao(oDlg) oCtl :=oDlg:oCtlFocus() if (oCtl:hWnd = oGet1:hWnd ) // se for o objeto que quero elseif (oCtl:hWnd = oGet2:hWnd ) . . . id=code>id=code>agora o que precisava saber , era a anterior da ultima ex: tenho tres gets na minha tela, e varios buttons, ao clicar num destes buttons irei para funcao acima, mais precisava saber qual get estava antes de ter clicado no botao...pois senão meu ultimo objeto sera sempre os buttons... sera que teria como? Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
FiveWinBr Posted April 5, 2011 Report Share Posted April 5, 2011 #include "fivewin.ch" Static oUltimoGET Function Main() Local oDlg Define Dialog oDlg Redefine Get... ControlGet( oDlg ) Activate Dialog oDlg Return Nil Function ControlGet( oDLG ) Local nCon, oCon For nCon := 1 To Len( oDlg:aControls ) oCon := oDlg:aControls[nCon] If oCon:ClassName()=="TGET" oCon:bGotFocus := {|this|oUltimoGet:=this} oCon:bLostFocus:= oCon:bGotFocus EndIf Next nCon Return Nil a Var oUltimoGet armazenara sempre o Objeto do GET que vc estve por ultimo... Nao testei mais deve funcionar.. Flw. Att. Lailton Fernando Mariano E-Mail: developer@lailton.com.br | Msn: lailton.developer@hotmail.com http://www.lailton.com.br | http://www.fiveweb.com.br xHarbour 1.2.1 | Fivewin 11.1 | Borland 5.8.2 | Dolphin MySQL | SQLRDD Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted April 6, 2011 Author Report Share Posted April 6, 2011 Lailton obrigado pela reposta, com sua dica com certeza vai dar para fazer o que preciso, mais não consigo fazer a comparação usando a var oUltimoGet... Function ControlGet( oDLG ) Local nCon, oCon For nCon := 1 To Len( oDlg:aControls ) oCon := oDlg:aControls[nCon] If oCon:ClassName()=="TGET" msgalert("aqui ele chega normal") oCon:bGotFocus := {|this|oUltimoGet:=this} oCon:bLostFocus:= oCon:bGotFocus if (oUltimoGet = oGe1:hWnd ) msgalert("ele não cai aqui") endif EndIf Next nCon Return Nil id=code>id=code>se alguém tiver alguma dica... Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
FiveWinBr Posted April 6, 2011 Report Share Posted April 6, 2011 Function ControlGet( oDLG ) Local nCon, oCon For nCon := 1 To Len( oDlg:aControls ) oCon := oDlg:aControls[nCon] If oCon:ClassName()=="TGET" msgalert("aqui ele chega normal") oCon:bGotFocus := {|this|oUltimoGet:=this} oCon:bLostFocus:= oCon:bGotFocus if (oUltimoGet:hWnd == oGe1:hWnd) msgalert("ele não cai aqui") endif EndIf Next nCon Return Nil Att. Lailton Fernando Mariano E-Mail: developer@lailton.com.br | Msn: lailton.developer@hotmail.com http://www.lailton.com.br | http://www.fiveweb.com.br xHarbour 1.2.1 | Fivewin 11.1 | Borland 5.8.2 | Dolphin MySQL | SQLRDD Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted April 6, 2011 Author Report Share Posted April 6, 2011 Lailton com seu exemplo acima tb não deu certo, como sao apenas tres comparação que preciso fazer, fiz desta forma e esta funcionando certinho...vlw pela ajuda... For nCon := 1 To Len( oDlg:aControls ) oCon := oDlg:aControls[nCon] if oCon:ClassName()=="TGET" oCtl :=oDlg:aControls[nCon] if nCon=4 msgalert("get numero 4") elseif nCon=5 msgalert("get numero 5") elseif nCon=6 msgalert("get numero 6") endif endIf Next nCon id=code>id=code>Abraços Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted April 6, 2011 Author Report Share Posted April 6, 2011 achei que tinha resolvido mais na verdade da forma que esta acima eu sei que ele passou pelos get 4 ,5 e 6 mais não sei qual foi o ultimo...irei continuar a tentar depois... Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
FiveWinBr Posted April 6, 2011 Report Share Posted April 6, 2011 //---------------------------------------------------------------- #include "fivewin.ch" //---------------------------------------------------------------- Static hObj //---------------------------------------------------------------- Function Main() Local oDlg Define Dialog oDlg Redefine Get... Redefine Get... Redefine Get... Redefine Get... Redefine Button oBtn ID 0001 Action oGetUltimo( oDlg ) // retorna o OBJETO do ultimo get Activate Dialog oDlg On Init SetVerificaGET( oDlg ) Return Nil //---------------------------------------------------------------- Function SetVerificaGET( oJanela ) Local nObj For nObj := 1 To Len( oJanela:aControls ) If oJanela:aControls[nObj]:ClassName()=="TGET" oJanela:aControls[nObj]:bGotFocus := {|o|hObj:=o:hWnd} oJanela:aControls[nObj]:bLostFocus := {|o|hObj:=o:hWnd} EndIf Next nObj Return Nil //---------------------------------------------------------------- Function oGetUltimo( oJanela ) Local nFound If(nFound:=AsCan(oJanela:aControls,{|o,n|o:hWnd==hObj}))>0 Return oJanela:aControls[nFound] EndIf MsgInfo("Nao Encontrado") Return oJanela:aControls[1] //---------------------------------------------------------------- Tente assim. Att. Lailton Fernando Mariano E-Mail: developer@lailton.com.br | Msn: lailton.developer@hotmail.com http://www.lailton.com.br | http://www.fiveweb.com.br xHarbour 1.2.1 | Fivewin 11.1 | Borland 5.8.2 | Dolphin MySQL | SQLRDD Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted April 6, 2011 Author Report Share Posted April 6, 2011 Lailton não consegui usando seu exemplo acima,com são apenas tres gets, acabei simplificando um pouco as coisas para poder finalizar a rotina, fiz assim: redefine get..... valid acha_origem(@nOrigem,1) redefine get..... valid acha_origem(@nOrigem,2) redefine get..... valid acha_origem(@nOrigem,3) na funcao acha_origem dou o valor para nOrigem conforme o get, dai qdo clico em um dos buttons mando mais um parametro que é o nOrigem...dai sei em qual get estava... Muito obrigado pela ajuda Abraços Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 / FWH1012 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.