Tranformar String de uma edit em codigo...

Delphi

01/03/2004

Bem... gostaria de digitar esta funcao em uma edit1 (em execução) sin(x) e dar a resposta em uma outra edit2...
se eu digitar cos(x) em edit1 na edit2 aparece a resposta e assim por diante...
como da pra perceber o que esta na edit1 varia.. mas como faço para achar uma funçao digitada em uma edit em tempo de execução??


Valew galera... :lol: :P :lol:


Pantoja

Pantoja

Curtidas 0

Respostas

Wolverine

Wolverine

01/03/2004

Edit2.Text:=FloatToStr(cos(StrToFloat(Edit1.Text)))


GOSTEI 0
Paulo_amorim

Paulo_amorim

01/03/2004

Olá

Aproveitando o tópico:

Existe um modo de criar um código em tempo de execução?

Ex. digito num TEdit: ´Label1.Caption := ´Olá Mundo´ ´
e ele executar isso?

Até+


GOSTEI 0
Buosinet

Buosinet

01/03/2004

Eu acho que a única maneira de criar código Delphi dinamicamente é criando uma DLL e linkando dinamicamente ao programa. Mas dá trabalho...

Buosi.


GOSTEI 0
Wolverine

Wolverine

01/03/2004

claro amigo, olha:
vc tem um tedit q ira receber o nome do label,

ex: Label Tedit
Button

no evento OnClick do button vc coloca
label.caption:=edit.text

entao:

O seu Texto digitado Tedit
Button


GOSTEI 0
Paulo_amorim

Paulo_amorim

01/03/2004

claro amigo, olha: vc tem um tedit q ira receber o nome do label, ex: Label Tedit Button no evento OnClick do button vc coloca label.caption:=edit.text


Creio que nao me entendeu.
O que quis dizer eh:
se o Edit.Text contém um comando Delphi (p. ex.
Edit.Text := ´Label.Caption := ´ola´; ´
)

como fazer para executar esse codigo que est´á no texto do TEdit.

Mas o buosinet disse que eh complicado, usa-se dll etc...entao deixa, ja que era mera curiosidade!

Obrigado


GOSTEI 0
Wolverine

Wolverine

01/03/2004

e ainda mais legal
coloque num form um Label e um edit

no evento OnKeyUp do Edit coloque:
Label1.Caption:=Edit1.Text


GOSTEI 0
Paulo_amorim

Paulo_amorim

01/03/2004

Olá

Vou tentar ser mais especifico:

considere a Unit:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;


no evento do botão, ele executa o que está no Edit1.Text...por exemplo.
o usuario digita no Edit1 a seguinte frase: ´Button1.Enabled := False;´

Quando clicasse no botão, ele executaria esse comando acima, ou seja, o botão ficaria com Enabled = False.

Acho que agora fui claro
Até+


GOSTEI 0
Beppe

Beppe

01/03/2004

[quote:097c46d910=´Professor Algoritmo´]Bem... gostaria de digitar esta funcao em uma edit1 (em execução) sin(x) e dar a resposta em uma outra edit2...
se eu digitar cos(x) em edit1 na edit2 aparece a resposta e assim por diante...
como da pra perceber o que esta na edit1 varia.. mas como faço para achar uma funçao digitada em uma edit em tempo de execução??


Valew galera... :lol: :P :lol:[/quote:097c46d910]

Eu acho que a única maneira de criar código Delphi dinamicamente é criando uma DLL e linkando dinamicamente ao programa. Mas dá trabalho... Buosi.


e ainda mais legal coloque num form um Label e um edit no evento OnKeyUp do Edit coloque: Label1.Caption:=Edit1.Text


O Delphi não permite compilação dinâmica de código, logo não pode executar um comando que esteja em uma string em tempo de execução, mesmo que seja na linguagem Delphi, ou ou qualquer outra, diretamente.

Para isso, você escreve um interpretador, que recebe a expressão, avalia e retorna o resultado. Se você mesmo não quiser escrever um, há diversos componentes na Internet que façam isso.

Ou, talvez esse tópico ajude: [url]http://delphiforum.icft.com.br/forum/viewtopic.php?p=99223#99223[/url]

se o Edit.Text contém um comando Delphi (p. ex.
Edit.Text := ´Label.Caption := ´ola´; ´
) como fazer para executar esse codigo que est´á no texto do TEdit.


Permitindo usar objetos Delphi, você precisa usar rotinas como FindComponent(Classes) e SetStringProperty(TypInfo)

Há componentes que fazem isso, creio eu, mas talvez você precise registrar cada componente que usar.


GOSTEI 0
Wolverine

Wolverine

01/03/2004

Código:
SELECT *
FROM guys
WHERE expertise = ´very_smart´;


One record found:
> Beppe

[color=red:3ee3f25ae9][size=24:3ee3f25ae9][b:3ee3f25ae9]Falou viu[/b:3ee3f25ae9][/size:3ee3f25ae9][/color:3ee3f25ae9]


GOSTEI 0
Beppe

Beppe

01/03/2004

Código: SELECT * FROM guys WHERE expertise = ´very_smart´; One record found: > Beppe [color=red:74b832aa88][size=24:74b832aa88][b:74b832aa88]Falou viu[/b:74b832aa88][/size:74b832aa88][/color:74b832aa88]


:?:

Mas que bom que funciona no teu SGDB também... :mrgreen:


GOSTEI 0
Wolverine

Wolverine

01/03/2004

[color=red:064a4983ec][size=24:064a4983ec][b:064a4983ec]AFE![/b:064a4983ec][/size:064a4983ec][/color:064a4983ec]

hehehe esse Beppe viu :lol:


GOSTEI 0
POSTAR