terça-feira, 2 de outubro de 2012

Lazarus - Componente RadioButton

Monte um formulário com 3 label, 3 edit, 3 botton e 4 radiobutton.

Alterar a propriedade Name:

Form1 = FrmCalculadora
Label1 = LblN1
Label2 = LblN2
Label3 =LblResultado
Edit1 = EdtN1
Edit2 = EdtN2
Edit3 = EdtResultado
Button1 = BtnCalcular
Button2 = BtnLimpar
Button3 = BtnSair
RadioButton1 = RdBtnSoma
RadioButton2 = RdBtnSubtracao
RadioButton3 = RdBtnMultiplicacao
RadioButton4 = RdBtnDivisao

Após alteras a propriedade Name dos Componentes o Formulário e o Object Inspector terá a seguinte aparência


Alterar as propriedades Caption / text:

FrmCalculadora: caption = Calculadora
LblN1: caption = Número 1
LblN2: caption = Número 2
LblResultado: caption = Resultado
EdtN1: text = vazio (em branco)
EdtN2: text = vazio (em branco)
EdtResultado: text = vazio (em branco)
BtnCalcular: caption = Calcular
BtnLimpar: caption = Limpar
BtnSair: caption = Sair
RdBtnSoma: caption = Soma
RdBtnSubtracao: caption = Subtração
RdBtnMultiplicacao: caption = Multiplicação
RdBtnDivisao: caption = Divisão

Após alteras a propriedade Caption/Text dos Componentes o Formulário e o Object Inspector terá a seguinte aparência:






Alterar a propriedade ReadOnly do EdtResultado para True. Com isso, esse componente terá a capacidad3e de apresentar um valor, não permitindo a sua alteração.

Para programar o botão Calcular, duplo clique nesse botão. Inserir o código:

=======================================================
procedure TFrmCalculadora.BtnCalcularClick(Sender: TObject);
Var A, B, R : real;
begin
  if ((EdtN1.text = '') or (EdtN2.text = ''))
    then ShowMessage ('Preencha os campos número 1 e o númer 2')
    else
    begin
      A := StrToFloat(EdtN1.text);
      B := StrToFloat(EdtN2.text);
      if (RdBtnSoma.checked)
        then R := A + B
        else if (RdBtnSubtracao.checked)
          then R := A - B
          else if (RdBtnMultiplicacao.checked)
            then R := A * B
            else if (RdBtnDivisao.checked)
              then if (B = 0)
                then
                begin
                  EdtResultado.text := 'Erro';
                  ShowMessage('Número 2 deve ser diferente de zero');
                end
                else R := A / B;
  end;
  if (RdBtnDivisao.checked=false)or(b<>0)
    then EdtResultado.text := FormatFloat('0.00;-0.00;zerado', R);
  if ((EdtN1.text = '') or (EdtN2.text = ''))
    then EdtResultado.text := '';
  EdtN1.setFocus;
end;
=======================================================

Para programar o botão Sair e Limpar.

Duplo clique no botão Sair:
=======================================================
Close
=======================================================

Duplo clique no botão Limpar:
=======================================================
EdtN1.text := '';
EdtN2.text := '';
EdtResultado.text := '';
RdBtnSoma.Checked := True
=======================================================

Referência


MANZANO, José Augusto Navarro Garcia; MENDES, Sandro Santa Vicca. Estudo dirigido de Delphi 7. São Paulo: Érica, 2003.

Nenhum comentário:

Postar um comentário