Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Ontem à(s) 20:33 por Willy

» Regras do Fórum
Ontem à(s) 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


Aula de Delphi - parte 2 - Calculadora basica em Delphi ou Lazarus.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Aula de Delphi - parte 2 - Calculadora basica em Delphi ou Lazarus.

Mensagem por Da Galáxia em Qua 08 Dez 2010, 20:54

Aula de Delphi parte 2
Link da aula anterior:
http://www.gamemakerbrasil.com/tutoriais-diversos-f34/aula-de-delphi-parte-i-t12273.htm

Tambem pode ser feito no LAZARUS.

O que vai ser feito:
Botões: somar, subtrair, multiplicar, dividir, limpar e sair
Caixa: EditCx1, EditCx2 e EditCxTotal
3 variaveis do tipo real .

Começando
1 – entre no delphi (dãaaa)

2 – vai aparecer uma tela (formulário), click nela e no object inspector (à esquerda), click na abinha properties (propriedades), ali estão todas as propriedades ou atributos do nosso form, va em cada botão por vez e mude para:>>
caption >> Calculadora (o caption é o nome do form que o usario vai ver)
name >> FormCalc (o name é o nome do form que vai ser tratado pelo compilador)
height>>400 (altura do form (tela))
width>>300 (largura do form (tela))
color>>click na setinha escolha a preferida.

3 – Na barra de ferramenta na parte de cima do programa, entre na abinha standart, nela se encontram vários botões, ao passar o mouse em um, seu nome aparece)é um botão ok). Click no botão “button” e em seguida clik no FormCalc (o formulário – tela), repita esse procedimento(clicar no botão “button” e em seguida clicar no formulário(FormCalc)) até criar-mos um total de 6 botões. Enfileire-os um de baixo do outro. Selecione um por vez e em todos eles em object inspector (à esquerda) na aba propriedade coloque 30 para height e 60 para width, agora em seus respectivos Captions escreva para cada um na ordem de cima para baixo:
para o 1° no Caption>>Somar
para o 2° no Caption>>Subtrair
para o 3° no Caption>>Multiplicar
para o 4° no Caption>>Dividir
para o 5° no Caption>>Limpar
para o 6° no Caption>>Sair

Ainda no formulário insira, 3 botoes “Edit”(que se encontra na abinha standart (caixinha abI) ), e coloque-os no formulário, (como foi feito com os Buttons”) selecione um de cada vez e no object inspector na aba properties, la em baixo, em text, apague o que esta escrito, façam isso para os 3 Edit. Agora, selecione novamente o 1° Edit, e ainda na aba properties, em Name apague o que esta escrito e substitua por EditCx1, para o segundo Edit EditCx2 e para o terceiro EditCxTotal, enfileire-os um de baixo do outro. Para finalizarmos a parte visual de nossa calculadora, à esquerda de cada Edit (ou onde vc quiser) coloque um Label (barra de ferramenta na parte de cima do programa, abinha standart (A), botão Label) e em seus Caption, escrevam respectivamente, 1° número, 2° número e para o ultimo, Valor total.

Terminamos a parte visual, agora vamos programar.

Na Unit (tela branca em que escrevemos os códigos) vc vai ver que tem:
Unit >> nome do arquivo fonte.
Interface
Uses>>são as bibliotecas padrão do Delphi, à casos que temos que acrescentar.
Type >> o primeiro é o formulário(tela) ele já começa criado, os outros são os nossos botoes, a cada botao que criamos um type foi criado automaticamente (e isso, essa ajuda do Delphi, nos polpa muito tempo de programação)
private
{ Private declarations }
public
{ Public declarations }
end;

var
FormCalc: TFormCalc;

implementation

{$R *.dfm}

end.

Na construção desta calculadora, na unit vamos trabalhar apenas no var(as variáveis declaradas aqui são todas variáveis globais), e quando for o momento, e clicarmos em um botão, em sua procedure.

A variável FormCalc: TFormCalc; foi criada automaticamente, ela significa... FormCalc: nome da variável (nós que colocamos este nome, lembra?), TFormCalc; é o tipo da variável (o (;) ponto e virgula deve ser colocado sempre quando terminamos a informação), agora abaixo de FormCalc: TFormCalc; vamos criar 3 variavei do tipo real (que pode suportar números quebrados, como 1,7 po ex.) Lembrete: No GM usa-se o ponto, no Delphi a virgula.

abaixo de FormCalc nossas 3 variaveis criadas
Valor1, Valor2, ValorTotal: real;

Dê duplo click no botão que chamamos de Somar, automaticamente o Delphi te leva para o procedimento(procedur) deste botão >>> procedure TFormCalc.Button5Click(Sender: TObject); (no nosso caso é isso mesmo que queremos que o resultado seja efetuado pelo clicar do mouse, se desejássemos que o procedimento fosse outro, é só entrar no object inspector do tal botão e na abinha Events escolher o que desejar, clicar em um evento e dar duplo click na caixa ao lado, e criar-se-á um procedimento para o evento, entre lá e veja que no onclick já esta o nosso botão. É que o Delphi deixa default onclick para o “Button”, por isso nos bastou um duplo click no botão para criar o procedimento onclick, sem que para isso tivéssemos que entrar no seu evento), ok, voltando ao que interessa:
Abaixo da procedure entre o begin e o end; coloque:


Valor1:=strtofloat(EditCX1.Text);
nossa variável Valor1 passa a ter o valor do que for digitado no EditCX1 pelo usuário.

Explicando:
Valor1>> uma de nossas variáveis.
:= >> como o sinal de igual (atribuição), quando na pergunta usa-se = (sinal do Delphi de comparação) ex: if Valor1 = 4 then Valor1:=Valor2;
strtofloat>>convertendo uma string para um float(inteiro ou real), é que quando o usuário digita um valor, a principio, o Delphi trata esse valor como uma string, ou seja, letras e números são apenas caracteres sem valor matemático, ao convertemos indicamos ao delphi que o numero digitado é realmente um numero, por isso se o usuário digitar uma letra ao invés de um numero, retorna um erro.
(EditCX1.Text);>>indica ao Delphi que tudo o que foi dito acima é pego do EditCX1 e o .Text é um atributo do objeto Edit (ver aula 1 em:)
http://www.gamemakerbrasil.com/tutoriais-diversos-f34/aula-de-delphi-parte-i-t12273.htm
continuando...

Valor2:=strtofloat(EditCX2.Text);//repare que mudou a variável e o Edit
ValorTotal:= Valor1 + Valor2;//a variável total, tem o valor somado das duas variáveis.
EditCxTotal.Text:=floattostr(ValorTotal);//aqui é o contrario dos outros dois Edit, vai transformar float para string
Explicando:
È que na memória do compilador já vai estar somado as duas Edits, então não precisa entender como um numero matemático, mas sim como caracteres, como se estivesse colando este resultado, sem fazer calculo algum, pois isto já foi feito.

Limpando o código acima:
------------------------------------------------------------------
Valor1:=strtofloat(EditCX1.Text);
Valor2:=strtofloat(EditCX2.Text);
ValorTotal:= Valor1 + Valor2;
EditCxTotal.Text:=floattostr(ValorTotal);

Esses codes acima são do botão Somar. Agora copie esses codes, dê duplo click no botão Subtrair, e entre o begin e o end, cole os códigos copiados. APENAS modifique o SINAL +(mais) PELO SINAL – (menos). Façam o mesmo, para o botão Multiplicar e Dividir, colocando, é claro o sinal *(multiplicar) para o botão multiplicar e o sinal /(dividir) para o botão Dividir.
Agora vá na setinha verde lá em cima e click para rodar o nosso programa calculadora. Ela funciona assim:
Primeiro digite um numero no primeiro Box, depois digite outro numero no segundo Box, e por fim, click no botão da operação que quiser fazer.

Beleza, a calculadora opera, esta pronta, mas ainda vamos usar os outros 2 botoes.
Click no botão limpar e entre o begin e o end; coloque:
EditCx1.Clear;
EditCx2.Clear;
EditCxTotal.Clear;
Isso limpa os nossos Edits, sem que precisamos recorrer ao teclado.

E por fim, ufa, click no botão Sair e entre seu begin e end; coloque:
Close;

Esta pronta nossa calculadora, é claro que para um uso comercial, além de termos que aumentar e muito, seus recursos, teríamos que fazer as exceções(quando um usuário digita algo errado, o programa acusa um erro, isso já é automático do Delphi, poi ele usa uma API do Windows, para não ter esse padrão e quisermos explicar melhor e em português para o usuário, devemos programar as exceções. Mas, isso é outra historia.)

DICAS:
Se por acaso o formulario(tela) a qual chamamos de FormCalc, sumir, va la em cima, em view e escolha forms, aparecera uma telinha a view form, escolha o formCalc e dê ok. Se a unit não aparecer ou sumir, basta teclar F12.

Espero que tenham gostado, comentem. Na próxima aula vamos fazer um jogo (apenas uma nave se movimentando e atirando).

avatar
Da Galáxia

Data de inscrição : 14/01/2010
Número de Mensagens : 348
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum