58
Linguagem Avançada C++ Builder Prof. Wdson de Oliveira Local: Fatec Jahu Fevereiro-2011

Aula1 c++ builder

Embed Size (px)

DESCRIPTION

aula de C++ Builder 6

Citation preview

Page 1: Aula1   c++ builder

Linguagem Avançada C++ Builder

Prof. Wdson de OliveiraLocal: Fatec JahuFevereiro-2011

Page 2: Aula1   c++ builder

Objetivo do curso

Fornecer o conhecimento básico do ambiente de programação visual C++ Builder e de seus principais componentes para o desenvolvimento de aplicações.

Page 3: Aula1   c++ builder

Sobre o curso

Serão abordados os conceitos básicos de:programação OOprogramação orientada a eventos;programação visual.

Serão utilizados os principais componentes (objetos) da linguagem.

Page 4: Aula1   c++ builder

Programação Orientada a Objetos

Page 5: Aula1   c++ builder

Programação Orientada a Objetos

Uma classe é uma abstração para agrupar determinados dados e manipulá-los de forma coerente. Em geral uma classe possui os seguintes elementos:Propriedades /AtributosMétodosEventos

Page 6: Aula1   c++ builder

Programação Orientada a Objetos

Propriedade de uma classe é um valor. Seja ele numérico, data, caracter ou qualquer outro tipo

Método é uma operação que é realizada sobre as propriedades de uma classe.

Uma classe pode possuir vários estados. Quando um destes estados muda, é acionado um evento associado a esta mudança.

Page 7: Aula1   c++ builder

O Ambiente C++ Builder

Page 8: Aula1   c++ builder

Tela Principal do Builder

Page 9: Aula1   c++ builder

SpeedBar é uma barra de ferramenta que contém botões para a execução das atividades mais utilizadas para estas opções estão contidas no Menu do Builder.

Tela Principal do Builder

Menu do Builder

Page 10: Aula1   c++ builder

Tela Principal do Builder

Os componentes da página selecionada

Guia ou Páginas

Page 11: Aula1   c++ builder

Tela Principal do Builder

Guia de propriedades do Inspetor de Objetos (Object Inspector). Esta Guia especifica as propriedades do objeto selecionado.

Guia de eventos do Inspetor de Objetos (Object Inspector)

Neste ComboBox(Caixa de Combinação) temos relacionados todos os objetos do formulário, o nome do objeto que aparece selecionado é o objeto no qual o object Inspector esta exibindo suas propriedades.

Page 12: Aula1   c++ builder

Criando um projeto

O Builder trabalha com projeto e com os formulários vinculados ao projeto. “O projeto é o programa; os formulários vinculados ao

projeto são as janelas ou seções“.

Ao salvar um projeto, supondo-se que este projeto seja salvo com o nome de “Projeto”, o Builder salvará o projeto na pasta especificada e irá gerar os seguintes arquivos : Projeto.bpr Projeto.res Projeto.cpp

Page 13: Aula1   c++ builder

Criando um projeto

Projeto.bpr neste arquivo tem informações da versão do builder, formulários que estão ligados ao projeto, etc...

Projeto.res este é um arquivo de recurso do Builder

Projeto.cpp neste arquivo está a função principal(WinMain) do projeto, que por sua vez inicializa a execução do projeto e a criação de todos os formulários em tempo de execução.

Page 14: Aula1   c++ builder

Criando um projeto

Depois de salvar o projeto iremos salvar o formulário com o nome de “Form” como “frm”, gerando os seguintes arquivos :

frm.cpp possui o código que foi inserido pelo usuário nos evento dos objetos.

frm.h neste arquivo está definido a classe do formulário e a declaração de todos os objetos colocados no formulário.

frm.dfm possui a imagem do formulário.

Page 15: Aula1   c++ builder

O projeto: Backup

O Builder cria cópia dos arquivos do formulário que neste caso são : frm.~cpp, frm.~h e frm.~dfm.

Ao salvar um projeto o Builder cria mais três arquivos que são : Projeto.~bpr, Projeto.~res e Projeto.~cpp.

Page 16: Aula1   c++ builder

Menus do Builder

Page 17: Aula1   c++ builder

Menu File: New

Exibe a caixa de dialogo “New ”, que provê acesso para um novo formulários, nova aplicação para ser desenvolvida pelo usuário a partir do zero, etc.

Page 18: Aula1   c++ builder

Menu File: New - Application

Esta opção está disponível na caixa de diálogo da opção New do Menu File, a finalidade desta opção é gerar uma nova aplicação sem nada nela desenvolvida para que usuário possa desenvolver o seu sistema da maneira como quiser.

Page 19: Aula1   c++ builder

Menu File: New Form

Através desta opção pode-se adicionar um novo formulário em um projeto.

Page 20: Aula1   c++ builder

Menu Project

Page 21: Aula1   c++ builder

Menu Project: Add to Project

Esta opção abre a caixa de diálogo a seguir :

Page 22: Aula1   c++ builder

Menu Project: Add to Project

Use esta caixa de diálogo para adicionar uma unit existente e seu formulário ao projeto atualmente aberto no C++ Builder.

Quando você adiciona uma unit no projeto, o C++ Builder automaticamente faz referências da unit adicionando uma declaração de #include para o projeto no arquivo de extensão .BPR.

Page 23: Aula1   c++ builder

Menu Project: Remove from Project

Use esta caixa de diálogo para selecionar um ou mais unit que deseja remover do projeto atual. Quando você seleciona uma unit e clica em OK, C++ Builder remove a unit selecionada (os arquivos .CPP, .H e .DFM) do projeto atual mas não apaga nenhum arquivo de seu disco.

Page 24: Aula1   c++ builder

Menu Project: Add to Repository

Use este comando para somar projetos, códigos, e formulários para o Repository de Object.

É útil em situações onde você usa muito um formulário.

Adicionando este formulário no Repository Object, depois através da opção New do Menu File você poderá incluir o seu formulário sem ter que fazê-lo de novo.

Page 25: Aula1   c++ builder

Menu Project: Options

Page 26: Aula1   c++ builder

Menu Project: Options

Use as páginas(guias) desta janela de diálogo para especificar Forms, Application, Compile, Linker, C++, etc

Forms Controlam os formulário criados. Através da opção Main Form podemos especificar qual formulário será executado primeiro em um projeto com mais de um formulário.

Application Especifica o título(Title), nome de arquivo de ajuda(Help File), e nome de ícone associados com a aplicação(Load Icon).

Page 27: Aula1   c++ builder

Menu Project: Options

Compile especifica as opções gerais para os C++ compilador interruptores que detemina como código deve ser compilado.

Advance Compile Especifica opções adicionais para o compilador de C++.

C++ Especifica opções do compilador C++.

Page 28: Aula1   c++ builder

Menu Project: Options

Pascal Especifica opções do compilador de Objeto Pascal

Linker Gerencia como seus arquivos de programa são Linkados

Directories/Conditionals Especifica a localização de arquivos necessários para compilar e Linkar seu programa

Page 29: Aula1   c++ builder

Menu Project: Options

VersionInfo Especifica as informação de identificação do produto

Packages Especificam os pacotes com os objetos estão instalados

Tasm Configura os parâmetros e âmbito para o montador de turbo Assembly

Page 30: Aula1   c++ builder

Menu Run

Page 31: Aula1   c++ builder

Menu Run

Run : utilizada para compilar e linkar a sua aplicação e logo após executa o programa. Se o compilador encontra um erro, exibe uma caixa de diálogo de Erro; Não encontrando nenhum erro de sintaxe no código do programa o compilador constrói um arquivo executável

Program Reset : É utilizado para terminar a execução do programa atual e retira da memória um programa na qual ocorreu um erro em tempo de execução.

Page 32: Aula1   c++ builder

Menu Database

Explore : Executa o Explore(Explorador de Banco de dados ou Explorador de SQL). Ambas as ferramentas lhe deixarão : criar, visualizar, e editar dados e pseudônimos de BDE. Explorador de SQL permite examinar bancos de dados locais e distantes.

Form Wizard : Esta opção permite criar um formulário que exibe dados de um banco de dados sem muito trabalho.

Page 33: Aula1   c++ builder

Menu tools

Database Desktop : Executa o Database Desktop que é uma ferramenta utilizada para criar e reestruturar tabelas de um banco de dados. Você pode trabalhar com elas em Paradox, dBASE, e formatos de SQL.

Image Editor : aplicativo utilizado para criar imagem para objetos que você criou, para criar ícones, arquivos bitmap, etc...

Configure Tools : Nos permite configurar as opções do Menu Tools.

Page 34: Aula1   c++ builder

Object Inspector

Page 35: Aula1   c++ builder

Object Inspector (OI)

Permite visualizar rapidamente as propriedades e eventos de um determinado objeto, mostrando ainda de qual classe ele pertence.

Para verificar as propriedades de um determinado objeto, basta clicar no objeto em que se esta trabalhando, e o OI alternará para as propriedades e eventos deste objeto.

Page 36: Aula1   c++ builder
Page 37: Aula1   c++ builder

Figura do Object Inspector

à esquerda temos as propriedades do objeto Edit1 (classe TEdit), já no lado direito temos o Object Inspector mostrando os métodos deste mesmo objeto.

Page 38: Aula1   c++ builder

Primeiro Projeto

Page 39: Aula1   c++ builder

Soma dois números

Para a construção deste programa iremos precisar de três componentes (ou classes):TEdit;TButton e;TLabel

Page 40: Aula1   c++ builder

Classe TEdit Propriedades:

Name. é o nome do objeto. Todo objeto precisa ter um nome, para ser referenciado

Text. guarda o conteúdo digitado, ou o conteúdo para ser mostrado na tela

ReadOnly. aceita os valores true/false, caso o valor seja true, o usuário não poderá digitar nenhum valor neste objeto.

Visible. pode receber os valores true/false, caso o valor seja true o objeto será mostrado na tela.

Page 41: Aula1   c++ builder

Classe TEdit

Métodos:SelectAll. seleciona todo o conteúdo do objetoCopyToClipboard. copia o conteúdo

selecionado do objeto para a área de ClipboardPasteFromClipboard. cola o conteúdo da área

de Clipboard na propriedade Text do objetoClear. limpa o conteúdo da propriedade Text.SetFocus. fará com que o cursor seja

posicionado neste objeto.

Page 42: Aula1   c++ builder

Classe TEdit

Eventos: OnChange. é acionado quando a uma mudança na

propriedade Text ocorrer, ou seja, quando houver uma mudança nesta propriedade o evento OnChange é acionado.

OnEnter. é acionado quando o Focus da aplicação é passado para esse objeto, ou seja, quando entra no objeto.

OnExit. ao contrário do evento OnEnter é acionado na saída do objeto.

Page 43: Aula1   c++ builder

Exemplos Classe TEdit

Edit1 e Edit2 são objetos da classe TEdit Exemplo 1:

Igualar a propriedade Text de dois objetos Edit1->Text = Edit2->Text;

Exemplo 2: Igualar a propriedade Text de dois objetos, só que

utilizando métodosEdit2->SelectAll();Edit2->CopyToClipboard();Edit1->Clear();Edit1->PasteFromClipboard();Edit1->SetFocus();

Page 44: Aula1   c++ builder

Exemplos Classe TEdit Exemplo 3:

Mostrar uma mensagem na tela se o conteúdo da propriedade Text do objeto Edit1 for alterado.

clicar no objeto Edit1, ir no Object Inspector, selecionar Events (eventos), dar dois cliques no evento OnChange, que o C++ Builder criará uma procedure, que deverá ser chamada toda vez que ocorrer uma mudança na propriedade Text.

Dentro desta procedure, nós podemos escrever qualquer comando, como por exemplo:

Page 45: Aula1   c++ builder

Exemplos Classe TEdit

ShowMessage(“Houve uma alteração de valor”); /* A função ShowMessage mostra uma mensagem qualquer na tela */

A implementação completa ficaria assim:void __fastcall TForm1::Edit1Change(TObject

*Sender){

ShowMessage("Houve uma alteração de valor");}

Page 46: Aula1   c++ builder

Classe TButton

Propriedades: Caption. A propriedade Caption fará com que seja

mostrado o nome indicado no botão. Enabled. Esta propriedade pode receber os valores

true/false. Caso o valor seja true, o objeto pode ser acionado normalmente com um click do mouse. Caso a propriedade seja false, o click do mouse não fará efeito algum. O objeto estará desabilitado até que a propriedade seja alterada.

Page 47: Aula1   c++ builder

Classe TButton

Métodos:SetFocus. A funcionalidade é a mesma do

método SetFocus de TEdit Eventos:

OnClick. O evento OnClick será acionado quando o usuário clicar no botão.

Page 48: Aula1   c++ builder

Exemplos Classe TButton Exemplo 1:

Colocar o texto “Calcular” no botão Button1. Button1->Caption = “Calcular”;

Exemplo 2: Mostrar a mensagem “Você clicou no botão” quando Button1 for

pressionado. O botão ser pressionado significa que aconteceu o evento

OnClick dentro de Button1. Logo dentro deste evento basta colocarmos o comando ShowMessage(“Você clicou no botão”). O comando completo:

void __fastcall TForm1::Button1Click(TObject *Sender){

ShowMessage("Você clicou no botão");}

Page 49: Aula1   c++ builder

Classe TLabel

Propriedades:

Caption. A propriedade Caption fará com que seja mostrado o nome indicado no label.

Page 50: Aula1   c++ builder

Agora já estamos prontos para fazermos a nossa primeira

implementação.....

Page 51: Aula1   c++ builder

Código Fonte: arquivos gerados Project1.bpr gerado automaticamente. Guarda os

parâmetros de compilação para o programa, bem como os endereços de bibliotecas;

Project1.cpp gerado automaticamente e não precisa ser alterado. É a partir dele que as Unit´s serão chamadas

Unit1.dfm gerado a partir das definições de objeto que o usuário vai fazendo na tela, ou seja, basta o usuário ir posicionando os objetos na ordem que desejar, com suas respectivas propriedades e eventos, que o arquivo vai sendo gerado automaticamente;

Unit1.cpp conterá o programa propriamente dito que possibilitará a soma dos dois números.

Unit1.h Este arquivo também é gerado automaticamente, e constitui os cabeçalhos e funções, procedures e declaração de objetos. Para funções definidas pelo programador, ele precisará sofrer pequenas alterações. Não é o caso neste exemplo.

Page 52: Aula1   c++ builder

Arquivo Unit1.dfm

As definições de tela são armazenadas no arquivo com a extensão dfm.

O Objeto Form1 é da classe TForm, e é a tela onde serão colocados os outros objetos.

Os objetos Label1, Label2 e Label3 são da classe TLabel, e foram utilizados para escrever um conteúdo na tela.

Page 53: Aula1   c++ builder

Arquivo Unit1.dfm

Os objetos Edit1, Edit2 e Edit3 são da classe TEdit e foram utilizados para a entrada e a saída dos resultados.

O objeto Button1 da classe TButton, que foi o objeto utilizado para realizar a operação de soma.

Page 54: Aula1   c++ builder

Nossa tela

Label1

Label2

Button1

Label3

Edit1

Edit2

Edit3

Form1

Page 55: Aula1   c++ builder

Arquivo Unit1.cpp Neste arquivo, devemos incluir o que queremos

que o nosso programa faça.

Faremos isto no evento OnClick do objeto Button1, ou seja, quando o usuário clicar no botão executaremos uma determinada ação.

Para fazermos isso, basta o usuário dar dois cliques em Button1, que este criará a função Button1Click, associada ao evento OnClick deste botão. Agora basta escrevermos o que desejamos que a função faça:

Page 56: Aula1   c++ builder

Arquivo Unit1.cpp

/* Cria uma variável R (maiúscula) que armazenará valores reais */float R;

/* A função StrToFloat converte uma String em um número real, como a propriedade Text do objeto Edit1 é do tipo String, esta conversão torna-se necessária. O mesmo ocorre com Edit2 */

R = StrToFloat(Edit1->Text) + StrToFloat(Edit2->Text);

/* Já a função FloatToStr faz exatamente o contrário, ou seja, converte um número real em uma String, para poder ser exibida no objeto Edit3, na propriedade Text */

Edit3->Text = FloatToStr(R);

Page 57: Aula1   c++ builder

Listagem completa do programa

//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ float R; R = StrToFloat(Edit1->Text) + StrToFloat(Edit2->Text); Edit3->Text = FloatToStr(R); }//---------------------------------------------------------------------------

Page 58: Aula1   c++ builder

Arquivo Unit1.h//---------------------------------------------------------------------------#ifndef Unit1H#define Unit1H//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>//---------------------------------------------------------------------------class TForm1 : public TForm{__published: // IDE-managed Components TLabel *Label1; TEdit *Edit1; TLabel *Label2; TEdit *Edit2; TButton *Button1; TLabel *Label3; TEdit *Edit3; void __fastcall Button1Click(TObject *Sender);private: // User declarationspublic: // User declarations __fastcall TForm1(TComponent* Owner);};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif