siscat Posted September 17, 2006 Report Share Posted September 17, 2006 pessoal, como posso avaliar se uma determinada função existe? Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Desenvolvimento e migração de aplicativos DOS para Windows FWH for (x)Harbour c/ xMate ADS Server MSSql, Oracle, MySQL c/ SQLRDD Quote Link to comment Share on other sites More sharing options...
siscat Posted September 17, 2006 Author Report Share Posted September 17, 2006 pessoal, como posso avaliar se uma determinada função existe? Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Desenvolvimento e migração de aplicativos DOS para Windows FWH for (x)Harbour c/ xMate ADS Server MSSql, Oracle, MySQL c/ SQLRDD Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted September 17, 2006 Report Share Posted September 17, 2006 Marllon, tudo bem?? Não entendÃ. hehe Quote Link to comment Share on other sites More sharing options...
evandro Posted September 18, 2006 Report Share Posted September 18, 2006 Olá, Marllon, acho que não tem como. Se ela não existir, dá erro na compilação. Daà nem deve ter algo para verificar. []s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) FWH 2.6+PellesC+MyMake+xHarbour.org 0.99.5+SqlLib Quote Link to comment Share on other sites More sharing options...
tiaoFW Posted September 18, 2006 Report Share Posted September 18, 2006 Acho que voce poderia tentar usar as funções do clipper TYPE() e VALTYPE(), talvez dê pra bolar alguma coisas com elas, mas não testei ainda! Um abraço FW 2.5/CLIPPER 5.3b, BLINKER 7 Belzonte - Minas Gerais Quote Link to comment Share on other sites More sharing options...
gunafe Posted September 18, 2006 Report Share Posted September 18, 2006 Boma Dia Marllon, tudo beleza?? Não entendi que tipo de verificação voce quer fazer, poderia explicar melhor? []´s Luiz Augusto São José dos Pinhais - PR Harbour43 + Five2.4 + Verce Quote Link to comment Share on other sites More sharing options...
Kbelo Posted September 18, 2006 Report Share Posted September 18, 2006 Bom no meu sistema tem uma brexa para que erros desse tipo aconteçam. Os menus de cada cliente são enviados em um arquivo separado. Tipo se eu criei um novo menu com umanova função em um novo prg. Mando o menu para o cliente ele passa o instalador e atualiza mas ele esqueceu de baixar o executavel atualizado ou um funcionario esqueceu de pedir a atualização(Isso aconteceu semana passada aqui na empresa) ao acessar o menus ira dar o erro pois as chamadas de funções ficam dentro de uma arquivo e não compilam junto do executavel. Então acho que a solicitação do Marllon é mais ou menos o mesmo que a minha ou parecida. Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS Quote Link to comment Share on other sites More sharing options...
gibaf Posted September 18, 2006 Report Share Posted September 18, 2006 Faz assim: If Type( "Funcao()" ) = "UI" &"Funcao()" // execute a funcao else msgalert("Funcao ainda nao compilada !") endif Espero poder ter ajudado ! Gilberto Frohlich - Toledo/PR giba_f@hotmail.com giba_f@yahoo.com.br xHarbour Comercial xBuild Mar_06+Fivewin 2.7+PellesC+(Postgres+DB2) Quote Link to comment Share on other sites More sharing options...
siscat Posted September 18, 2006 Author Report Share Posted September 18, 2006 citação:Bom no meu sistema tem uma brexa para que erros desse tipo aconteçam. Os menus de cada cliente são enviados em um arquivo separado. Tipo se eu criei um novo menu com umanova função em um novo prg. Mando o menu para o cliente ele passa o instalador e atualiza mas ele esqueceu de baixar o executavel atualizado ou um funcionario esqueceu de pedir a atualização(Isso aconteceu semana passada aqui na empresa) ao acessar o menus ira dar o erro pois as chamadas de funções ficam dentro de uma arquivo e não compilam junto do executavel. Então acho que a solicitação do Marllon é mais ou menos o mesmo que a minha ou parecida. Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS id=quote>id=quote>Exatamente isso Marcelo... Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Desenvolvimento e migração de aplicativos DOS para Windows FWH for (x)Harbour c/ xMate ADS Server MSSql, Oracle, MySQL c/ SQLRDD Quote Link to comment Share on other sites More sharing options...
siscat Posted September 18, 2006 Author Report Share Posted September 18, 2006 citação:Faz assim: If Type( "Funcao()" ) = "UI" &"Funcao()" // execute a funcao else msgalert("Funcao ainda nao compilada !") endif Espero poder ter ajudado ! Gilberto Frohlich - Toledo/PR giba_f@hotmail.com giba_f@yahoo.com.br xHarbour Comercial xBuild Mar_06+Fivewin 2.7+PellesC+(Postgres+DB2) id=quote>id=quote>Gilberto, isto resolve... más somente para o caso de testar a propria função... no meu caso eu passo em o code block ... e neste caso o Type sempre vai retornar 'B' independente de sser valido ou não... consegui resolver a parte do MENU com o TYPE Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Desenvolvimento e migração de aplicativos DOS para Windows FWH for (x)Harbour c/ xMate ADS Server MSSql, Oracle, MySQL c/ SQLRDD Quote Link to comment Share on other sites More sharing options...
pauloaraujo Posted September 18, 2006 Report Share Posted September 18, 2006 Marllon, tudo bem?? Não sei se a minha resposta será muito genérica, mas vai lá. Tenho uma situação em que o executável principal chama um segundo EXE, ambos atualizados separadamente e com o mesmo problema relatado por você. Para ter certeza de que os 2 conversam na mesma lingua, o EXE principal gera um arquivo texto chamado LOG.SYS, contendo alguns dados, dentre eles a Versão. A primeira coisa que o 2° executável faz é checar esse LOG e retornar a necessidade de contatar o suporte caso haja alguma divergência. Um abraço Editado por - pauloaraujo on 18/09/2006 22:30:00 Quote Link to comment Share on other sites More sharing options...
Kbelo Posted September 19, 2006 Report Share Posted September 19, 2006 citação:Marllon, tudo bem?? Não sei se a minha resposta será muito genérica, mas vai lá. Tenho uma situação em que o executável principal chama um segundo EXE, ambos atualizados separadamente e com o mesmo problema relatado por você. Para ter certeza de que os 2 conversam na mesma lingua, o EXE principal gera um arquivo texto chamado LOG.SYS, contendo alguns dados, dentre eles a Versão. A primeira coisa que o 2° executável faz é checar esse LOG e retornar a necessidade de contatar o suporte caso haja alguma divergência. Um abraço Editado por - pauloaraujo on 18/09/2006 22:30:00 id=quote>id=quote>Paulo blz... no meu caso não resolve pois tenho tudo no servidor e só executa um executavel. Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS Quote Link to comment Share on other sites More sharing options...
Flavio A. Zago Posted September 19, 2006 Report Share Posted September 19, 2006 Ola Marcelo Acho que a solução seria trabalhar com ERRORBLOCK, abaixo um exemplo bem simples, só para dar uma idéia do que fazer. #Include "FiveWin.ch" #Include "InKey.ch" FUNCTION Main() LOCAL; bSvErrorSys := ERRORBLOCK({|oObjError|MyErrorSys(oObjError)}),; cFuncao1 := 'Teste1()',; cFuncao2 := 'Teste2()' BEGIN SEQUENCE &cFuncao1 // Aqui passa IF INKEY(1) == K_ESC BREAK ENDIF &cFuncao2 // Aqui detecta erro END ERRORBLOCK(bSvErrorSys) // Reestabelece o controlador de erro padrao RETURN NIL FUNCTION Teste1() TONE(2000,1) RETURN NIL FUNCTION MyErrorSys(oObjError) MsgInfo('Função executada não existe.') BREAK RETURN .T. []´s Flavio FWH26 + [x]Harbour + Verce 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.