Jump to content
Fivewin Brasil

Indentificar objeto


Luiz Fernando

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

#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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

//----------------------------------------------------------------

#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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...