Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thom_delphi

Como capturar os números de uma Edit e somá-lo a um outro número?

Recommended Posts

Problema 1: É o seguinte galera, estou criando uma calculadora, nela só existe uma Edit. O usuário irá digitar os números no display e esses números serão convertidos pra integer. Até aí tudo bem..

Só que o usuário terá que escolher qual a operação que deseja realizar, então, depois de convertido e armazenado numa variável, como fazer para que este número seja somado, subtraído, multiplicado ou dividido pelo próximo número que o usuário irá digitar?

 

***

Problema 2: Ainda na Edit, como faço para delimitar uma certa quantidade de caracteres? quero que a Edit receba somente 10 caracteres. Editei a propriedade MaxLength e coloquei 10, mas a Edit continua recebendo mais caractares do que eu quero.

 

***

Mais uma vez valeu pela atenção galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde!!!

 

bom primeiro crie duas variaveis Globais V1 V2

 

Depois voce pode criar uma rotina da seguinte forma

 

Private Calcula(ch: string)

begin

case Ch of

 

'+':V1:=V1+V2;

 

'-': V1:=V1-V2

 

'/': V1:=V1*V2

 

'*':V1:=V1/V2

 

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

e quando a delimitar o numeor de caracters, achei estranho que o "MaxLength" não funcionou, mas como para todo o caso (ou quase todos.. hehe) há solução. Coloque este código no evento onKeyPress do seu TEdit:

 

if (Length(Edit1.Text) >= 10) then
	Char := Char(0);

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Joe_m: Cara, criei as variáveis globais e tals, criei a rotina, Ok! Mas no caso de o usuário utilizar um teclado próprio da calculadora? tipo, ao clicar no botão de '+' (do teclado virtual da calculadora não do teclado numérico) ela vai realizar os procedimentos? agora, como ele vai armazenar na variável V1 o primeiro número que entrará e depois o próximo número na V2 de forma que ao clicar do botão da operação, ela realize a soma, subtração, multiplicação ou divisão?

Foi mal insistir tanto cara, mas valeu a resposta!

 

Raficcha: No seu código o Delphi dá um erro na linha:

Char:=Char(0);
Erro: '(' expected but ':=' found;

Já tentai corrigir de várias maneiras, mas não consegui..

Valeu a atenção também cara, abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raficcha: No seu código o Delphi dá um erro na linha:

Char:=Char(0);
Erro: '(' expected but ':=' found;

Já tentai corrigir de várias maneiras, mas não consegui..

Valeu a atenção também cara, abraço!

 

 

hehe, ops, foi mal..

 

era pra ser assim a linha

 

Key := char(0);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raficcha: Valeu, não estava funcionando para o teclado virtual da calculadora, mas para o teclado numérico funciona.. :P

 

***

 

Quanto ao procedimento de armazenamento e operação de números da Edit, isso ainda não consegui. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente, você terá que ter uma variável global do tipo float que vai receber o valor que estiver no edit sempre que você clicar num operador e somar a ela própria... esta global, no create do form você inicializa com zero e depois só vai somando/dividindo/subtraindo/multiplicando nela os valores que digitar no edit. Algo como sugerido pelo amigo Joe_m.

 

Private Calcula(ch: string; V2: float);
begin
  	case Ch of
      	'+':V1:=V1+V2;
       	'-': V1:=V1-V2
       	'/': V1:=V1*V2
      	'*':V1:=V1/V2
  	end;
end; 

Considerando a estrutura acima, temos:

 

  	V1 seria sua global com o resultado final das operações
  	V2 seria sua variável que pegaria o valor do edit na hora que o operador fosse selecionado.... poderia alimentar ela de duas formas:
  	V2 := StrToFloat(Edit.text); ou chamando a procedure diretamente passando o operador -> Calcula('+', StrToFloat(Edit.text));

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.