Tranformar String de uma edit em codigo...
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:
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
Curtidas 0
Respostas
Wolverine
01/03/2004
Edit2.Text:=FloatToStr(cos(StrToFloat(Edit1.Text)))
GOSTEI 0
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é+
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
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.
Buosi.
GOSTEI 0
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
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
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
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
coloque num form um Label e um edit
no evento OnKeyUp do Edit coloque:
Label1.Caption:=Edit1.Text
GOSTEI 0
Paulo_amorim
01/03/2004
Olá
Vou tentar ser mais especifico:
considere a Unit:
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é+
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
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]
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]
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.
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.
)
como fazer para executar esse codigo que est´á no texto do TEdit.
Edit.Text := ´Label.Caption := ´ola´; ´
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
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]
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
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
01/03/2004
[color=red:064a4983ec][size=24:064a4983ec][b:064a4983ec]AFE![/b:064a4983ec][/size:064a4983ec][/color:064a4983ec]
hehehe esse Beppe viu :lol:
hehehe esse Beppe viu :lol:
GOSTEI 0