Como Transformar em código uma linha do ListBox?

20/02/2017

0

Olá. Sou novato aqui.
Tenho no meu formulário um TButton, um TListBox e um TEdit.
No ListBox tenho a linha seguinte: Edit1.Text := 'Conteúdo';
Preciso que ao clicar no botão, o programa receba a linha do ListBox como um código e o execute.
Obrigado!
Luziraldo Godinho

Luziraldo Godinho

Responder

Post mais votado

20/02/2017

Boa noite meu caro,
Diferente de outras linguagens como java script e ruby o delphi é compilado e não interpretado.
Passar para o delphi executar uma string como um comando não é tão simples, você terá que criar um interpretador ou utilizar componentes que façam esse serviço.
Mas esses componente em geral não tem acesso aos objetos e funções de sua aplicação a menos que elas sejam publicadas.

Um componente com essa funcionalidade é o RemObjects Pascal Script que pode ser encontrado em http://www.remobjects.com/ps.aspx.

Espero ter ajudado e boa sorte com os estudos.

Gutierry Pereira

Gutierry Pereira
Responder

Mais Posts

20/02/2017

Luziraldo Godinho

Boa noite. Alguém pode me ajudar?
Responder

20/02/2017

Luziraldo Godinho

Obrigado pela atenção Gutierrydsn.
Queria implementar em meu programa que fiz no Delphi, algo como o Mouse Recorder Premium, um programa que cria e executa macros para automatização dos eventos do mouse. Consegui refazer todos os principais comandos, apenas os eventos que não. Talvez eu esteja indo pelo caminho errado e, na verdade, eu teria que ter comandos pré definidos e apenas as variáveis tirar do ListBox. Já que estamos no assunto, como eu posso? Suponhamos que eu tenha 10 linhas no ListBox, que seriam 10 eventos do mouse como cliques ou Delays. Como eu executo os comandos levando em conta que as variáveis como tempo de Delay e posição do ponteiro foram criados com o programa rodando?
Obrigado!
Responder

21/02/2017

Gutierry Pereira

Legal sua ideia, eu fiz a alguns anos atras um exportador de dados entre banco de dados com uso de script, permitindo que o usuário fazer pre validações e conversões nos dados antes de enviar para o banco de destino, mas fiz o uso do RemObjects.
O caminho que esta seguindo não esta errado, de fato vai ser o mais difícil, mas se mostrará o mais completo e genérico talvez.
Referente a essas variavas elas devem ser manipuladas de forma genericas, e se vai criar uma rotina para interpretar os comandos do listbox essa rotina estará dentro de seu programa, então ela terá acesso a essas variáveis. Quando falei de não ter acesso se refere somente ao uso de componentes como o RemObjects.
Se você tiver uma lista de ações preedefinidas será mais facil a implemetação.

qualquer coisa da um toque.

Abraços
Responder

21/02/2017

Luziraldo Godinho

Boa tarde amigo, Obrigado pela atenção!
Como eu sou considerado ainda muito leigo em Delphi, principalmente com códigos mais avançados, acho que seria mais fácil entrar em acordo comum com nossas ideias se você visse o funcionamento do Mouse Recorder, para entender melhor o que eu preciso, que é basicamente o que ele faz. Pode ser baixado gratuitamente em http://www.mouserecorder.com/index.html. O mais complicado para mim em meu projeto está sendo: Ao clicar no "Play" ele executar todos os eventos que estará na ListBox. Criar os eventos na ListBox não é tão difícil, como executar eles que está me tirando o sono.
Vou tentar fazer um exemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, 315, 315, 0, 0);
end;

O comando acima foi adicionado no OnClick de um botão, isso pra mim é tranquilo. Agora suponhamos que ao rodar o programa, este mesmo código estivesse em uma linha da ListBox, e ao clicar no Play ele compreenderia toda a linha e executasse o procedimento. Pelo que você me ensinou isso não é possível, então eu teria que criar um apelido para esse comando, ex: 'MOUSE MOVE 315,315,0,0' que é o que seria a string da ListBox. Antes de mais nada, me perdoe por não saber bem como usar os recursos do Fórum, e também por não conhecer bem de Delphi o suficiente pra facilitar as coisas por aqui, mas no meu modo de ver, ficaria mais ou menos assim:

procedure TForm1.Button1Click(Sender: TObject);
begin
(se a linha 1 da listbox existir e for igual a 'MOUSE MOVE' então)
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, variável, variável, variável, variável);
(se a linha 2 da listbox existir e for igual a 'MOUSE LEFTDOWN' então)
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, variável, variável, variável, variável);
(se a linha 3 da listbox existir e for igual a 'MOUSE LEFTUP' então)
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, variável, variável, variável, variável);
end;

Espero que possa me ajudar, Obrigado!
Responder

23/02/2017

Gutierry Pereira

Cara tranquilo, todos no inicio apanhamos muito e depois mais ainda. huahahuaua
+- isso que vc colocou, mas não precisa criar apelido para cada coisa, vc pode criar um para cada metodo. tipo
MOUSE_MOVE, no seu list o usuário colocaria assim:
MOUSE_MOVE(var1,var2,var3)

vc faz um if com o pos.
If pos('MOUSE_MOVE',list.lines[i] >= 0) then

dessa forma vc sabe que o evento que ele deseja é o mouse move, a partir disso vc sabe qu eo mouse move tem 3 parametros, Então com o pos e copy vc pega o que esta entre (). para facilitar pegar os parametros vc pode pegar a string que pegou entre () e dar um split nela,
Será criado então um array de 3 posições, cada posição do array compreende a um parametro. : D

Dessa forma você repete o procedimento para cada tipo de evento que deseja implementar. :D

Espero ter ajudado.

PS, para cada evento crie um metodo para tratar ele, para failitar a manutenção e leitura do código
Responder

23/02/2017

Luziraldo Godinho

Amigo, boa tarde.

Eu sou completamente apaixonado pelo Delphi, mas ainda sei muito pouco e preciso aprender bem mais para poder pedir ajuda aqui, pois muitas das explicações como a última que você me deu, faz muito sentido pra mim mas tem algumas coisinhas que não sei, como por exemplo o que é: método, pos, array, split... E não é justo para com vocês, eu ficar perguntando o que significa aqui, pois acho que deve ser algo primordial.

Onde eu poderia estudar sobre essas coisas?

Muito obrigado pela atenção!
Responder

24/02/2017

Gutierry Pereira

De boa todos passam por isso.. de fato são comandos básicos.Mas de boa a galera aqui esta ai para ajudar.
Você encontra bons materiais aqui na Dev,

[url:descricao=Introdução à Programação] https://www.devmedia.com.br/articles/viewaula.asp?idcomp=37875&topico=4180[/url]

[url:descricao=Lógica de programação]https://www.devmedia.com.br/logica-de-programacao-introducao-a-algoritmos-e-pseudocodigo/37918[/url]

Delphi para Iniciantes

Qualquer coisa da um "grito". ;)
Abraços
Responder

24/02/2017

Luziraldo Godinho

Muito obrigado!

Assinando eu posso aprender aqui do básico ao avançado sobre Delphi? Se sim vou assinar, adoro programar e tenho muito ainda o que aprender!
Responder

27/02/2017

Gutierry Pereira

Sim, tem muito material, não só delphi mais outras linguagens como Java, PHP entre outros.
E sempre tem conteúdo de dicas e novidades. ;)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar