unit U_principar;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    rg_seguro: TRadioGroup;
    btn_calcular: TButton;
    btn_limpar: TButton;
    Label2: TLabel;
    gb_valores: TGroupBox;
    txt_passagem: TEdit;
    txt_seguro: TEdit;
    txt_total: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    cb_destino: TComboBox;
    cb_origem: TComboBox;
    procedure btn_calcularClick(Sender: TObject);
    procedure btn_limparClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  passagem, seguro, total :double;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn_calcularClick(Sender: TObject);
begin
  //validação dos campos em branco
  if (cb_origem.ItemIndex = -1) then
    begin
    Application.MessageBox('Escolha a cidade de origem da viagem!','Atenção', MB_OK);
    end
    else
  if (cb_destino.ItemIndex = -1) then
    begin
    Application.MessageBox('Escolha o destino da viagem!','Atenção', MB_OK) ;
    end
    else
  if (rg_seguro.ItemIndex = -1) then
    begin
    Application.MessageBox('Escolha se incluirá seguro!','Atenção', MB_OK) ;
    end
    else
  if cb_origem = cb_destino then
    begin
    application.MessageBox('Não é possível que o seu destino seja igual o ponto de partida!','Atenção', MB_OK);
    end;
  //Realizando cálculos da passagem
  if (cb_origem.ItemIndex=0) and (cb_destino.ItemIndex=1) then
    begin
      passagem := 180;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem);
    end
  else
  if (cb_origem.ItemIndex=1) and (cb_destino.ItemIndex=0) then
    begin
      passagem := 180;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem);
    end
  else
  if (cb_origem.ItemIndex=1) and (cb_destino.ItemIndex=2) then
    begin
      passagem := 28;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem) ;
    end
  else
  if (cb_origem.ItemIndex=2) and (cb_destino.ItemIndex=1) then
    begin
      passagem := 28;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem);
    end
  else
  if (cb_origem.ItemIndex=0) and (cb_destino.ItemIndex=2) then
    begin
      passagem := 208;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem);
    end
  else
  if (cb_origem.ItemIndex=0) and (cb_destino.ItemIndex=2) then
    begin
      passagem := 208;
      txt_passagem.Text := formatfloat('R$ 0.00', passagem);
    end;
  //Calculando o preço do seguro
  if (rg_seguro.ItemIndex=0) then
    begin
      seguro := 1.5;
      txt_seguro.Text := formatfloat('R$ 0.00', seguro);
    end
  else
    begin
      txt_seguro.Text := formatfloat('R$ 0,00',seguro);
    end;
  //calcular e mostrar os valores finais
  total := passagem+seguro;
  txt_total.Text := formatfloat('R$ 0.00', total);
end;
procedure TForm1.btn_limparClick(Sender: TObject);
begin
  txt_passagem.clear;
  txt_seguro.Clear;
  txt_total.Clear;
  cb_origem.ItemIndex := -1 ;
  cb_destino.ItemIndex := -1 ;
  rg_seguro.ItemIndex :=-1;
  end;

end.
