domingo, junho 01, 2014

Entrada e saída simples em modo gráfico com Visual C++/CLI

Enquanto que no Visual Basic e no Visual C# você tem o conforto de apenas entrar algumas linhas de código para ver sua aplicação funcionar, no Visual C++/CLI você tem o trabalho de criar seu formulário e todos os controles necessários (no caso, rótulos, caixas de texto e botões).  Mas observe que o código, presente nos métodos AcionaBotao, é praticamente o mesmo.

#pragma once
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;

namespace EntradaSaida
{
public ref class Tela: public Form
{
private:
Label^ lblNome;
Label^ lblSaida;
Label^ lblSobreNome;
Button^ cmdSair;
Button^ cmdEntrar;
Button^ cmdConcatenar;
Button^ cmdLimpar;
TextBox^ txtNome;
TextBox^ txtSobreNome;
TextBox^ txtSaida;
void CriaRotulo1();
void CriaRotulo2();
void CriaRotulo3();
void CriaBotao1();
void CriaBotao2();
void CriaBotao3();
void CriaBotao4();
void CriaTexto1();
void CriaTexto2();
void CriaTexto3();
void AcionaBotao1(Object^ obj, EventArgs^ ea);
void AcionaBotao2(Object^ obj, EventArgs^ ea);
void AcionaBotao3(Object^ obj, EventArgs^ ea);
void AcionaBotao4(Object^ obj, EventArgs^ ea);

public:
Tela()
{
lblNome = gcnew Label;
lblSobreNome = gcnew Label;
lblSaida = gcnew Label;
cmdEntrar = gcnew Button;
cmdConcatenar = gcnew Button;
cmdLimpar = gcnew Button;
cmdSair = gcnew Button;
txtNome = gcnew TextBox;
txtSobreNome = gcnew TextBox;
txtSaida = gcnew TextBox;

Text = "Entrada e Saída Simples";
Size = ::Size(310, 350);
FormBorderStyle = ::FormBorderStyle::Fixed3D;
StartPosition = FormStartPosition::WindowsDefaultLocation;
MaximizeBox = false;
MinimizeBox = false;

CriaRotulo1();
CriaRotulo2();
CriaRotulo3();
CriaBotao1();
CriaBotao2();
CriaBotao3();
CriaBotao4();
CriaTexto1();
CriaTexto2();
CriaTexto3();
return;
}
};
void Tela::CriaRotulo1()
{
lblNome->AutoSize = true;
lblNome->Text = "Nome :";
lblNome->Location = ::Point(20,20);
Controls->Add(lblNome);
return;
}
void Tela::CriaRotulo2()
{
lblSobreNome->AutoSize = true;
lblSobreNome->Text = "Sobrenome :";
lblSobreNome->Location = ::Point(20, 50);
Controls->Add(lblSobreNome);
return;
}
void Tela::CriaRotulo3()
{
lblSaida->AutoSize = true;
lblSaida->Text = "";
lblSaida->Location = ::Point(20,150);
Controls->Add(lblSaida);
return;
}
void Tela::CriaTexto1()
{
txtNome->Size = ::Size(100, 25);
txtNome->Location = ::Point(100, 20);
Controls->Add(txtNome);
return;
}
void Tela::CriaTexto2()
{
txtSobreNome->Size = ::Size(100, 25);
txtSobreNome->Location = ::Point(100, 50);
Controls->Add(txtSobreNome);
return;
}
void Tela::CriaTexto3()
{
txtSaida->Size = ::Size(200, 25);
txtSaida->Location = ::Point(20,200);
Controls->Add(txtSaida);
return;
}
void Tela::CriaBotao1()
{
cmdEntrar->Text = "Entrar";
cmdEntrar->Height = 25;
cmdEntrar->Width = 75;
cmdEntrar->Location = ::Point(20,80);
cmdEntrar->Click += gcnew EventHandler(this, &Tela::AcionaBotao1);
Controls->Add(cmdEntrar);
return;
}
void Tela::AcionaBotao1(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = txtNome->Text + txtSobreNome->Text;
txtSaida->Text = txtNome->Text + txtSobreNome->Text;
txtNome->Focus();
return;
}
void Tela::CriaBotao2()
{
cmdConcatenar->Text = "Concatenar";
cmdConcatenar->Height = 25;
cmdConcatenar->Width = 75;
cmdConcatenar->Location = ::Point(110,80);
cmdConcatenar->Click += gcnew EventHandler(this, &Tela::AcionaBotao2);
Controls->Add(cmdConcatenar);
return;
}
void Tela::AcionaBotao2(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = txtNome->Text + " " + txtSobreNome->Text;
txtSaida->Text = txtNome->Text + " " + txtSobreNome->Text;
txtNome->Focus();
return;
}
void Tela::CriaBotao3()
{
cmdLimpar->Text = "Limpar";
cmdLimpar->Height = 25;
cmdLimpar->Width = 75;
cmdLimpar->Location = ::Point(200,80);
cmdLimpar->Click += gcnew EventHandler(this, &Tela::AcionaBotao3);
Controls->Add(cmdLimpar);
return;
}
void Tela::AcionaBotao3(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = "";
txtSaida->Text = "";
txtNome->Clear();
txtSobreNome->Clear();
txtNome->Focus();
return;
}
void Tela::CriaBotao4()
{
cmdSair->Text = "Sair";
cmdSair->Height = 25;
cmdSair->Width = 60;
cmdSair->Location = ::Point(200,250);
cmdSair->Click += gcnew EventHandler(this, &Tela::AcionaBotao4);
Controls->Add(cmdSair);
return;
}
void Tela::AcionaBotao4(Object^ obj, EventArgs^ ea)
{
Application::Exit();
return;
}
}

Nenhum comentário:

Mídia golpista hoje

Domingo é dia de folhear os jornalões e tentar entender o que a máfia dos barões da mídia está querendo que a gente acredite. O Globo, en...