Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mlferreira

Comando em modo de execução

Recommended Posts

Bom dia. Tenho que executar um comando em modo de execução no delphi e não estou conseguindo. O que preciso é executar um comando que está em uma string, por exemplo, em um Edit eu tenho o comando close; digitado, e ao pressionar um botão, o delphi execute o comando que está neste edit. Supondo algo parecido como: execute(edit1.text); é a mesma coisa do delphi chamar diretamente close; Preciso que a funcionalidade funcione também com chamadas a procedures e funções. Em VB, PHP, ASP eu sei que existe esta possibilidade, mas em Delphi eu não encontrei nada parecido. Preciso desta funcionalidade para implementar uma rotina complexa aqui no meu serviço... se funcionar como o exemplo acima irá funcionar na minha rotina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E não teria como fazer com If ou case ?

Algo do tipo:

 

if edit1.Text = 'close' then	\\fecha a tabela

Ou precisa tudo ser dinâmico, colocar o nome do evento e executar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E não teria como fazer com If ou case ?Algo do tipo:

if edit1.Text = 'close' then	\\fecha a tabela
Ou precisa tudo ser dinâmico, colocar o nome do evento e executar ?
Olá amigo, não tem jeito de fazer com if, tem que executar literalmente o texto.Vou explicar realmente o que preciso, é meio confuso mas vamos lá...No sistema comercial de nossa empresa, está sendo apendado uma tela de pesagem, que utiliza algumas rotinas de comunicação com a balança (toledo)O Fabricante disponibiliza junto com a balança, uma DLL que faz a comunicação via Serial, e junto um Hardlock com 3 licenças de uso.O Correto seria consumir 1 licença somente quando a função Leitura fosse executada, dentro da tela de pesagem. Mas isto não está ocorrendo. Pelo simples fato de estar referenciando a chamada da função no forms da balança, esta ativação da licença é startada antes mesmo de dar o Application.CreateForm.Portanto o que eu quero tentar fazer é inibir a chamada da função de forma direta, ao invés de deixar a chamada explícita ret := Comunica(1); eu estou tentando criar a chamada em modo de execução, e uma maneira que me veio a cabeça é executá-la dinamicamente por exemplo executa('ret := Comunica(1)'); Pois assim a chamada não fica referenciada no meu sistema, e os demais usuários que utilizam o sistema comercial, e não utilizam a tela da balança, não consomem as licenças.É isso aí estou aberto a sugestões

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.