Jump to content
Fivewin Brasil

RETORNAR A FUNCAO E VARIAVEL ATIVA (RESOLVIDO)


PauloPJ

Recommended Posts

Ola galera estou aqui denovo

Preciso pegar o nome do Prg ou procedure ou funcao ativa e a variavel que esta focada nesta funcao

no clipper eu usava o readvar() para pegar o nome da variavel.

já fiz de tudo e não consigo pegar

eu uso isso para procurar no banco de dados de help

Desde já agradeço a colaboração de todos.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RESicon_smile_big.gificon_smile_big.gificon_smile_big.gif

Editado por - igpjinfo on 01/05/2012 22:45:07

Link to comment
Share on other sites

Ola galera estou aqui denovo

Preciso pegar o nome do Prg ou procedure ou funcao ativa e a variavel que esta focada nesta funcao

no clipper eu usava o readvar() para pegar o nome da variavel.

já fiz de tudo e não consigo pegar

eu uso isso para procurar no banco de dados de help

Desde já agradeço a colaboração de todos.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RESicon_smile_big.gificon_smile_big.gificon_smile_big.gif

Editado por - igpjinfo on 01/05/2012 22:45:07

Link to comment
Share on other sites

Bom dia...

nome da procedure/function = ProcName()

no da variavel do get = oGet:oGet:Name

Um grande Abraço

Alessandroid=blue>

FW9.07 + xHb121 + CDX

Fico feliz com os Meus erros, pois eles me apontam a direção para o acerto.id=red>

Link to comment
Share on other sites

citação:

Bom dia...

nome da procedure/function = ProcName()

no da variavel do get = oGet:oGet:Name

Um grande Abraço

Alessandroid=blue>

FW9.07 + xHb121 + CDX

Fico feliz com os Meus erros, pois eles me apontam a direção para o acerto.id=red>


id=quote>id=quote>

Alessandro, esta sumido? como vão as coisas.

Beto

FWH 9.08+xHarbour 1.2.1+Mymake+@Say

Link to comment
Share on other sites

Desculpe a todos por não ter respondido até agora

o meu computador deu problema e tive que formatar, até eu voltar com todas as minhas ferramentas demorou.

Obrigado a todos pelas dicas , vou testar e já já retorno se due certo.

Eu preciso isso para buscar no arquivo de help especifico do modulo e variavel Get em esta ponterado.

só que quando chamo o helpindex nao sei qual o prg/procedure e Get.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RES

Link to comment
Share on other sites

no clipper eu usava o readvar() para pegar o nome da variavel.

Mostre como fazia no clipper..

Eu acho que sei sua resposta.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832

Ola João

Eu usava o readvar() ele retornava o nome da variavel que estava parado o GET do clipper. exemplo em clipper

A=0

B=0

C=0

@ 1,0 say "TESTE1" GET A PICT "###"

@ 2,0 say "TESTE2" GET B PICT "###"

@ 3,0 say "TESTE3" GET C PICT "###"

READ

RETURN

FUNC HELP

CPROGRAMA=PROCNAME() // RETORNA O NOME DA PROCEDURE

CVARIAVEL=READVAR() // RETORNAVA O NOME DA ULTIMA VARIAVEL GET

RETURN

Com isso eu procurava no banco de dados do Help especifico.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RES

Link to comment
Share on other sites

citação:

Bom dia...

nome da procedure/function = ProcName()

no da variavel do get = oGet:oGet:Name

Um grande Abraço

Alessandroid=blue>

FW9.07 + xHb121 + CDX

Fico feliz com os Meus erros, pois eles me apontam a direção para o acerto.id=red>


id=quote>id=quote>

Ola Alessandro

Obrigado pela colaboracao

o ProcName() funciona perfeito

mas como eu pego o nome do oGet:oGet:name, se eu nao sei qual objeto oGet estou usando no momento, este é o problema, como descobrir o nome do Get que esta ativo.

Um abraco.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RES

Link to comment
Share on other sites

Pegar o Get ativo como fazia no clipper é muito chato....mas resolvi assim, graças a ajuda do pessoal.

- Cada objeto que é incluido no form (wnd/dlg) tem uma variável hWnd.

- De alguma forma vc guarda get:hWnd em um VETOR, ai é só pesquisa e comparar com o Dlg:hWnd que é o ativo. Se for igual, este é o Get( ou outro objeto) ativo. Ex:

nObjetoAtivo := ASCAN(ahWnd,odlg:oCtlFocus():hWnd)

//EXEMPLO

No exemplo criei um vetor para os GETs, mas vc pode pegar automaticamente de um form (wnd/dlg), através do oDLG:aControls{}

FOR nCT:=1 TO LEN(oGET)

oGET[nCT]:REFRESH()

AADD(ahWnd,oGET[nCT]:hWnd) //PARA SABER QUAL O GET ATIVO

NEXT

//PROCURA O GET ALVO OS NUMEROS SAO IGUAIS

nObjetoAtivo := ASCAN(ahWnd,odlg:oCtlFocus():hWnd)

? oGet[nObjetoAtivo]:oGet:Name

//END EXEMPLO

JMSILVA

CARAGUATATUBA/SP

Link to comment
Share on other sites

Boa tarde.

Veja se te ajuda, no caso pegando somente os GET´s, senão for o caso retire a verificação do classname(), ou tb.

pode ajustar para pegar outros tipos de objetos do form, ai vai da criatividade de cada um.


FOR nCtr:=1 TO LEN(oDlg:aControls)

IF oDlg:aControls[nCtr]:ClassName() == "TGET"

IF oDlg:aControls[nCtr]:hWnd == oDlg:oCtlFocus():hWnd

?oDlg:aControls[nCtr]:oGet:name

ENDIF

ENDIF

NEXT

id=code>id=code>

Um grande Abraço

Alessandroid=blue>

FW9.07 + xHb121 + CDX

Fico feliz com os Meus erros, pois eles me apontam a direção para o acerto.id=red>

Link to comment
Share on other sites

Valeu Alessandro e JMSilva

A Ajuda de vocês está sendo de muita valia.

Estou adaptando o sistema seguindo as sugestões de vocês.

mas eu estou tentando descobrir como pegar o nome do oBjeto TGET que esta ponterado sem a utilização de um array, estou debugando todas as classes e métodos que estão na memória, rsrs , eu sou teimoso acho que deve ter um jeito. Mas se não conseguir ...

Valeu messssmo.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RES

Link to comment
Share on other sites

OLA GALERA RESOLVI O PROBLEMA

PEGEI O NOME DO PROGRAMA + RESOURSE E O ID ATIVO

ABAIXO ESTA COMO EU FIZ O HELP PARA QUEM QUIZER USAR

#INCLUDE "Fivewin.ch"

*--------------------------------------------------------------------------*

* Modulo : help.PRG - help para usuario *

* Versao : 2.0 *

* Atualizado em : 01/05/2012 - 22:32:53 *

*--------------------------------------------------------------------------*

FUNCTION HELPINDEX()

IF CHORA_HELP=TIME() // criado a variavel publica com o time() para não repetir o help se apertar o f1 rapido demais

RETURN

END

cPrograma:=""

cVariavel:=""

// pega o nome do prg

for i = 1 to 74

if AT("DIALO",UPPER(ProcName(I)))=0 .AND. AT ("TWIND",UPPER(ProcName(I)))=0 .AND. AT("_FWH",UPPER(ProcName(I)))=0 .and. empty(cprograma)

cPrograma:=UPPER(ProcName(I))

end

NEXT

// fim

cdialog:=""

cIdDialog:=""

// pega o nome do resource e do ID ou get ativo

for n = 1 to 74

for j = 1 to ParamCount( n )

if GetParam( n, j ):classname()=="TDIALOG"

for aaa = 1 to len(GetParam( n, j ):aControls)

IF GetParam( n, j ):aControls[AAA]:classname()=="TGET"

if GetParam( n, j ):aControls[AAA]:lFocused

cIdDialog:=strzero(GetParam( n, j ):aControls[AAA]:nId,4)

end

end

NEXT

END

if ValType( GetParam( n, j ) )="C" .and. empty(cDialog)

CDialog:=cValToChar( GetParam( n, j ) )

end

next

next

IF CPROGRAMA='HELPINDEX'

return

endif

/* ESTRUTURA DO ARQUIVO HELP

PROG C 10

VAR C 20

HELP M

INDCE PROGRAMA+VAR

*/

HELP->(DBSETORDER(1))

HELP->(DBSEEK(Padr(cPrograma,10)+cDialog+cIdDialog))

if HELP->(EOF())

HELP->(DBAPPEND())

IF HELP->(MTRAVAREG())

HELP->PROG := cPrograma

HELP->VAR := cDialog+cIdDialog

HELP->(DBUNLOCK())

END

END

// FUNCAO QUE MOSTRA O CAMPO MEMO NA TELA COM O HELP

OBSERVA('HELP->TEXTO',"HELP",,'HELP DA ROTINA '+ALLTRIM(cPrograma)+if(!EMPTY(cDialog),' Tela '+alltrim(cDialog)+" Id "+cIdDialog,""),.T.)

// FIM

CHORA_HELP:=TIME()

return

FELIZ DAQUELE QUE COMPARTILHA OS SEUS CONHECIMENTOS.

UM GRANDE ABRACO A TODOS E OBRIGADO PELA COLABORAÇÃO.

FWHX 8.4

XHARBOUR 1.1.0

PELE C 6.00.4

TELA EM .RES

Editado por - igpjinfo on 01/05/2012 22:50:35

Editado por - igpjinfo on 01/05/2012 22:52:50

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...