aula1 c++ builder

Post on 28-Jun-2015

13.040 Views

Category:

Education

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

aula de C++ Builder 6

TRANSCRIPT

Linguagem Avançada C++ Builder

Prof. Wdson de OliveiraLocal: Fatec JahuFevereiro-2011

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.

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.

Programação Orientada a Objetos

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

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.

O Ambiente C++ Builder

Tela Principal do 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

Tela Principal do Builder

Os componentes da página selecionada

Guia ou Páginas

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.

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

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.

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.

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.

Menus do 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.

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.

Menu File: New Form

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

Menu Project

Menu Project: Add to Project

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

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.

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.

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.

Menu Project: Options

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).

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++.

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

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

Menu Run

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.

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.

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.

Object Inspector

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.

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.

Primeiro Projeto

Soma dois números

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

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.

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.

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.

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();

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:

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");}

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.

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.

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");}

Classe TLabel

Propriedades:

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

Agora já estamos prontos para fazermos a nossa primeira

implementação.....

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.

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.

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.

Nossa tela

Label1

Label2

Button1

Label3

Edit1

Edit2

Edit3

Form1

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:

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);

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); }//---------------------------------------------------------------------------

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

top related