![]() |
Ilustração de conversão de unidades - Pesos |
Índice
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
- Abrindo o Delphi: Abra o Delphi e crie um novo projeto VCL Forms Application.
- 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.
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.
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.
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.
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
- Inserindo um Valor: Execute o programa e insira um valor no
InputEdit
. - Selecionando Unidades: Selecione a unidade de medida original no
FromComboBox
e a unidade de medida de destino noToComboBox
. - Convertendo: Clique no botão "Converter". O valor convertido será exibido no
ResultLabel
.
![]() |
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:
- Criar e configurar um novo projeto em Delphi: Iniciando o Delphi, criando um novo projeto e adicionando componentes ao formulário.
- Manipular componentes visuais: Utilizando componentes como TEdit, TComboBox, TButton e TLabel para criar uma interface de usuário funcional.
- Trabalhar com eventos: Implementando eventos como
FormCreate
eConvertButtonClick
para interagir com o usuário e executar ações específicas. - 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!
Nenhum comentário:
Postar um comentário