Vous êtes sur la page 1sur 58

Linguagem Avanada C++ Builder

Prof. Wdson de Oliveira Local: Fatec Jahu Fevereiro-2011

Objetivo do curso

Fornecer o conhecimento bsico do ambiente de programao visual C++ Builder e de seus principais componentes para o desenvolvimento de aplicaes.

Sobre o curso

Sero abordados os conceitos bsicos de:


programao

OO programao orientada a eventos; programao visual.

Sero utilizados os principais componentes (objetos) da linguagem.

Programao Orientada a Objetos

Programao Orientada a Objetos

Uma classe uma abstrao para agrupar determinados dados e manipul-los de forma coerente. Em geral uma classe possui os seguintes elementos: Propriedades /Atributos Mtodos Eventos

Programao Orientada a Objetos


Propriedade de uma classe um valor. Seja ele numrico, data, caracter ou qualquer outro tipo Mtodo uma operao que realizada sobre as propriedades de uma classe. Uma classe pode possuir vrios estados. Quando um destes estados muda, acionado um evento associado a esta mudana.

O Ambiente C++ Builder

Tela Principal do Builder

Tela Principal do Builder


SpeedBar uma barra de ferramenta que contm botes para a execuo das atividades mais utilizadas para estas opes esto contidas no Menu do Builder.

Menu do Builder

Tela Principal do Builder


Guia ou Pginas

Os componentes da pgina selecionada

Tela Principal do Builder


Neste ComboBox(Caixa de Combinao) temos relacionados todos os objetos do formulrio, o nome do objeto que aparece selecionado o objeto no qual o object Inspector esta exibindo suas propriedades.

Guia de eventos do Inspetor de Objetos (Object Inspector)

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

Criando um projeto

O Builder trabalha com projeto e com os formulrios vinculados ao projeto. O projeto o programa; os formulrios vinculados ao projeto so as janelas ou sees.
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 informaes da verso do builder, formulrios que esto ligados ao projeto, etc... Projeto.res este um arquivo de recurso do Builder
Projeto.cpp neste arquivo est a funo principal(WinMain) do projeto, que por sua vez inicializa a execuo do projeto e a criao de todos os formulrios em tempo de execuo.

Criando um projeto

Depois de salvar o projeto iremos salvar o formulrio com o nome de Form como frm, gerando os seguintes arquivos : frm.cpp possui o cdigo que foi inserido pelo usurio nos evento dos objetos. frm.h neste arquivo est definido a classe do formulrio e a declarao de todos os objetos colocados no formulrio. frm.dfm possui a imagem do formulrio.

O projeto: Backup

O Builder cria cpia dos arquivos do formulrio que neste caso so : frm.~cpp, frm.~h e frm.~dfm.
Ao salvar um projeto o Builder cria mais trs arquivos que so : 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 formulrios, nova aplicao para ser desenvolvida pelo usurio a partir do zero, etc.

Menu File: New - Application

Esta opo est disponvel na caixa de dilogo da opo New do Menu File, a finalidade desta opo gerar uma nova aplicao sem nada nela desenvolvida para que usurio possa desenvolver o seu sistema da maneira como quiser.

Menu File: New Form

Atravs desta opo pode-se adicionar um novo formulrio em um projeto.

Menu Project

Menu Project: Add to Project

Esta opo abre a caixa de dilogo a seguir :

Menu Project: Add to Project


Use esta caixa de dilogo para adicionar uma unit existente e seu formulrio ao projeto atualmente aberto no C++ Builder. Quando voc adiciona uma unit no projeto, o C++ Builder automaticamente faz referncias da unit adicionando uma declarao de #include para o projeto no arquivo de extenso .BPR.

Menu Project: Remove from Project

Use esta caixa de dilogo 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 no apaga nenhum arquivo de seu disco.

Menu Project: Add to Repository

Use este comando para somar projetos, cdigos, e formulrios para o Repository de Object. til em situaes onde voc usa muito um formulrio. Adicionando este formulrio no Repository Object, depois atravs da opo New do Menu File voc poder incluir o seu formulrio sem ter que faz-lo de novo.

Menu Project: Options

Menu Project: Options

Use as pginas(guias) desta janela de dilogo para especificar Forms, Application, Compile, Linker, C++, etc Forms Controlam os formulrio criados. Atravs da opo Main Form podemos especificar qual formulrio ser executado primeiro em um projeto com mais de um formulrio. Application Especifica o ttulo(Title), nome de arquivo de ajuda(Help File), e nome de cone associados com a aplicao(Load Icon).

Menu Project: Options


Compile especifica as opes gerais para os C++ compilador interruptores que detemina como cdigo deve ser compilado. Advance Compile Especifica opes adicionais para o compilador de C++. C++ Especifica opes do compilador C++.

Menu Project: Options


Pascal Especifica opes do compilador de Objeto Pascal Linker Gerencia como seus arquivos de programa so Linkados Directories/Conditionals Especifica a localizao de arquivos necessrios para compilar e Linkar seu programa

Menu Project: Options


VersionInfo Especifica as informao de identificao do produto Packages Especificam os pacotes com os objetos esto instalados Tasm Configura os parmetros e mbito para o montador de turbo Assembly

Menu Run

Menu Run

Run : utilizada para compilar e linkar a sua aplicao e logo aps executa o programa. Se o compilador encontra um erro, exibe uma caixa de dilogo de Erro; No encontrando nenhum erro de sintaxe no cdigo do programa o compilador constri um arquivo executvel Program Reset : utilizado para terminar a execuo do programa atual e retira da memria um programa na qual ocorreu um erro em tempo de execuo.

Menu Database

Explore : Executa o Explore(Explorador de Banco de dados ou Explorador de SQL). Ambas as ferramentas lhe deixaro : criar, visualizar, e editar dados e pseudnimos de BDE. Explorador de SQL permite examinar bancos de dados locais e distantes. Form Wizard : Esta opo permite criar um formulrio 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 opes 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 mtodos deste mesmo objeto.

Primeiro Projeto

Soma dois nmeros

Para a construo deste programa iremos precisar de trs componentes (ou classes):
TEdit;
TButton TLabel

e;

Classe TEdit

Propriedades:
Name.

o nome do objeto. Todo objeto precisa ter um nome, para ser referenciado Text. guarda o contedo digitado, ou o contedo para ser mostrado na tela ReadOnly. aceita os valores true/false, caso o valor seja true, o usurio no 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

Mtodos: SelectAll. seleciona todo o contedo do objeto CopyToClipboard. copia o contedo selecionado do objeto para a rea de Clipboard PasteFromClipboard. cola o contedo da rea de Clipboard na propriedade Text do objeto Clear. limpa o contedo da propriedade Text. SetFocus. far com que o cursor seja posicionado neste objeto.

Classe TEdit

Eventos:
OnChange.

acionado quando a uma mudana na propriedade Text ocorrer, ou seja, quando houver uma mudana nesta propriedade o evento OnChange acionado. OnEnter. acionado quando o Focus da aplicao passado para esse objeto, ou seja, quando entra no objeto. OnExit. ao contrrio do evento OnEnter acionado na sada do objeto.

Exemplos Classe TEdit

Edit1 e Edit2 so objetos da classe TEdit Exemplo 1:


Igualar a propriedade Text Edit1->Text = Edit2->Text;

de dois objetos

Exemplo 2:
Igualar

a propriedade Text de dois objetos, s que utilizando mtodos


Edit2->SelectAll(); Edit2->CopyToClipboard(); Edit1->Clear(); Edit1->PasteFromClipboard(); Edit1->SetFocus();

Exemplos Classe TEdit

Exemplo 3:
Mostrar

uma mensagem na tela se o contedo da propriedade Text do objeto Edit1 for alterado. 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 mudana na propriedade Text.

clicar

Dentro

desta procedure, ns podemos escrever qualquer comando, como por exemplo:

Exemplos Classe TEdit


ShowMessage(Houve

uma alterao de valor); /* A funo ShowMessage mostra uma mensagem qualquer na tela */
implementao completa ficaria assim:

void __fastcall TForm1::Edit1Change(TObject *Sender) { ShowMessage("Houve uma alterao de valor"); }

Classe TButton

Propriedades:
Caption.

A propriedade Caption far com que seja mostrado o nome indicado no boto. 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 no far efeito algum. O objeto estar desabilitado at que a propriedade seja alterada.

Classe TButton

Mtodos:
SetFocus.

A funcionalidade a mesma do mtodo SetFocus de TEdit O evento OnClick ser acionado quando o usurio clicar no boto.

Eventos:
OnClick.

Exemplos Classe TButton

Exemplo 1:

Colocar o texto Calcular no boto Button1.

Button1->Caption = Calcular;

Exemplo 2:

Mostrar a mensagem Voc clicou no boto quando Button1 for pressionado. O boto ser pressionado significa que aconteceu o evento OnClick dentro de Button1. Logo dentro deste evento basta colocarmos o comando ShowMessage(Voc clicou no boto). O comando completo:
void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage("Voc clicou no boto"); }

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

Cdigo Fonte: arquivos gerados


Project1.bpr gerado automaticamente. Guarda os parmetros de compilao para o programa, bem como os endereos de bibliotecas; Project1.cpp gerado automaticamente e no precisa ser alterado. a partir dele que as Units sero chamadas Unit1.dfm gerado a partir das definies de objeto que o usurio vai fazendo na tela, ou seja, basta o usurio 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 nmeros. Unit1.h Este arquivo tambm gerado automaticamente, e constitui os cabealhos e funes, procedures e declarao de objetos. Para funes definidas pelo programador, ele precisar sofrer pequenas alteraes. No o caso neste exemplo.

Arquivo Unit1.dfm
As definies de tela so armazenadas no arquivo com a extenso dfm. O Objeto Form1 da classe TForm, e a tela onde sero colocados os outros objetos. Os objetos Label1, Label2 e Label3 so da classe TLabel, e foram utilizados para escrever um contedo na tela.

Arquivo Unit1.dfm

Os objetos Edit1, Edit2 e Edit3 so da classe TEdit e foram utilizados para a entrada e a sada dos resultados.
O objeto Button1 da classe TButton, que foi o objeto utilizado para realizar a operao de soma.

Nossa tela
Form1 Label1 Edit1

Edit2 Label2

Button1

Edit3 Label3

Arquivo Unit1.cpp

Neste arquivo, devemos incluir o que queremos que o nosso programa faa.
Faremos isto no evento OnClick do objeto Button1, ou seja, quando o usurio clicar no boto executaremos uma determinada ao. Para fazermos isso, basta o usurio dar dois cliques em Button1, que este criar a funo Button1Click, associada ao evento OnClick deste boto. Agora basta escrevermos o que desejamos que a funo faa:

Arquivo Unit1.cpp
/* Cria uma varivel R (maiscula) que armazenar valores reais */ float R;
/* A funo StrToFloat converte uma String em um nmero real, como a propriedade Text do objeto Edit1 do tipo String, esta converso torna-se necessria. O mesmo ocorre com Edit2 */ R = StrToFloat(Edit1->Text) + StrToFloat(Edit2->Text); /* J a funo FloatToStr faz exatamente o contrrio, ou seja, converte um nmero 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 declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------#endif

Vous aimerez peut-être aussi