Função
Moderador: Moderadores
-
david.miguel
- Usuário Nível 1

- Mensagens: 34
- Registrado em: 07 Jul 2005 11:50
Função
Ola a todos,
Quero criar uma funcao que ira execultar as minhas funcao.
Segue exemplo:
If ExistFuncao("Qualquer_Funcao")
ExeculteFuncao("Qualquer_Funcao")
Endif
Obrigado
Quero criar uma funcao que ira execultar as minhas funcao.
Segue exemplo:
If ExistFuncao("Qualquer_Funcao")
ExeculteFuncao("Qualquer_Funcao")
Endif
Obrigado
Prezado Colega
Não sei se entendi direito, vc poderia ser mais explicíto ?
No aguardo.
:xau
Marcelo
Não sei se entendi direito, vc poderia ser mais explicíto ?
No aguardo.
:xau
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
david.miguel
- Usuário Nível 1

- Mensagens: 34
- Registrado em: 07 Jul 2005 11:50
- software_facil
- Usuário Nível 3

- Mensagens: 211
- Registrado em: 23 Fev 2005 12:19
- Localização: Curitiba/PR
- Contato:
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Prezado, pensanso assim...Para que existe o Fórum
???????????????????
Uma forma de fazer isto, seria receber um parametro chamado bloco e rodar ele se existir. Exemplo:
Uma forma de fazer isto, seria receber um parametro chamado bloco e rodar ele se existir. Exemplo:
Código: Selecionar todos
IF .NOT. bloco==NIL
EVAL(bloco)
ENDIFAté...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Re: Função
Olá,
Se a questão for apenas testar a existencia da função eu faria como nosso amigo indicou, atribuindo a funçao a um Code Block. Aí bastaria usar Eval.
Só por curiosidade, qual seria a diferença entre chamar ExecuteFuncao(funcao) e funcao() ??david.miguel escreveu: If ExistFuncao("Qualquer_Funcao")
ExeculteFuncao("Qualquer_Funcao")
Endif
Se a questão for apenas testar a existencia da função eu faria como nosso amigo indicou, atribuindo a funçao a um Code Block. Aí bastaria usar Eval.
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
Visitante
Caro David...
Eu, pra ser sincero, não entendi nada do que você quer...
Você quer saber se a função existe? e isso em run-time?
Independente da forma, vc tem os fontes, e através deles você saberá se a função existe ou não...
Porque eu faria:
If existeFunco("CriaCadastro")
executa("CriaCadastro")
Endif
Se com base nos meus fontes eu tenho a plena certeza se CriaCadastro Existe ou não?
Seria o mesmo que fazer:
If 0=0
executa
endif
ou
if 0=5
executa
endif
Posso até crer que você possa querer disparar funções aleatórias de acordo com um pedido do usuário, mas verificar se ela existe é meio esquisito, não?
Se o seu problema está no input que esse usuário irá fazer, simplesmente crie um array com as funções que estão disponíveis e faça um achoice ou ligue cada função a um grupo de teclas através do set key.
Não sei se é realmente isso que você quer, mas estou tentando entender o que se passa... e pelo que pude entender, uma das formas mais normais de se fazer é assim.
Um Clip Abraço!
Eu, pra ser sincero, não entendi nada do que você quer...
Você quer saber se a função existe? e isso em run-time?
Independente da forma, vc tem os fontes, e através deles você saberá se a função existe ou não...
Porque eu faria:
If existeFunco("CriaCadastro")
executa("CriaCadastro")
Endif
Se com base nos meus fontes eu tenho a plena certeza se CriaCadastro Existe ou não?
Seria o mesmo que fazer:
If 0=0
executa
endif
ou
if 0=5
executa
endif
Posso até crer que você possa querer disparar funções aleatórias de acordo com um pedido do usuário, mas verificar se ela existe é meio esquisito, não?
Se o seu problema está no input que esse usuário irá fazer, simplesmente crie um array com as funções que estão disponíveis e faça um achoice ou ligue cada função a um grupo de teclas através do set key.
Não sei se é realmente isso que você quer, mas estou tentando entender o que se passa... e pelo que pude entender, uma das formas mais normais de se fazer é assim.
Um Clip Abraço!
Eu também ainda não consegui entender, ora se está nos fontes ela existe, senão não.
Você poderia explicar o motivo porque quer fazer isto, talvez haja um meio menos "diferente" de fazer o que você quer.
:%
´
Até logo.
Marcelo
Você poderia explicar o motivo porque quer fazer isto, talvez haja um meio menos "diferente" de fazer o que você quer.
:%
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
- Marcos
- Usuário Nível 3

- Mensagens: 355
- Registrado em: 20 Set 2003 09:16
- Localização: Cáceres/Mato Grosso
Pode não ser o que estou pensando, eu tenho um problema sério que não vi ainda uma forma legal de resolver, atualmente tenho um programa comercial (Programa Padrão) em fase de desenvolvimento, em paralelo estou desenvolvendo um programa especifico para uma Transportadora, quando iniciei o programa para transportadora tive que copiar algumas funções do meu programa Comercial para o programa de Transportadora, a forma que eu achei de fazer isto, foi criando um diretório separado chamado Transpor e refazer os PRG'S novamente de acordo com as exigências da Transportadora, assim muitas vezes tém uma chamada de Função que ainda não existe, ou seja, existe mas está no Diretório do Programa Comercial, então dá a tela Vermelha de erro e o programa é abortado, seria talvez para não abortar o programa?
Independente disto, gostar de saber qual a melhor maneira de fazer isto? Como proceder o desenvolvimento de Programas com Segmento diferentes? Cada um em seu diretório? Cada um é um projeto?
Abraços,
Marcos.
Independente disto, gostar de saber qual a melhor maneira de fazer isto? Como proceder o desenvolvimento de Programas com Segmento diferentes? Cada um em seu diretório? Cada um é um projeto?
Abraços,
Marcos.
Prezado Marcos
Eu geralmente copio tudo para um novo diretório, pois acho muito mais fácil de gerenciar, porém as funções genéricas coloco-as todas em uma lib e desta forma ficam disponiveis para qualquer sistema.
Até logo.
Marcelo
Eu geralmente copio tudo para um novo diretório, pois acho muito mais fácil de gerenciar, porém as funções genéricas coloco-as todas em uma lib e desta forma ficam disponiveis para qualquer sistema.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
david.miguel
- Usuário Nível 1

- Mensagens: 34
- Registrado em: 07 Jul 2005 11:50
O que quero fazer é criar um programa aonde nele tenha pontos aonde o meus clientes poderao criar certas rotinas para modificar o processo original do programa. E para isso eu preciso sempre verificar se estas rotinas estao ou nao no projeto. Elas podem ser chamadas se existirem, mas caso contrario, nao.
Vou tentar com o Eval. Mas queria a sintaxe dele e um exemplo se possivel ?
Outra coisa, vi que nos programas gerados pelo o Miro ou Gaspro, ele tem um gerador de relatorios aonde o usuario pode estar criando estes relatorios. Alguem sabe como ele faz para ler os dados que foram configurados para este relatorios ?
Obrigado
Vou tentar com o Eval. Mas queria a sintaxe dele e um exemplo se possivel ?
Outra coisa, vi que nos programas gerados pelo o Miro ou Gaspro, ele tem um gerador de relatorios aonde o usuario pode estar criando estes relatorios. Alguem sabe como ele faz para ler os dados que foram configurados para este relatorios ?
Obrigado
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Caros Colegas, pode até não ser o que o que o David queria, mas a minha resposta se baseia na seguinte situação:
OBS: Explico isto porque estou vendo que ningúem entendeu o porque alguem precisaria saber se um bloco existe ou não e se existir rodar ele.
Isto se usa muito (eu uso muito) quando se cria uma função genérica (normalmente se coloca ela numa LIB particular) para ser usada por vários Programas. Ocorre que cada Programa tem necessidades próprias e ao mesmo tempo necessidades comuns. A função genérica faz toda a parte comum e recebe um bloco (ou mais) (com ou sem parametros) para sua necessidade particular.
Exemplo real: Na função DBEDIT existe um parametro OPCIONAL que é o nome da função do usuário, pois bem é exatamente ai que se usa este tal IF sugerido para ver se foi passado o parametro OPCIONAL.
Apenas que, como o DBEDIT é uma função de compatibilidade ela ainda usa nome de função tipo Caracter e não Bloco de Código, o que não é mais recomendado hoje em dia.
Acredito que depois disto ficará mais claro o porque da questão.
OBS: Explico isto porque estou vendo que ningúem entendeu o porque alguem precisaria saber se um bloco existe ou não e se existir rodar ele.
Isto se usa muito (eu uso muito) quando se cria uma função genérica (normalmente se coloca ela numa LIB particular) para ser usada por vários Programas. Ocorre que cada Programa tem necessidades próprias e ao mesmo tempo necessidades comuns. A função genérica faz toda a parte comum e recebe um bloco (ou mais) (com ou sem parametros) para sua necessidade particular.
Exemplo real: Na função DBEDIT existe um parametro OPCIONAL que é o nome da função do usuário, pois bem é exatamente ai que se usa este tal IF sugerido para ver se foi passado o parametro OPCIONAL.
Apenas que, como o DBEDIT é uma função de compatibilidade ela ainda usa nome de função tipo Caracter e não Bloco de Código, o que não é mais recomendado hoje em dia.
Acredito que depois disto ficará mais claro o porque da questão.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Ah !
Agora !
Agora é que eu não entendi nada mesmo !
:xau
Desisto desse tópico...
Fui...
Agora !
Agora é que eu não entendi nada mesmo !
:xau
Desisto desse tópico...
Fui...
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
:-O
uahuahahuahushauhhau
uahuahahuahushauhhau
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
anacatacombs
- Membro Master

- Mensagens: 472
- Registrado em: 12 Jul 2005 16:53
- Localização: Cianorte-Paraná
- Contato:
Re: Função
Peraí.
Dexa eu ver se entendi..
Tá lá o cliente....
E o cliente pode criar funções que, de algum modo, podem modificar o funcionamento do programa?
E antes de executar a tal da função, tu precisa saber se ela existe?
é isso?
O.o
Dexa eu ver se entendi..
Tá lá o cliente....
E o cliente pode criar funções que, de algum modo, podem modificar o funcionamento do programa?
E antes de executar a tal da função, tu precisa saber se ela existe?
é isso?
O.o