CursoIntrodutorioCBuilder
-
Upload
rafael-tavares -
Category
Documents
-
view
220 -
download
0
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 .