Funções em String

Delphi

03/09/2003

Quero criar uma configuração de etiquetas que seja ´aberta´, ou seja, não amarrada pelos fontes.
Precisaria ter como gerar uma função em String e o Delphi executá-la como se fosse fonte. Ex:

function ExecutaComando(Comando: String): String;

ExecutaComando(´FormatFloat(´ + QuotedStr(´000´) + ´, tClientesCodigo.AsInteger)´);

e o retorno da função seria: ´001´ caso o código do cliente fosse ´1´
Pesquisei no Help do Delphi mas não obtive sucesso. Na liguagem Joiner da Tuxon, que é derivada do Clipper tem uma função desse tipo e é muito útil para configurações de etiquetas, notas fiscais e duplicatas.
Se vcs puderem me ajudar, eu ficarei muito grato.


Botelho

Botelho

Curtidas 0

Respostas

Allen74

Allen74

03/09/2003

botelho,

A grande maioria dos gerenciadores de relatórios fornecem algum tipo de avaliador de expressões que permite atender à grande maioria das necessidades dos desenvolvedores.

O quickreport, por exemplo possui o componente QRExpression. Você também pode utilizar alguns componentes já prontos que foram criados para fazer a avaliação de expressões. Consulte alguns deles neste link: http://www.torry.net/expressions.htm

Todo avaliador de expressões consiste basicamente de um pequeno interpretador. Para incorporar funções mais complexas, um interpretador mais completo é necessário. Alguns podem ser encontrados também no torry.net, no link: http://www.torry.net/interpretators.htm

Na linguagem Clipper era possível avaliar expressões da própria linguagem com a utilização do Macro Operator (&) em tempo de execução porque a linguagem em sí, apesar de gerar um arquivo executável, era interpretada.

O código fonte do programa era convertido em um formato intermediário, preservando nomes de variáveis, funções, etc. Somente as palavras reservadas da linguagem eram convertidas em mnemônicos dentro deste formato e tudo era anexado à biblioteca do clipper. Um processo semelhante ao que existe hoje para o Java, com o código fonte compilado para bytecodes que são interpretados e executados pela máquina virtual Java (JVM).


GOSTEI 0
POSTAR