Sou iniciante em delphi como muitos por ai, tem pouco tempo q comecei a estudar, mas um exemplo que me ajudou um pouco foi o da calculadora, com ele pude entender sobre procedures e sobre o uso de operadores, além do uso de passagem de parâmetro por valor.
Então vamos por a mão na massa:
Crie um novo projeto no delphi e altere:
form
Name : FrmCalculadora
Caption: Calculadora
Salve tudo, a unit como UCalculadora e o Project como Calculadora ;)
Adicione 3 Labels (Guia Standart) 2 Edtis(Guia Standart) e 4 SpeedButtons(Guia Additionalt) e altere as propriedades:
Num1, Num2, Total : Integer; // declarando as variáveis
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text); //(1)
Somar(Num1, Num2, Total);//aqui chamamos a sub-rotina q ainda será implementada
LblResultado.Caption := IntToStr(Total);//(2)
EdtValor1.Text := '';//aqui limpamos o valor do edit
EdtValor2.Text := ''; //aqui limpamos o valor do edit
EdtValor1.SetFocus;//aqui setamos o edit
end;
(1) como as variáveis são do tipo inteiro (Num1, Num2, Total : Integer) e os valores digitados nos edit são do tipo string devemos converter os dados para inteiro (StrToInt) o valor Text dos edits e armazenar na variável reponsável pelo edit
(2) O LblResultado exibirá o resultado da nossa operação, contudo ele só pode exibir dados do tipo string e como o resultado é do tipo inteiro devemos converte-lo para string (IntToStr)
Agora implementaremos a sub-rotina que foi chamada na procedure do SpdSomar, adicione o código em negrito exatamente ond ele está:
......
SpdSomar: TSpeedButton;
procedure SpdSomarClick(Sender: TObject);
procedure Somar(N1, N2 :Integer; var Resultado :Integer);
private
{ Private declarations }
...
Posicione o cursos logo abaixo do evento do SpdSomar e add o cód abaixo:
procedure TFrmCalculadora.Somar(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 + N2
end;
Salve tudo e pressione F9 para testar, se tudo estiver certo ...
Pergunta
fernando_vip
Boa tarde Pessoal
Sou iniciante em delphi como muitos por ai, tem pouco tempo q comecei a estudar, mas um exemplo que me ajudou um pouco foi o da calculadora, com ele pude entender sobre procedures e sobre o uso de operadores, além do uso de passagem de parâmetro por valor.
Então vamos por a mão na massa:
Crie um novo projeto no delphi e altere:
form
Name : FrmCalculadora
Caption: Calculadora
Salve tudo, a unit como UCalculadora e o Project como Calculadora ;)
Adicione 3 Labels (Guia Standart) 2 Edtis(Guia Standart) e 4 SpeedButtons(Guia Additionalt) e altere as propriedades:
Label1 Label2 Label3
Name: LblValor1 Name:LblValor2 Name:LblResultado
Caption:Valor 1: Caption:Valor 2: Caption: LblResultado
Altere a propriedade font como quiser e a propriedade transparent para true
Edit1 Edit2
Name:EdtValor1 Name:EdtValor2
Text: Em branco Text: Em branco
SpeedButton1 SpeedButton2 SpeedButton3
Name: SpdSomar Name:SpdMenos Name:SpdMultiplicar
Caption: + Caption: - Caption: x
SpeedButton4
Name: SpdDividir
Caption: /
Altere a propriedade Flat de todos os SpeedButtons para true;
A aparência do form deverá está parecidada como esta:
Agora os Procedimentos, explicarei o do SpdSomar e vocês tentem montar os outros para teste de aprendizado, rs, no final estará o cód da unit
Clique duas vezes no SpdSomar, para acessar o evento OnClick e digite:
procedure TFrmCalculadora.SpdSomarClick(Sender: TObject);
var
Num1, Num2, Total : Integer; // declarando as variáveis
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text); //(1)
Somar(Num1, Num2, Total);//aqui chamamos a sub-rotina q ainda será implementada
LblResultado.Caption := IntToStr(Total);//(2)
EdtValor1.Text := '';//aqui limpamos o valor do edit
EdtValor2.Text := ''; //aqui limpamos o valor do edit
EdtValor1.SetFocus;//aqui setamos o edit
end;
(1) como as variáveis são do tipo inteiro (Num1, Num2, Total : Integer) e os valores digitados nos edit são do tipo string devemos converter os dados para inteiro (StrToInt) o valor Text dos edits e armazenar na variável reponsável pelo edit
(2) O LblResultado exibirá o resultado da nossa operação, contudo ele só pode exibir dados do tipo string e como o resultado é do tipo inteiro devemos converte-lo para string (IntToStr)
Agora implementaremos a sub-rotina que foi chamada na procedure do SpdSomar, adicione o código em negrito exatamente ond ele está:
......
SpdSomar: TSpeedButton;
procedure SpdSomarClick(Sender: TObject);
procedure Somar(N1, N2 :Integer; var Resultado :Integer);
private
{ Private declarations }
...
Posicione o cursos logo abaixo do evento do SpdSomar e add o cód abaixo:
procedure TFrmCalculadora.Somar(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 + N2
end;
Salve tudo e pressione F9 para testar, se tudo estiver certo ...
O código da unit inteira
unit UCalculadora;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TFrmCalculadora = class(TForm)
LblValor1: TLabel;
LblValor2: TLabel;
EdtValor1: TEdit;
EdtValor2: TEdit;
LblResultado: TLabel;
SpdMeltiplicar: TSpeedButton;
SpdDividir: TSpeedButton;
SpdMenos: TSpeedButton;
SpdSomar: TSpeedButton;
procedure SpdSomarClick(Sender: TObject);
procedure Somar(N1, N2 :Integer; var Resultado :Integer);
procedure SpdMenosClick(Sender: TObject);
procedure Menos(N1, N2 :Integer; var Resultado :Integer);
procedure SpdMeltiplicarClick(Sender: TObject);
procedure Multiplicar(N1, N2 :Integer; var Resultado :Integer);
procedure SpdDividirClick(Sender: TObject);
procedure Dividir(N1, N2 :Integer; var Resultado :Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmCalculadora: TFrmCalculadora;
implementation
{$R *.dfm}
procedure TFrmCalculadora.SpdSomarClick(Sender: TObject);
var
Num1, Num2, Total : Integer;
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text);
Somar(Num1, Num2, Total);
LblResultado.Caption := IntToStr(Total);
EdtValor1.Text := '';
EdtValor2.Text := '';
EdtValor1.SetFocus;
end;
procedure TFrmCalculadora.Somar(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 + N2
end;
procedure TFrmCalculadora.SpdMenosClick(Sender: TObject);
var
Num1, Num2, Total : Integer;
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text);
Menos(Num1, Num2, Total);
LblResultado.Caption := IntToStr(Total);
EdtValor1.Text := '';
EdtValor2.Text := '';
EdtValor1.SetFocus;
end;
procedure TFrmCalculadora.Menos(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 - N2
end;
procedure TFrmCalculadora.SpdMeltiplicarClick(Sender: TObject);
var
Num1, Num2, Total : Integer;
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text);
Multiplicar(Num1, Num2, Total);
LblResultado.Caption := IntToStr(Total);
EdtValor1.Text := '';
EdtValor2.Text := '';
EdtValor1.SetFocus;
end;
procedure TFrmCalculadora.Multiplicar(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 * N2
end;
procedure TFrmCalculadora.SpdDividirClick(Sender: TObject);
var
Num1, Num2, Total : Integer;
begin
Num1 := StrToInt(EdtValor1.Text);
Num2 := StrToInt(EdtValor2.Text);
Dividir(Num1, Num2, Total);
LblResultado.Caption := IntToStr(Total);
EdtValor1.Text := '';
EdtValor2.Text := '';
EdtValor1.SetFocus;
end;
procedure TFrmCalculadora.Dividir(N1,N2:Integer; var Resultado:Integer);
begin
Resultado := N1 div N2 // o div = divisão por inteiros
end;
end.
Fontes do programa: Fontes
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.