Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Variavel do tipo Operador ( +, - , *, / pelo menos)


LucAlucard

Pergunta

Alguém sabe se existe alguma variavel ou como consetruir algo para criar uma variavel do tipo operador?

Digamos tenho um código q usaria:

10 + 10;

e o outro eu usaria

10 - 10;

Tem alguma forma de eu criar uma rotina q mandar apenas os parametros?

Por exemplo function Calc(Val1, Val2 : Integer ; operador : ??? ) : Variant;

Alguém conhece?

Vlw gente essa dúvida ta me matando T_T

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Foi a única forma que encontrei também.. Porém isso ainda me forçaria a fazer um case pra cada operador... Eu estava querendo saber se existe uma variável do tipo operador mesmo. Que eu só passasse o operador como parâmetro e ele fizesse o calculo. Independente se ele for um "+,-,/,*" entende? Assim eu não precisaria de um case pra cada operador.

Link para o comentário
Compartilhar em outros sites

  • 0

Existe alguma contra indicação de importar componentes dessa forma? Quando for enviar o compilado pro cliente? Eu vo testar aqui.. Já q eu falo ( só q to sem net.. vo responder no mínimo amanhã de manhã)

Editado por LucAlucard
Link para o comentário
Compartilhar em outros sites

  • 0

Cara eu li o tópico e parece q o dele deu certo mas cmg deu erro.

A minha unit ta aqui

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MSScriptControl_TLB;

type
  TForm1 = class(TForm)
    ScriptControl1: TScriptControl;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var S  : Variant;
    ws : WideString;
begin
S := ScriptControl1.Eval('3+3');
Label1.Caption := S;
end;

end.

OQAAABcevZqNfnkH310uzAihB9R_uGzYjLphXDsn

Porque será que ta dando esse erro?

Link para o comentário
Compartilhar em outros sites

  • 0

Cara ler eu tinha lido mas não tinha entendido. Desculpa...

Fiz o que você falou agora e deu certinho cara!. Meu, muito obrigado! Muito obrigado mesmo!! Transformar String em código no Delphi realmente ajuda muito!

Só umas últimas dúvida, como você soube q importando esse componente ele resolveria o meu problema?

Esse componente. Essa propriedade "Language" seria a linguagem de programação q eu vou usar? No caso VB?

Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

  • 0
Só umas últimas dúvida, como você soube q importando esse componente ele resolveria o meu problema?
muito simples: a idéia do que voce postou

Por exemplo function Calc(Val1, Val2 : Integer ; operador : ??? ) : Variant;

Esse componente. Essa propriedade "Language" seria a linguagem de programação q eu vou usar? No caso VB?
primeiro pela propria mensagem de erro

OQAAABcevZqNfnkH310uzAihB9R_uGzYjLphXDsn

A operação não pode ser completada por causa que o script engine não pode ser inicializado por uma linguagem valida

se voce olhou esse post, voce mata a charada

QUOTE(--Jonas -- @ 03/08/2007 - 11:27)

Olhei no delphi e esse componente esta a disposição na paleta do import activex, mas não tenho ideia de como utiliza-lo, de acordo com a informação do post do Kuroi, seria usando a propriedade Eval do componente, não custa nada você dar uma pesquisada no assunto.

bom, no visual basic, eu apenas crio um novo objeto do tipo ScriptControl. seto a linguagem pra VBScript (propriedade language), e faco os calculos com o metodo eval (passando por parametro a string contendo o calculo). ai ele retorna o resultado em string.

OBS: se no visual basic, voce pode criar um objeto do tipo ScriptControl, e seta a linguagem VBScript (na propriedade language) , basta relacionar o componente, que sendo um controle do activex ( que pode ser usado em outras linguagens de programação ) , use a mesma propriedade.

A experiência de um programador ( Como, Porque e Quando ) deve se extender para o Onde ... ou seja, nem sempre voce vai achar as respostas prontas, terá que pesquisar e praticar muito e relacionar uma coisa com outra ou outras. A pesquisa e muita leitura faz toda a diferença.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...