ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Como bloquear que apareça uma tecla no edit

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
02eutenho
Novato
Novato


Registrado: Sexta-Feira, 11 de Mai de 2018
Mensagens: 13

MensagemEnviada: Qui Mai 17, 2018 9:40 am    Assunto: Como bloquear que apareça uma tecla no edit Responder com Citação

Bom galera basicamente é assim, eu estou criando uma calculadora e quero que quando aperte o botão "+" do teclado, seja acionado a função SOMA da calculadora, porém não quero que ele aparece no edit, onde fique apenas os numeros...

Como faço isso? e como eu coloco que o botão "+" do teclado ao ser apertado acione a função soma da minha calculadora?

...Abraços!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 8754
Localização: Sinop-MT

MensagemEnviada: Qui Mai 17, 2018 2:51 pm    Assunto: Responder com Citação

no OnKeyPress:

Código:
if Key = '+' then
begin
  Key := #0;
  Somar;
end;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
02eutenho
Novato
Novato


Registrado: Sexta-Feira, 11 de Mai de 2018
Mensagens: 13

MensagemEnviada: Qui Mai 17, 2018 3:54 pm    Assunto: Responder com Citação

E pra bloquear que se escreva letras no edit?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2816
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Mai 17, 2018 5:34 pm    Assunto: Responder com Citação

Evento OnKeypress do Edit:

Código:
If not( key in['0'..'9',#08] ) then
  key:=#0;


Nos Delphi's recentes não precisa de códigos, basta setar True na propriedade NumbersOnly do Edit.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
02eutenho
Novato
Novato


Registrado: Sexta-Feira, 11 de Mai de 2018
Mensagens: 13

MensagemEnviada: Sex Mai 18, 2018 8:12 am    Assunto: Responder com Citação

Obrigado galera, apenas mais uma dúvida, eu consegui na minha calculadora que fizesse 51/2 = 25,50, porém não consigo fazer 25,50 x 2 = 51, da que o valor não é inteiro, como que resolvo isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2816
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Mai 18, 2018 9:31 am    Assunto: Responder com Citação

Se puder, poste este trecho do seu código para análise.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
02eutenho
Novato
Novato


Registrado: Sexta-Feira, 11 de Mai de 2018
Mensagens: 13

MensagemEnviada: Sex Mai 18, 2018 11:07 am    Assunto: Responder com Citação

É apenas um teste então ta tudo sem nome mesmo, o botão da virgula é o SpeedButton17

Código:
unit ufrmCalculadora2018;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls;

type
  TfrmCalculadora = class(TForm)
    edtResultado: TEdit;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    SpeedButton14: TSpeedButton;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    Bevel1: TBevel;
    SpeedButton17: TSpeedButton;
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton14Click(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure edtResultadoKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton17Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function Add(Num : Integer) : Integer;
  end;

var
  frmCalculadora: TfrmCalculadora;
  valor : Real;
  num1 : Currency;
  num2 : Currency;
  sinal : integer;
  letra : char;

implementation

{$R *.dfm}
function TfrmCalculadora.Add(num : integer) : Integer;
  begin
  edtResultado.Text := EdtResultado.Text + IntToStr (num);
  end;

procedure TfrmCalculadora.SpeedButton15Click(Sender: TObject);
begin
  Add(1);
end;

procedure TfrmCalculadora.SpeedButton13Click(Sender: TObject);
begin
Add(2);
end;

procedure TfrmCalculadora.SpeedButton8Click(Sender: TObject);
begin
Add(3);
end;

procedure TfrmCalculadora.SpeedButton14Click(Sender: TObject);
begin
Add(4);
end;

procedure TfrmCalculadora.SpeedButton16Click(Sender: TObject);
begin
Add(5);
end;

procedure TfrmCalculadora.SpeedButton4Click(Sender: TObject);
begin
Add(6);
end;

procedure TfrmCalculadora.SpeedButton7Click(Sender: TObject);
begin
Add(7);
end;

procedure TfrmCalculadora.SpeedButton12Click(Sender: TObject);
begin
Add(8);
end;

procedure TfrmCalculadora.SpeedButton10Click(Sender: TObject);
begin
Add(9);
end;

procedure TfrmCalculadora.SpeedButton9Click(Sender: TObject);
begin
Add(0);
end;

procedure TfrmCalculadora.SpeedButton6Click(Sender: TObject);
begin
  edtResultado.Clear;
  num1 := 0;
  num2 := 0;
  valor := 0;
  sinal := 0;
end;

procedure TfrmCalculadora.SpeedButton5Click(Sender: TObject);
begin
  sinal := 1;
  if Trim (edtResultado.Text) = '' then
  begin
  showMessage ('Digite algo no campo');
  end
  else begin
  SpeedButton11.Enabled :=true;
  num1 := StrToCurr (edtResultado.Text);
  edtResultado.clear;
  end;
end;

procedure TfrmCalculadora.SpeedButton1Click(Sender: TObject);
begin
sinal := 2;
  if  Trim (edtResultado.Text) = '' then
  begin
  showMessage ('Digite algo no campo');
  end
  else begin
  SpeedButton11.Enabled :=true;
  num1 := StrToCurr (edtResultado.Text);
  edtResultado.clear;
end;
end;
procedure TfrmCalculadora.SpeedButton3Click(Sender: TObject);
begin
sinal := 3;
  if  Trim (edtResultado.Text)= '' then
  begin
  showMessage ('Digite algo no campo');
  end
  else begin
  SpeedButton11.Enabled :=true;
  num1 := StrToCurr (edtResultado.Text);
  edtResultado.clear;
end;
end;
procedure TfrmCalculadora.SpeedButton2Click(Sender: TObject);
begin
sinal := 4;
  if  Trim (edtResultado.Text) = '' then
  begin
  showMessage ('Digite algo no campo');
  end
  else begin
  SpeedButton11.Enabled :=true;
  num1 := StrToCurr (edtResultado.Text);
  edtResultado.clear;
end;
end;

procedure TfrmCalculadora.SpeedButton11Click(Sender: TObject);
begin
 num2 := StrToCurr (edtResultado.Text);
 case sinal of
 1:
 valor := num1 + num2;
 2:
 valor := num1 - num2;
 3:
 valor := num1 * num2;
 4:
 valor := num1 / num2;
 end;
 edtResultado.Text := FloatToStr (valor);
end;

procedure TfrmCalculadora.edtResultadoKeyPress(Sender: TObject;
  var Key: Char);
begin
if (Key = #43) or (Key = #46) or (Key = #47) or (key = #42) or (key= #45) then

key:=#0;



end;

procedure TfrmCalculadora.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #43 then
SpeedButton5.Click;

if key = #42 then
SpeedButton3.Click;

if key = #45 then
SpeedButton1.Click;

if key = #47 then
SpeedButton2.Click;

if key = #13 then
SpeedButton11.Click;

if key = #27 then
SpeedButton6.Click;

if key = #44 then
SpeedButton17.Click;
end;
procedure TfrmCalculadora.SpeedButton17Click(Sender: TObject);
begin
add (',');
end;

end.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
02eutenho
Novato
Novato


Registrado: Sexta-Feira, 11 de Mai de 2018
Mensagens: 13

MensagemEnviada: Sex Mai 18, 2018 1:38 pm    Assunto: Responder com Citação

Consegui colocar a virgula, porém quando digito um numero ela volta pra trás do numero no meu edit

Ex: quero colocar 2,50 quando eu coloco o 2 e coloco a virgula ela volta pra trás >>> ,2

como faço pra ela ficar na frente do numero que estiver ja dentro do edit?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB