Menu

Tradução

Português English Español Français

Conversor de Unidades em Delphi: Como Criar Passo a Passo

Neste post, vamos desenvolver um conversor de unidades de medidas simples em Delphi.

 

Conversor de Unidades de Medidas
Ilustração de conversão de unidades - Pesos

Introdução

Neste tutorial, vamos desenvolver um conversor de unidades de medidas simples em Delphi. Este projeto é ideal para iniciantes, pois cobre conceitos básicos de desenvolvimento de software, como manipulação de componentes visuais, eventos e conversão de unidades. Vamos abordar passo a passo o desenvolvimento e a explicação do código para que você possa entender e aplicar em seus próprios projetos.

Configurando o Ambiente

  1. Abrindo o Delphi: Abra o Delphi e crie um novo projeto VCL Forms Application.
  2. Configurando o Formulário Principal: Adicione os seguintes componentes ao formulário:
  • TEdit (InputEdit): Para entrada do valor a ser convertido.
  • TComboBox (FromComboBox): Para selecionar a unidade de medida original.
  • TComboBox (ToComboBox): Para selecionar a unidade de medida de destino.
  • TButton (ConvertButton): Para executar a conversão.
  • TLabel (ResultLabel): Para exibir o resultado da conversão.
  • TLabel2 : Para auxiliar no nome do InputEdit. Caption = Digite a unidade a ser convertida.
  • TLabel3 : Para auxiliar no nome do FromComboBox. Caption = Converter de
  • TLabel3 : Para auxiliar no nome do ToComboBox. Caption = Para

Organize os componentes no formulário de forma que fiquem acessíveis e visualmente agradáveis.

Estrutura do Projeto - Conversor de Unidades de Medidas

Vamos configurar o formulário principal para que ele contenha todos os componentes necessários e implementar a lógica de conversão.

Delphi

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    InputEdit: TEdit;
    FromCombobox: TComboBox;
    ToComboBox: TComboBox;
    ConvertButton: TButton;
    ResultLabel: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure ConvertButtonClick(Sender: TObject);
  private
    function ConvertUnits(Value: Double; FromUnit, ToUnit: string): Double;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ConvertButtonClick(Sender: TObject);
var
  InputValue, ResultValue: Double;

begin
  // Valida e converte o valor de entrada
  if TryStrToFloat(InputEdit.Text, InputValue) then
  begin
    ResultValue := ConvertUnits(InputValue, FromComboBox.Text, ToComboBox.Text);
    ResultLabel.Caption := FormatFloat('0.0000', ResultValue);
  end
  else
  begin
    ShowMessage('Please enter a valid number.');
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Popula os ComboBoxes com unidades de medida
  FromComboBox.Items.Add('Meters');
  FromComboBox.Items.Add('Kilometers');
  FromComboBox.Items.Add('Centimeters');
  FromComboBox.Items.Add('Inches');
  FromComboBox.Items.Add('Feet');
  FromComboBox.ItemIndex := 0;

  ToComboBox.Items.Add('Meters');
  ToComboBox.Items.Add('Kilometers');
  ToComboBox.Items.Add('Centimeters');
  ToComboBox.Items.Add('Inches');
  ToComboBox.Items.Add('Feet');
  ToComboBox.ItemIndex := 1;
end;

function TForm1.ConvertUnits(Value: Double; FromUnit, ToUnit: string): Double;
const
  MetersToKilometers = 0.001;
  MetersToCentimeters = 100;
  MetersToInches = 39.3701;
  MetersToFeet = 3.28084;
var
  ValueInMeters: Double;
begin
  // Converte a unidade de origem para metros
  if FromUnit = 'Meters' then
    ValueInMeters := Value
  else if FromUnit = 'Kilometers' then
    ValueInMeters := Value / MetersToKilometers
  else if FromUnit = 'Centimeters' then
    ValueInMeters := Value / MetersToCentimeters
  else if FromUnit = 'Inches' then
    ValueInMeters := Value / MetersToInches
  else if FromUnit = 'Feet' then
    ValueInMeters := Value / MetersToFeet
  else
    raise Exception.Create('Unsupported unit');

  // Converte de metros para a unidade de destino
  if ToUnit = 'Meters' then
    Result := ValueInMeters
  else if ToUnit = 'Kilometers' then
    Result := ValueInMeters * MetersToKilometers
  else if ToUnit = 'Centimeters' then
    Result := ValueInMeters * MetersToCentimeters
  else if ToUnit = 'Inches' then
    Result := ValueInMeters * MetersToInches
  else if ToUnit = 'Feet' then
    Result := ValueInMeters * MetersToFeet
  else
    raise Exception.Create('Unsupported unit');
end;

end.
  

Explicação do Código

1- Declaração dos Componentes: Na seção interface, declaramos todos os componentes do formulário, como TEdit, TComboBox, TButton e TLabel. Esses componentes serão usados para interação com o usuário e para exibir o resultado da conversão.

2- Populando os ComboBoxes: No evento FormCreate, populamos os ComboBoxes FromComboBox e ToComboBox com as unidades de medida disponíveis. Também definimos a unidade de origem como "Meters" e a unidade de destino como "Kilometers" por padrão.

Delphi

procedure TForm1.FormCreate(Sender: TObject);
begin
  FromComboBox.Items.Add('Meters');
  FromComboBox.Items.Add('Kilometers');
  FromComboBox.Items.Add('Centimeters');
  FromComboBox.Items.Add('Inches');
  FromComboBox.Items.Add('Feet');
  FromComboBox.ItemIndex := 0;

  ToComboBox.Items.Add('Meters');
  ToComboBox.Items.Add('Kilometers');
  ToComboBox.Items.Add('Centimeters');
  ToComboBox.Items.Add('Inches');
  ToComboBox.Items.Add('Feet');
  ToComboBox.ItemIndex := 1;
end;
  

3- Evento ConvertButtonClick: Este evento é acionado quando o botão “Converter” é clicado. O código verifica se o valor de entrada é um número válido, chama a função ConvertUnits para converter o valor e exibe o resultado no ResultLabel. Se o valor de entrada não for válido, uma mensagem de erro é exibida.

Delphi

procedure TForm1.ConvertButtonClick(Sender: TObject);
var
  InputValue, ResultValue: Double;
begin
  if TryStrToFloat(InputEdit.Text, InputValue) then
  begin
    ResultValue := ConvertUnits(InputValue, FromComboBox.Text, ToComboBox.Text);
    ResultLabel.Caption := FormatFloat('0.00', ResultValue);
  end
  else
  begin
    ShowMessage('Please enter a valid number.');
  end;
end
  

4- Função ConvertUnits: Esta função realiza a conversão de unidades. Primeiro, converte o valor de entrada para metros, e depois converte de metros para a unidade de destino. As conversões são feitas com base em constantes definidas para cada unidade de medida.

Delphi

function TForm1.ConvertUnits(Value: Double; FromUnit, ToUnit: string): Double;
const
  MetersToKilometers = 0.001;
  MetersToCentimeters = 100;
  MetersToInches = 39.3701;
  MetersToFeet = 3.28084;
var
  ValueInMeters: Double;
begin
  if FromUnit = 'Meters' then
    ValueInMeters := Value
  else if FromUnit = 'Kilometers' then
    ValueInMeters := Value / MetersToKilometers
  else if FromUnit = 'Centimeters' then
    ValueInMeters := Value / MetersToCentimeters
  else if FromUnit = 'Inches' then
    ValueInMeters := Value / MetersToInches
  else if FromUnit = 'Feet' then
    ValueInMeters := Value / MetersToFeet
  else
    raise Exception.Create('Unsupported unit');

  if ToUnit = 'Meters' then
    Result := ValueInMeters
  else if ToUnit = 'Kilometers' then
    Result := ValueInMeters * MetersToKilometers
  else if ToUnit = 'Centimeters' then
    Result := ValueInMeters * MetersToCentimeters
  else if ToUnit = 'Inches' then
    Result := ValueInMeters * MetersToInches
  else if ToUnit = 'Feet' then
    Result := ValueInMeters * MetersToFeet
  else
    raise Exception.Create('Unsupported unit');
end;
  

Executando o Projeto

  1. Inserindo um Valor: Execute o programa e insira um valor no InputEdit.
  2. Selecionando Unidades: Selecione a unidade de medida original no FromComboBox e a unidade de medida de destino no ToComboBox.
  3. Convertendo: Clique no botão "Converter". O valor convertido será exibido no ResultLabel.
Veja abaixo a ilustração do projeto:
Ilustração do Projeto- Conversor de Unidades de Medidas.

Código fonte do exemplo

Você pode fazer o download do exemplo do projeto através do repositório do github:

https://github.com/Gisele-de-Melo/conversor-unidade-simples

Conclusão

Desenvolver um conversor de unidades de medidas simples em Delphi é uma excelente maneira de aprender os conceitos básicos da linguagem e familiarizar-se com o ambiente de desenvolvimento. Neste projeto, abordamos a criação de um formulário com componentes visuais, a manipulação de eventos e a implementação da lógica de conversão de unidades.

Através deste exercício, você aprendeu a:

  1. Criar e configurar um novo projeto em Delphi: Iniciando o Delphi, criando um novo projeto e adicionando componentes ao formulário.
  2. Manipular componentes visuais: Utilizando componentes como TEdit, TComboBox, TButton e TLabel para criar uma interface de usuário funcional.
  3. Trabalhar com eventos: Implementando eventos como FormCreate e ConvertButtonClick para interagir com o usuário e executar ações específicas.
  4. Implementar lógica de conversão: Desenvolvendo a função ConvertUnits para realizar a conversão entre diferentes unidades de medida.

Este projeto é um ótimo ponto de partida para entender como construir aplicações mais complexas em Delphi. A medida que você ganha confiança, pode expandir este projeto adicionando mais unidades de medida, implementando verificações de erros mais robustas, ou criando uma interface de usuário mais avançada.

Lembre-se, a prática constante é essencial para se tornar proficiente em qualquer linguagem de programação. Continue explorando novos projetos, experimentando diferentes componentes e funcionalidades, e aprimorando suas habilidades. O Delphi oferece uma vasta gama de possibilidades para desenvolvedores de todos os níveis, e com dedicação, você poderá criar aplicações poderosas e eficientes.

Esperamos que este tutorial tenha sido útil e inspirador para sua jornada no desenvolvimento com Delphi. Continue aprendendo e se desafiando com novos projetos. Bons códigos!

Posts Relacionados



Nenhum comentário:

Postar um comentário

TParallel em Delphi: Paralelismo na Prática

Neste artigo, você aprenderá o que é paralelismo em Delphi, como funciona o TParallel, quando utilizá-lo, além de um exemplo prático comp...