Orientação a Objetos - Programação em C++



Documentos relacionados
Orientação a Objetos - Programação em C++

Selecione o WPF Application dentro de Templates > Visual C# > Windows

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

Sobre o Visual C

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

PRDS C#.Net Alexandre L. Silva

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

Orientação a Objetos - Programação em C++

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Visual Basic.NET Image Lists, Tree e List Views, Toolbars, Status e Progress Bars e Tab Controls Lista de Exercícios

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Professor Leo Larback Esta apresentação pode ser baixada livremente no site

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Consulta de endereço através do Cep

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Tarefa Orientada 3 Aplic. Manutenção de Produtos Text Box

Criação de uma aplicação Web ASP.NET MVC 4

Aula 01. Prof. Diemesleno Souza Carvalho

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Formação ASP.NET MVC com C#

Orientação a Objetos Programação em C++

Windows Forms Applications - Introdução. Prof. Robinson Alves IFRN

05 Como utilizar POO no ambiente gráfico do C#?

Escola Olímpio Curso: Técnico em Informática. Introdução e instalação

Introdução ao C# com o Microsoft Visual Studio Community 2015

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Trabalhando com ToolStrip, ToolTip e StatusStrip

Orientação a Objetos - Programação em C++

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Introdução ao IDE Netbeans (Programação Java)

Microsoft Visual Studio Community 2013

Abstract. Resumo. Palavras-chave: Web Service, Visual C#, Web Server.

Introdução a Tecnologia da Informação

GRUPO: Rafael Igor Vanderlei Vieira

Adicionar uma figura, como um botão Submeter, a um formulário

Framework.NET. Linguagem de Programação III. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo

Microsoft PowerPoint

Tutorial de Aplicação Simples usando Web Forms e MySQL. Luiz Eduardo Guarino de Vasconcelos

Introdução à Engenharia ENG1000

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Programação em C#.Net 4.0 com Mobile Apps

TUTORIAL PROCESSOS DE INSTALAÇÃO DO MYMIX MOBILE

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

A configuração é bem simples e é feita através de um painel onde cada gesto é associado a um comando do NetBeans.

REP idx Manual do desenvolvedor

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Guia e Utilização do Visual Studio.NET 2003

Allegro.Net - Uma Biblioteca Gráfica Allegro para a Plataforma Microsoft.Net

Trabalhando com menus e caixas de diálogos

OO Engenharia Eletrônica

Carlos Eduardo Batista. Centro de Informática - UFPB

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

LISTA DE EXERCÍCIOS Prof. Daniel de Souza Gomes Aula extra 26/03/2011

NIVELAMENTO DE INFORMÁTICA. Professor: Cleber Semensate

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Aula 2 Even e to t s d o M ouse

Curso Técnico em Informática. Sistema Educacional Galileu. A interface do PowerPoint. Barra do Título. Barra de Menu. Barra de Formatação

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Conhecendo o Delphi 2010

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

QBalança Biblioteca de comunicação com balanças

Laboratório 01 NetBeans

Usando o Tux Paint. Ícone TuxPaint. A tela principal é dividida em seções, cada uma com sua finalidade:

Criar e formatar relatórios

Configure TeraLib 3.3 no Visual Studio João Tácio Corrêa da Silva

Programação científica C++

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Transcrição:

OO- Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 17: Programação Visual ou Orientada a Objetos Gráficos (Formulários, Botões, Caixas de Texto etc) Exemplificado em Microsoft Visual C++ Express Edition. Prof. Jean Marcelo SIMÃO Aluno: Vagner Vengue

Programação Visual. Estudar os códigos de exemplo. Entender que objetos gráficos são relacionados com código especial em C++. Entender que este código C++ especial serve para tratar os eventos sobre objetos gráficos. Entender que, em um projeto correto, o código essencial do sistema é o mais independente possível do código relacionado a objetos gráficos. No ProjetoOOJanelaExemplo é tratada a classe Universidade e o seu Relacionamento para com a classe Departamento. De forma análoga, tratar as demais classes existentes nas versões precedentes do sistema de universidade (Disciplina, Alunos etc).

- Ambiente Rapid Application Development (RAD). - Ambiente visual: Button, TextBox, CheckBox, ComboCox, Label etc... - Pode ser usado código gerenciado (Microsoft.NET Framework): - Tecnologia Baseada em Máquina Virtual. - CLR (Common Language Runtime), torna C++ uma linguagem semi-compilada. - Conjunto rico de bibliotecas. -Pode ser usado código não gerenciado: - Usufrui-se do Visual C++ como gerenciador de projetos e compilador, porém, perde-se todo os recursos do.net (inclusive gráficos).

Exemplo de Introdução

Click direito

#pragma once namespace Exemplo01 { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Summary for Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // TODO: Add the constructor code // here protected: /// <summary> /// Clean up any resources being used. /// </summary> ~Form1() { if (components) { delete components; private: /// <summary> /// Required designer variable. /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { this->suspendlayout(); // // Form1 // this->autoscaledimensions = System::Drawing::SizeF(6, 13); #pragma endregion ; Código automaticamente pelo Visual Studio gerado this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(488, 194); this->name = L"Form1"; this->text = L"Form1"; this->resumelayout(false);

Para adicionar um novo componente, basta selecioná-lo na caixa de ferramentas e arrastar para a janela.

// // button1 // this->button1->location = System::Drawing::Point(184, 127); this->button1->name = L"button1"; this->button1->size = System::Drawing::Size(75, 23); this->button1->tabindex = 0; this->button1->text = L"button1"; this->button1->usevisualstylebackcolor = true; this->button1->click += gcnew System::EventHandler(this, &Form1::button1_Click); // // Form1 // this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(488, 194); this->controls->add(this->button1); this->name = L"Form1"; this->text = L"Form1"; this->resumelayout(false); #pragma endregion private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) { ; Código adicionado automaticamente para o design do botão. Código adicionado automaticamente para o evento do botão.

Para compilar e executar, pressione F5.

ProjetoOOJanelaExemplo

Propriedades Propriedades - Através da caixa de propriedades, pode-se definir as características de cada componente, tais como nome, cor, posição na tela, tamanho, imagem de fundo etc... - É uma boa prática de programação sempre definir características básicas, como o nome, o título (para telas) ou texto (para botões).

Eventos Selecionado Eventos - É uma ação externa ao programa, por exemplo: um click de mouse, uma tecla pressionada, um movimento da tela, uma tela abrindo ou fechando. - Com um duplo click sobre o componente é selecionado o evento padrão, onde pode-se inserir o código a ser executado quando o evento ocorrer.

Click de mouse do button1 Eventos private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) { listboxuniversidades->items->clear(); objeto_principal->iteradorluniversidades = objeto_principal->luniversidades.begin(); - Quando o evento é selecionado, é adicionado automaticamente à classe o método que trata o evento. - Pode-se usar tanto as classes do.net, quanto as classes padrões da API Win32. - O objeto e que é passado como parâmetro traz informações sobre o evento ocorrido e pode ser utilizado no código. Um exemplo é a posição (x, y) do mouse quando ele sobrepõe um componente. while (objeto_principal->iteradorluniversidades!= objeto_principal->luniversidades.end()) { string aux; aux = (*(objeto_principal->iteradorluniversidades))->getnome(); String^ NomeUniv = gcnew System::String(aux.data()); listboxuniversidades->items->add(nomeuniv); objeto_principal->iteradorluniversidades++;

Agregação de Janelas (objetos) public: Principal* objeto_principal; AdicionaUniversidade^ adduniv; // soh aceita ponteiros private: System::Void button2_click(system::object^ sender, System::EventArgs^ e) { if (!adduniv) { adduniv = gcnew AdicionaUniversidade(); adduniv->setprincipal(objeto_principal); //adduniv->mdiparent = this; adduniv->limpatextbox1(); adduniv->show(); adduniv->bringtofront(); Declaração de um ponteiro para a janela a ser chamada. Verifica se a janela ainda não foi criada ou esta fechada e instancia o objeto (aloca memória). Mostra a janela. Importante: - Sempre que apagar um método de evento no código, lembrar de apagar o seu nome na caixa de propriedades.

Exemplo com figuras geométricas

Exemplo com desenhos - Pode-se utilizar as classes do.net para desenhar, pintar ou até mesmo carregar figuras na tela. - Neste exemplo é mostrado uma forma simples de como redefinir o método padrão de pintura da janela.

Exemplo com desenhos System::Void frm_desenhos_desenha(system::object^ sender, System::Windows::Forms::PaintEventArgs^ e) { Graphics^ g = e->graphics; Pen^ pen = gcnew Pen(Color::Blue, 4); // cria uma caneta; int x, y; x = 10; y = 10 + valor_aumentar; g->drawellipse(pen, x, y, 50, 50); x += 100; //y += valor_aumentar; g->drawline(pen, x, y, x+50, y); // desenha uma elipse; // desenha uma linha; x += 100; //y += valor_aumentar; g->drawrectangle(pen, x, y, 50, 60); // desenha um retângulo; delete pen; private: System::Void btn_mover_click(system::object^ sender, System::EventArgs^ e) { // incrementa um valor para a posição y dos desenhos; valor_aumentar += 10; // repinta a tela; this->refresh(); - Este método utiliza o argumento de evento: e.

Exemplo com desenhos // // frm_desenhos_desenha // this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(527, 437); this->controls->add(this->btn_mover); this->name = L"frm_Desenhos_Desenha"; this->text = L"Tela de desenhos"; this->resumelayout(false); // acrescenta a função criada às funções padrões; this->paint += gcnew System::Windows::Forms::PaintEventHandler(this, &frm_desenhos::frm_desenhos_desenha); - Para controlar o modo de pintura da janela, precisa-se modificar um evento do programa, ou melhor, adicionar funcionalidades ao método que já existe para desenhar a janela. - Conforme mostra o código acima, para o exemplo foi incrementado o método de evento Paint, usando-se um manipulador de eventos (forma padrão do.net) para indicar ao evento existente qual a função a ser adicionada e o seu emissor (representada pelo ponteiro this). - Para os métodos de evento gerados em modo design, esse código é gerado automaticamente, mas nada impede que se manipule eventos manualmente, como foi feito nesse exemplo.