CursoIntrodutorioCBuilder

Post on 10-Apr-2018

220 views 0 download

Transcript of CursoIntrodutorioCBuilder

8/8/2019 CursoIntrodutorioCBuilder

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

Curso IntrodutórioC++ Builder 

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

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

ProgramaçãoOrientada a Objetos

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

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.

8/8/2019 CursoIntrodutorioCBuilder

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

O Ambiente C++

Builder 

8/8/2019 CursoIntrodutorioCBuilder

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

Tela Principal do Builder 

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 

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

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.

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

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Desvendando os Menus do Builder 

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Menu Pro ject

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 :

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Menu Pro ject: O ptions

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

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

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

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

8/8/2019 CursoIntrodutorioCBuilder

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

Menu Run

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Object Inspector 

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.

8/8/2019 CursoIntrodutorioCBuilder

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

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Primeiro Pro jeto

8/8/2019 CursoIntrodutorioCBuilder

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

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.

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.

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.

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

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:

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

}

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.

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.

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

}

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.

8/8/2019 CursoIntrodutorioCBuilder

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

 Agora  já estamos prontos para

fazermos a nossa primeiraimplementação.

8/8/2019 CursoIntrodutorioCBuilder

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

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

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:

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

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

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

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 

8/8/2019 CursoIntrodutorioCBuilder

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

Pro jeto 2

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

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.

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.

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.

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.

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.

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;

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

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

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;

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 .

8/8/2019 CursoIntrodutorioCBuilder

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

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 

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;

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.

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

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

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

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?

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´];

8/8/2019 CursoIntrodutorioCBuilder

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

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

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

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

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:

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

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.

8/8/2019 CursoIntrodutorioCBuilder

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

8/8/2019 CursoIntrodutorioCBuilder

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

8/8/2019 CursoIntrodutorioCBuilder

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

 Arquivo Unit1.dfm

Memo1

OpenDialog1 SaveDialog1

Edit1 Edit2

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

}

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

8/8/2019 CursoIntrodutorioCBuilder

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

MaisT

eoria

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.

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.

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.

8/8/2019 CursoIntrodutorioCBuilder

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

Procedimentos e Funções -

Exemplo

Label1

Button1

Label2

Edit1

Edit2

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

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 .

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

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

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

8/8/2019 CursoIntrodutorioCBuilder

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

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 .