Ex 7) Utilizar um objeto do tipo "TMemo" para resumir dados de vários campos existentes no formulário ilustrado a seguir.

 

·        Para as opções de Sexo e Estado Civil, utilize objetos do tipo TRadioGroup.

·        Para criar os botões de rádio “Masculino” e “Feminino” clique na propriedade Items do RadioGroup1 e digite as opções no “String List Editor”. NÃO utilize objetos do tipo TRadioButton.

·        Faça o mesmo para o RadioGroup2, digitando as opções de Estado Civil.

·        Para limpar o conteúdo inicial do Memo1 utilize também o “String List Editor” na propriedade Lines. NÃO apague a propriedade Name.

 

//---------------- Botão OK -------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

  Memo1->Clear();

  Memo1->Lines->Add("Nome: "+Edit1->Text);

  Memo1->Lines->Add("Endereço: "+Edit2->Text);

  Memo1->Lines->Add("Telefone: "+Edit3->Text);

  if (RadioGroup1->ItemIndex == 0)

    Memo1->Lines->Add("Sexo: Masculino");

  else

    if (RadioGroup1->ItemIndex == 1)

      Memo1->Lines->Add("Sexo: Feminino");

    else

      Memo1->Lines->Add("Sexo: indefinido");

  switch (RadioGroup2->ItemIndex)

  {

    case 0:

      Memo1->Lines->Add("Estado Civil: Solteiro");

      break;

    case 1:

      Memo1->Lines->Add("Estado Civil: Casado");

      break;

    case 2:

      Memo1->Lines->Add("Estado Civil: Desquitado");

      break;

    case 3:

      Memo1->Lines->Add("Estado Civil: Divorciado");

      break;

    case 4:

      Memo1->Lines->Add("Estado Civil: Viúvo");

      break;

    case 5:

      Memo1->Lines->Add("Estado Civil: Outro");

      break;

    default:

      Memo1->Lines->Add("Estado Civil: indefinido");

  }

  if (!CheckBox1->Checked)

    Memo1->Lines->Add("Sem Filhos");

  else

    Memo1->Lines->Add("Com "+Edit4->Text+"

                      Filho(s)");

}

 

//---------------- Botão Limpar ---------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

  Memo1->Clear();

  Edit1->Clear();  Edit2->Clear();

  Edit3->Clear();  Edit4->Clear();

  RadioGroup1->ItemIndex = -1;

  RadioGroup2->ItemIndex = -1;

  CheckBox1->Checked = false;

  Label4->Hide();  Edit4->Hide();

}

//---------------- Botão Sair -----------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

  Close();

}

 

//---------------- Checkbox1 ------------------------

void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

  if (CheckBox1->Checked)  // igual a true

  {

    Label4->Visible = true;

    Edit4->Visible = true;

  }

  else                     // igual a false

  {

    Label4->Visible = false;

    Edit4->Visible = false;

  }

}

 

O procedimento do Click do CheckBox1 também poderia ser escrito da seguinte forma:

 

//---------------- Checkbox1 ------------------------

void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

  Label4->Visible = CheckBox1->Checked;

  Edit4->Visible = CheckBox1->Checked;

}

 

Comentário: Nesta segunda solução, como as propriedades Visible e Checked são do mesmo tipo (true ou false), podemos fazer uma atribuição direta, evitando a utilização do comando condicional.