CursoIntrodutorioCBuilder

105
Curso Introdutório C++ Builder Prof. Luciano L. Damasceno Local: PUC-Minas Maio/2003

Transcript of CursoIntrodutorioCBuilder

Page 1: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 1/105

Curso IntrodutórioC++ Builder 

Prof. Luciano L. DamascenoLocal: PUC-MinasMaio/2003

Page 2: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 2/105

Objetivo do curso Fornecer o conhecimento inicial básico do

ambiente de programação visual C++Builder e de seus principais componentespara o desenvolvimento de aplicações.

Page 3: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 3/105

S

obre o curso Serão abordados os conceitos básicos de:

programação OO

programação orientada a eventos;

programação visual.

Serão utilizados praticamente todos os

principais componentes (objetos) dalinguagem.

Page 4: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 4/105

ProgramaçãoOrientada a Objetos

Page 5: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 5/105

Programação Orientada a Objetos Uma classe é uma abstração para agrupar 

determinados dados e manipulá-los de

forma coerente. Em geral uma classepossui os seguintes elementos: Propriedades /Atributos

Métodos

Eventos

Page 6: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 6/105

Programação Orientada a Objetos Propriedade de uma classe é um valor.Se ja 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 estamudança.

Page 7: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 7/105

O Ambiente C++

Builder 

Page 8: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 8/105

Tela Principal do Builder 

Page 9: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 9/105

SpeedBar é uma barra deferramenta que contém botões paraa execução das atividades maisutilizadas para estas opções estãocontidas no Menu do Builder.

Tela Principal do Builder 

Menu do Builder 

Page 10: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 10/105

Tela Principal do Builder 

Os componentes da página selecionada

Guia ou Páginas

Page 11: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 11/105

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 objetosdo formulário, o nome do objeto que aparece selecionado é o objeto no qual oobject Inspector esta exibindo suas propriedades.

Page 12: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 12/105

Criando um pro jeto O Builder trabalha com pro jeto e com os formulários

vinculados ao pro jeto. ³O pro jeto é o programa; os formulários vinculados ao

pro jeto são as  janelas ou seções³  Ao salvar um pro jeto, supondo-se que este pro jeto se ja

salvo com o nome de ³Project´, o Builder salvar á opro jeto na pasta especificada e ir á gerar os seguintesarquivos :

Pro ject.bpr  Pro ject.res Pro ject.cpp

Page 13: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 13/105

Desvendando o pro jeto Pro ject.bpr p neste arquivo tem informações da

versão do builder, formulários que estão ligadosao pro jeto, etc...

Pro ject.res p este é um arquivo de recurso doBuilder 

Pro ject.cpp p neste arquivo está a funçãoprincipal(WinMain) do pro jeto, que por sua vez

inicializa a execução do pro jeto e a criação detodos os formulários em tempo de execução.

Page 14: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 14/105

Desvendando o pro jeto Depois de salvar o pro jeto iremos salvar o

formulário com o nome de ³Form´ como ³f rm´,

gerando os seguintes arquivos : frm.cppp possui o código que foi inserido pelo

usuário nos evento dos objetos. frm.hp neste arquivo está definido a classe do

formulário e a declaração de todos os objetoscolocados no formulário. frm.dfmp possui a imagem do formulário.

Page 15: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 15/105

Desvendando o pro jeto: Backup O Builder cria cópia dos arquivos do formulário

que neste caso são : frm.~cp, frm.~h e frm.~df.

 Ao salvar um pro jeto o Builder cria mais trêsarquivos que são : Pro ject.~bp, Pro ject.~re ePro ject.~cp.

Page 16: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 16/105

Desvendando os Menus do Builder 

Page 17: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 17/105

Menu File: New  Exibe a caixa de dialogo ³New

Items´, que provê acesso para os

modelos de Formulários, Formuláriosde Diálogos, Pro jetos semi-pronto,nova aplicação para ser desenvolvidapelo usuário a partir do zero.

Page 18: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 18/105

Menu File: New A pplication Esta opção está também disponível na

caixa de diálogo ³New Items´ da opção

New do Menu File, a finalidade destaopção é gerar uma nova aplicação semnada nela desenvolvida para que usuário

possa desenvolver o seu sistema damaneira como quiser.

Page 19: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 19/105

Menu File: New F orm  Através desta opção pode-se adicionar um

novo formulário em um pro jeto.

Page 20: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 20/105

Menu Pro ject

Page 21: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 21/105

Menu Pro ject: Add to P roj ect 

Esta opção abre acaixa de diálogo a

seguir :

Page 22: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 22/105

Menu Pro ject: Add to P roj ect 

Use esta caixa de diálogo para adicionar uma unit existente e seu formulário ao

pro jeto atualmente aberto no C++ Builder. Quando você adiciona uma unit no

pro jeto, o C++ Builder automaticamentefaz referências da unit adicionando umadeclaração de #include para o pro jeto noarquivo de extensão .BPR.

Page 23: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 23/105

Menu Pro ject:R emov e f rom P roj ect 

Use esta caixa de diálogopara selecionar um ou maisunit que dese ja remover dopro jeto atual. Quando vocêseleciona uma unit e clicaem OK, C++ Builder remove a unit selecionada(os arquivos .CPP, .H e.DFM) do pro jeto atual masnão apaga nenhum arquivode seu disco.

Page 24: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 24/105

Menu Pro ject: Add to R e pository 

Use este comando para somar pro jetos,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 MenuFile você poder á incluir o seu formulário sem ter que fazê-lo de novo.

Page 25: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 25/105

Menu Pro ject: O ptions

Page 26: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 26/105

Menu Pro ject:O

 ptions 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 qualformulário ser  á executado primeiro em umpro jeto com mais de um formulário.

Application Especifica o título(Title), nome dearquivo de a juda(Help File), e nome de íconeassociados com a aplicação(Load Icon).

Page 27: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 27/105

Menu Pro ject:O

 ptions 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: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 28/105

Menu Pro ject:O

 ptions Pascal Especifica opções do compilador 

de Objeto Pascal

Linker  Gerencia como seus arquivos deprograma são Linkados

Directories/Conditionals Especifica a

localização de arquivos necessários paracompilar e Linkar seu programa

Page 29: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 29/105

Menu Pro ject:O

 ptions VersionInf o Especifica as informação de

identificação do produto

Packages Especificam os pacotes com osobjetos estão instalados

Tasm Configura os parâmetros e âmbito

para o montador de tur bo Assembly

Page 30: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 30/105

Menu Run

Page 31: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 31/105

Menu Run

Run : utilizada para compilar e linkar a suaaplicação e logo após executa o programa. Seo compilador encontra um erro, exibe uma caixa

de diálogo de Erro; Não encontrando nenhumerro de sintaxe no código do programa ocompilador constrói um arquivo executável

Program Reset : É utilizado para terminar a

execução do programa atual e retira damemória um programa na qual ocorreu um erroem tempo de execução.

Page 32: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 32/105

Menu Database

Explore : Executa o Explore(Explorador deBanco de dados ou Explorador de SQL). Ambas

as ferramentas lhe deixarão : criar, visualizar, eeditar dados e pseudônimos de BDE.Explorador de SQL permite examinar bancos dedados locais e distantes.

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

Page 33: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 33/105

Menu tools

Database Desktop : Executa o DatabaseDesktop que é uma ferramenta utilizada paracriar e reestruturar tabelas de um banco de

dados. Você pode trabalhar com elas emParadox, dBASE, e formatos de SQL. Image Editor : aplicativo utilizado para criar 

imagem para objetos que você criou, para criar ícones, arquivos bitmap, etc...

Conf igure Tools : Nos permite configurar asopções do Menu Tolls.

Page 34: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 34/105

Object Inspector 

Page 35: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 35/105

Object Inspector (OI)

Permite visualizar rapidamente as propriedadese eventos de um determinado objeto, mostrando

ainda de qual classe ele pertence. Para verificar as propriedades de um

determinado objeto, basta clicar no objeto emque se esta trabalhando, e o OI alternar á para

as propriedades e eventos deste objeto.

Page 36: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 36/105

Page 37: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 37/105

Figura do Ob j ect  I nspector 

à esquerda temos as propriedades doobjeto Edit1 (classe TEdit),  já no lado

direito temos o Ob j ect  I nspector mostrando os métodos deste mesmoobjeto.

Page 38: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 38/105

Primeiro Pro jeto

Page 39: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 39/105

Page 40: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 40/105

Classe TEdit

Propriedades: Name. é o nome d o ob j eto. Tod o ob j eto pr ecisa

t er um nome, para ser r efer enciad o

Text. g uar d a o cont eúd o d i g itad o, ou o cont eúd o

 para ser mostrad o na t ela

ReadOnly. ac eita os valor es true/f alse, caso o

valor se  ja true, o usuário não poderá d i g itar nenhum valor nest e ob j eto.

Visible. pode r ec eber os valor es true/f alse, caso

o valor se ja true o ob j eto será mostrad o na t ela.

Page 41: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 41/105

Classe TEdit

Métodos: SelectAll. sel eciona tod o o cont eúd o d o ob j eto

CopyToClipboard. copia o cont eúd o sel ecionad o d o ob j eto  para a ár ea de C lipboar d 

PasteFromClipboard. cola o cont eúd o d a ár ea de C lipboar d na  propri ed ade T ex t d o ob j eto

Clear . limpa o cont eúd o d a  propri ed ade T ex t. SetFocus. f ará com que o cursor  se ja 

 posicionad o nest e ob j eto.

Page 42: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 42/105

Classe TEdit

Eventos: OnChange. é acionad o quand o a uma mud ança na 

 propri ed ade T ex t  ocorr er , ou se ja, quand o houv er  uma mud ança nesta  propri ed ade o ev ento OnC hang eé acionad o.

OnEnter . é acionad o quand o o F ocus d a aplicação é  passad o  para esse ob j eto, ou se ja, quand o entra no ob j eto.

OnExit. ao contrário d o ev ento OnEnt er  é acionad o na saí d a d o ob j eto.

Page 43: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 43/105

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: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 44/105

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 Ob j ect  I nspector ,

selecionar Ev ents (eventos), dar dois cliques noevento OnC hang e, que o C++ Builder criar á umaprocedure, que dever á ser chamada toda vez queocorrer uma mudança na propriedade Text.

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

Page 45: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 45/105

Exemplos Classe TEdit

ShowMessage(³Houve uma alteração devalor´); /* A f unção S howMessag e mostra uma mensag em qual quer  na t ela */ 

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

*Sender){ShowMessage("Houve uma alteração de valor");

}

Page 46: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 46/105

Classe TButton

Propriedades: Caption. A  propri ed ade C aption f ará com que se ja 

mostrad o o nome ind icad o no botão. Enabled. Esta  propri ed ade  pode r ec eber  os valor es 

true/f alse. C aso o valor  se ja true, o ob j eto  pode ser  

acionad o normalment e com um click d o mouse. C aso 

a  propri ed ade se ja f alse, o click d o mouse não f ará 

efeito al g um. O ob j eto estará desabilitad o at é que a 

 propri ed ade se ja alt erad a.

Page 47: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 47/105

Classe TButton

Métodos: SetFocus. A f uncionali d ade é a mesma d o 

métod o Set F ocus de TE d it 

Eventos: OnClick. O ev ento OnC lick  será acionad o 

quand o o usuário clicar  no botão.

Page 48: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 48/105

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

OnC lick dentro de Button1. Logo dentro deste evento basta

colocarmos o comandoS

howMessage(³Você clicou no botão´).O comando completo:void __fastcall TForm1::Button1Click(TObject *Sender){ShowMessage("Você clicou no botão");

}

Page 49: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 49/105

Classe TLabel

Propriedades: Caption. A  propri ed ade C aption f ará com 

que se ja mostrad o o nome ind icad o no label.

Page 50: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 50/105

 Agora  já estamos prontos para

fazermos a nossa primeiraimplementação.

Page 51: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 51/105

Page 52: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 52/105

 Arquivo Unit1.dfm

 As definições de tela são armazenadas noarquivo com a extensão df m

O Objeto Form1 é da classeT

Form, e é atela onde serão colocados os outrosobjetos.

Os objetos Label1, Label2 e Label3 sãoda classe TLabel, e foram utilizados paraescrever um conteúdo na tela.

Page 53: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 53/105

 Arquivo Unit1.dfm

Os objetos Edit1, Edit2 e Edit3 são daclasse 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: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 54/105

Page 55: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 55/105

 Arquivo Unit1.cpp

Neste arquivo, devemos incluir o que queremosque o nosso programa faça.

Faremos isto no evento OnC lick do objetoButton1, ou se ja, quando o usuário clicar nobotão executaremos uma determinada ação.

Para fazermos isso, basta o usuário dar doiscliques em Button1, que este criar á a função

Button1Click, associada ao eventoO

nC lick deste botão. Agora basta escrevermos o quedese jamos que a função faça:

Page 56: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 56/105

 Arquivo Unit1.cpp

 /* C ria uma variáv el  R  ( mai úscula) que armaz enará valor es r eais */ 

f loat R;

 /* A f unção S trToF loat  conv ert e uma S tring em um número r eal , como a  propri ed ade T ex t d o ob j eto E d it1 é d o tipo S tring , esta conv ersão torna-se nec essária. O mesmo ocorr e com E d it2 */ 

R = Str ToFloat(Edit1->Text) + Str ToFloat(Edit2->Text);

 /* J á a f unção F loatToS tr f az ex atament e o contrário, ou se ja, conv ert eum número r eal em uma S tring , para  poder  ser ex i bi d a no ob j eto 

E d it3, na  propri ed ade T ex t */ Edit3->Text = FloatToStr(R);

Page 57: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 57/105

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 = Str ToFloat(Edit1->Text) + Str ToFloat(Edit2->Text);Edit3->Text = FloatToStr(R);

}//---------------------------------------------------------------------------

Page 58: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 58/105

 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 PACK AGE TForm1 *Form1;//---------------------------------------------------------------------------#endif 

Page 59: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 59/105

Pro jeto 2

Page 60: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 60/105

Editor de Texto Simples(classe TMemo)

O objetivo deste pro jeto é o de construir umeditor de texto simples.

O usuário poder á digitar um texto, salvá-lo emum diretório qualquer com qualquer nome, epoder á também ler um arquivo armazenado.

Este editor de texto suporta somente textos

padrão ASCII, ou se ja, textos sem formatação,como negrito, itálico, cor de letra, etc

Page 61: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 61/105

Editor de Texto Simples(classe TMemo)

Para a confecção deste pro jetoprecisaremos das classes:

TMemo; TSaveDialog; TOpenDialog; TEdit; TButton; Tlabel.

Page 62: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 62/105

Classe TMemo

Propriedades: Alignment. permit e def  inir como tod o o t ex to d o

ob j eto será alinhad o. Os possív eis valor es são:

taLeftJustify , que é o valor  def ault , justi f ica o t  ex to àesquer d a;

taCenter , c entralizad a o t ex to;

taRightJustify , que justi f ica o t ex to à d ir eita;

Lines. o valor  d a propri ed ade é a classe TS trings,log o, poder emos f az er uso d as propri ed ades emétod os desta classe ( T S tring s), atrav és d a

 propri ed ade Lines.

Page 63: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 63/105

Classe TMemo

ScrollBars. Esta propri ed ade é utilizad a para

i denti f icar se o ob j eto t erá barras de rolag em

ou não, e em caso positivo de que tipo elaserá.

Os possív eis valor es são:

ssNone que i denti f ica que nenhuma barra de rolag em

dev e ser utilizad a;

ssHorizontal usar soment e barra de rolag em horizontal;

ssVertical , usar soment e barra de rolag em na v ertical;

ssBoth, que ind ica o uso simultâneo de barras de

rolag em horizontal e v ertical.

Page 64: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 64/105

Classe TMemo

Métodos: Clear . limpa tod o o cont eúd o d o ob j eto;

Clear Selection. limpa uma r eg ião sel ecionad a;

CopyToClipboard. C opia o cont eúd o d a r eg ião sel ecionad a  para o clipboar d ;

CutToClipboard. R ecorta o cont eúd o d a r eg ião sel ecionad a e o coloca no clipboar d ;

PasteFromClipboard. C ola o cont eúd o d o clipboar d no ob j eto;

SelectAll. Sel eciona tod o o cont eúd o d o ob j eto.

Page 65: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 65/105

Classe TMemo

Eventos: OnChange. é acionad o tod a a v ez  que a uma

mud ança no cont eúd o d o ob j eto;

OnEnter . ocorr e quand o o ob j eto r ec ebe o F ocus denav eg ação;

OnExit. ocorr e quand o o F ocus sai  d o ob j eto e vai  para um outro ob j eto qual quer;

OnKeyDown. ocorr e quand o uma t  ecla é

 pr essionad a. O ev ento captura a t ecla d i g itad a, que pode ser manipulad a d a f orma que o prog ramad or dese jar.

Page 66: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 66/105

Exemplos da classe TMemo

Memo1 e Memo2 são objetos da classe TMemo Exemplo 1:

Faça um programa que selecione todo o conteúdodigitado em Memo1 (que deve ser centralizado) ecoloque em Memo2 (que deve ser  justificado à direita).

Para fazer isso, basta fazermos uma tela com os dois

objetos e um botão (digamos Button1). Clicando emMemo1, altere a propriedade Alignment parataCenter no Ob j ect  I nspector;

Page 67: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 67/105

Exemplos da classe TMemo

Depois clique em Memo2 e altere apropriedade Alignment para taRightJustif y

também no Ob j ect  I nspector . Dentro do evento OnC lick de Button1

escreva:Memo1->SelectAll();

Memo2->PasteFromClipboard();

Page 68: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 68/105

Exemplos da classe TMemo

Exemplo 2:  Ainda em cima do exemplo 1, retire o botão

(Button1), e faça com que tudo que o usuário digitar 

em Memo1 apareça automaticamente em Memo2 evice-versa, ou se ja, tudo que for digitado em Memo2apareça automaticamente em Memo1.

No evento OnC hang e de Memo1 colocamos:Memo1->SelectAll();Memo2->Clear();Memo2->PasteFromClipboard();

Page 69: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 69/105

Exemplos da classe TMemo

OuMemo2->Text = Memo1->Text;

E no evento OnC hang e de Memo2 colocamos:Memo2->SelectAll();

Memo1->Clear();

Memo1->PasteFromClipboard();

OuMemo1->Text = Memo2->Text;

Page 70: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 70/105

Classe TString

Propriedades: Count. armaz ena a quanti d ade de caract er es

de uma seqüência de caract er es; Strings. é utilizad a para r  efer enciar uma

string , em um conjunto de string s.  A maneirade r efer enciar é a mesma de um v etor.

Text. cont ém tod a a lista de string s; Values. P ara S tring s no f ormato N ome=V alor ,

a propri ed ade V alues r etorna o valor  d aquelastring .

Page 71: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 71/105

Page 72: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 72/105

Classe TString

Insert. I nser e um el emento em uma  posição especí f ica d a lista;

Load

From

File. Lê as linhas d o ar quivo e inclui  na lista;

LoadFromStream. O métod o LoadF romS tr eam l ê  para dentro de uma lista um S tr eam, que é um conjunto binário ded ad os qual quer  ( uma classe abstrata),  podeser  um ar quivo, uma imag em, uma  posição dememória, etc 

Page 73: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 73/105

Classe TString

SaveToFile. S alva os d ad os d a 

lista em um ar quivo;

SaveToStream. S alva os d ad os d a 

lista em um S tr eam;

Page 74: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 74/105

Classe TString

Eventos: N ão ex ist e nenhum ev ento  para esta classe.

Page 75: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 75/105

Exemplos da classe TString em

con junto com TMemo Exemplo 1:

Faça um programa que adicione três elementos aoobjeto Memo1.

Para fazermos este programa precisaremos de umbotão (Button1) e usaremos o método Add da classeTString, pois a propriedade Lines de Memo1 fazreferência a esta classe.

No eventoO

nC lick de Button1 basta escrevermos:Memo1->Clear();Memo1->Lines->Add(³Linha 1´);Memo1->Lines->Add(³Linha 2´);Memo1->Lines->Add(³Linha 3´);

Page 76: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 76/105

Exemplos da classe TString em

con junto com TMemo Exemplo 2:

Fazer um botão em cima do exemplo 1 que apague aprimeira linha de Memo1

 Agora usaremos o método Delete da classe TString.Usaremos um novo botão (Button2)

No evento OnC lick de Button2 basta escrevermos:Memo1->Lines->Delete(0);

Este método apagara a primeira linha de Memo1, e alinha 2 e linha 3 irão para a posição zero e umrespectivamente, de tal forma que se Button2 for pressionado três vezes todo o conteúdo de Memo1desaparecer á.

Page 77: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 77/105

Exemplos da classe TString em

con junto com TMemo Exemplo 3:

Lêr o arquivo c:\autoexec.bat para dentro de

Memo1Memo1->Lines->LoadFromFile(³c:\autoexec.bat´);

Exemplo 4:

Salvar o arquivo do exemplo anterior com

o nome de c:\autoexec.oldMemo1->Lines->SaveToFile(³c:\autoexec.old´);

Page 78: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 78/105

Exemplos da classe TString em

con junto com TMemo Exemplo 5:

Suponha que o objeto Memo1 este ja

preenchido com os seguintes valores: DisplayGrid=1 SnapToGrid=1 GridSizeX=8 GridSizeY=8

Como fazer para recuperar o valor deGridSizeX?

Page 79: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 79/105

Exemplos da classe TString em

con junto com TMemo Para fazermos este programa vamos criar 

um novo botão (Button3) e um objeto

Edit1 para receber a resposta. Basta digitar no evento OnC lick de

Button3 a seguinte linha:

Edit1->T

ext = Memo1->Lines->Value[³GridS

izeX´];

Page 80: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 80/105

Page 81: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 81/105

Classe TOpenDialog

Propriedades: Def aultExt. Esta  propri ed ade def ine a ex t ensão 

def ault   para abertura de ar quivo;

FileName. A pós a escolha d o ar quivo  pelo usuário, é 

atri buí d a a esta  propri ed ade o nome d o ar quivo 

escolhi d o;

Files. Em caso de sel eção de múltiplos ar quivos,

esta  propri ed ade traz  a r elação de tod os os ar quivos 

sel ecionad os, no f ormato de uma lista ( T S tring  );

Page 82: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 82/105

Classe TOpenDialog

Filter . Nesta  propri ed ade são def ini d os as ex t ensões de ar quivos que serão suportad os  pela abertura dear quivo;

InitialD

ir . Esta  propri ed ade armaz ena o d ir etório inicial  onde a cai  x a de d iálog o dev erá ser  apr esentad a;

Options. Esta  propri ed ade armaz ena um conjunto deopções que  pode ser  utilizad a  para a abertura de um ar quivo, como a  possi bili d ade de sel ecionar  múltiplos 

ar quivos  por exemplo; Title. É  o título que apar ec e nest e ob j eto

Page 83: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 83/105

Classe TOpenDialog

Métodos: Execute. Est e métod o executa o ob j eto e

r etorna true caso o usuário t enha  pr essionad o o botão Abrir , ou se ja, escolhi d o 

um ar quivo e false caso o usuário  pr essione

o botão C anc elar.

Page 84: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 84/105

Classe TOpenDialog

Eventos: OnFolderChange. é acionad o tod a a v ez que

há uma mud ança de pasta /d ir etório. OnSelectionChange. ocorr e quand o há uma

mud ança na sel eção.

OnClose. ocorr e quand o o ob j eto é fechad o.

OnShow. ocorr e quand o o ob j eto é ex i bi d o.

Page 85: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 85/105

Classe TSaveDialog

Esta classe tem basicamente todas aspropriedades, métodos e eventos da

classe TopenDialog.

Page 86: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 86/105

Page 87: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 87/105

Exemplos das classe TOpenDialog

e TSaveDialog Para fazermos este programa vamos precisar 

do objeto Memo1 (TMemo), do objeto

OpenDialog1 (TOpenDialog), dentro da paletaDialog s e de um botão (Button1).

Dentro do evento OnC lick de Button1 bastaescrever-mos:

Page 88: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 88/105

Exemplos das classe TOpenDialog

e TSaveDialogOpenDialog1->Filter = "Todos|*.*|Textos|*.txt|Arquivos

Bat|*.bat";OpenDialog1->InitialDir = "C:\WINDOWS\SYSTEM";

OpenDialog1->Title = ³Abrir Arquivo«";if (OpenDialog1->Execute()){

Memo1->Lines->LoadFromFile(OpenDialog1-

>FileName);}

Page 89: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 89/105

Exemplos das classe TOpenDialog

e TSaveDialog Observe que o comando if é necessário, pois o

método Execute(), apenas manda executar oobjeto, mas não garante que o usuário escolheu

um arquivo. Caso o usuário tenha escolhido umarquivo ele retorna verdadeiro e em casocontr ário falso.

Na nossa solução, usamos o if para verificar oretorno do objeto, e só abrimos o arquivos,

propriedade FileName, se o usuário escolheualgum arquivo, caso contr ário não fazemosnada.

Page 90: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 90/105

Page 91: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 91/105

Page 92: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 92/105

 Arquivo Unit1.dfm

Memo1

OpenDialog1 SaveDialog1

Edit1 Edit2

Page 93: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 93/105

 Arquivo Unit1.cpp//---------------------------------------------------------------------------#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){

if(OpenDialog1->Execute()){

Memo1->Clear();

Memo1->Lines->LoadFromFile(OpenDialog1->FileName);}

}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){

if(SaveDialog1->Execute())Memo1->Lines->SaveToFile(SaveDialog1->FileName);

}

//---------------------------------------------------------------------------

Page 94: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 94/105

MaisT

eoria

Page 95: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 95/105

Procedimentos e Funções

Um procedimento ou uma função em C++Builder são um fragmento de programa.

Procedimentos e Funções são bastanteutilizados para re-usarmos código. Devemos entretanto, tomar cuidado para

não usarmos uma linguagem orientada a

objetos como uma linguagem proceduralnormal.

Page 96: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 96/105

Procedimentos e Funções

Sempre que possível devemos criar classes, para que essas sim se jam

usadas em nossos códigos, e nãosomente os procedimentos e funções.

Page 97: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 97/105

Procedimentos e Funções -

Exemplo Suponha que eu queira calcular a função:

y = x 2 ±3

De tal forma que o usuário digite o valor de x , e o computador calcule o valor de y 

e mostre o resultado na tela.

Page 98: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 98/105

Procedimentos e Funções -

Exemplo

Label1

Button1

Label2

Edit1

Edit2

Page 99: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 99/105

Procedimentos e Funções -

Exemplo//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){

int valor;valor = Str ToInt(Edit1->Text);

Calcula(valor);}//---------------------------------------------------------------------------void __fastcall TForm1::Calcula(int x){

float resultado;resultado = x*x - 3;

Edit2->Text = FloatToStr(resultado);}//---------------------------------------------------------------------------

Page 100: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 100/105

Procedimentos e Funções -

Exemplo Dentro do evento OnC lick de Button1, criamos

uma variável inteira chamada valor (int valor)

 Atribuímos a esta variável o valor digitado pelousuário em Edit1 (valor = Str ToInt(Edit1->Text)),

Chamamos o procedimento Calcula, passandocomo parâmetro a variável valor .

Page 101: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 101/105

Procedimentos e Funções -

Exemplo Neste momento, o programa é desviado

para o procedimento Calcula, e a variável

valor é atribuída a variável inteira x, queser á tratada pelo procedimento.

No procedimento Calcula é criado uma

variável real chamada resultado (floatresultado).

Page 102: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 102/105

Procedimentos e Funções -

Exemplo Na próxima linha é atribuída a variável

resultado o resultado da equação

(resultado = x*x ± 3) e finalmente o valor encontrado é mostrado na tela no objetoEdit2 (Edit2->Text =FloatToStr(resultado)).

Page 103: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 103/105

Procedimentos e Funções

O formato de um procedimento é omostrado abaixo:void __fastcallTForm1::Nome_do_Procedimento(parâmetros)

{//Comando 1;//Comando 2;

//Comando n;}

Page 104: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 104/105

Page 105: CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

http://slidepdf.com/reader/full/cursointrodutoriocbuilder 105/105

Procedimentos e Funções

Para incluir o procedimento, deve-se abrir o programa de cabeçalho (*.h).

Para abrir o arquivo, basta clicar com obotão direito na unit correspondente(*.cpp) e escolher a opção O pen S ourc e/Header F il e.

 Agora, basta incluir o procedimentocorrespondente na sessão  public .