Вы находитесь на странице: 1из 20

INSTITUTO POLITCNICO

DE

ESCOLA SUPERIOR

CASTELO BRANCO

DE

TECNOLOGIA

Licenciatura em Engenharia Electrotcnica e das Telecomunicaes

Introduo ao Ambiente de Desenvolvimento C++ Builder

Joo Manuel Santos Gonalves {joaosantos@est.ipcb.pt}

1 de Dezembro de 2011 INSTITUTO POLITCNICO


DE

ESCOLA SUPERIOR

CASTELO BRANCO

DE

TECNOLOGIA

Licenciatura em Engenharia Electrotcnica e das Telecomunicaes

Introduo ao Ambiente de Desenvolvimento C++ Builder

Joo Manuel Santos Gonalves {joaosantos@est.ipcb.pt}

1 de Dezembro de 2011ndic
e

1 DE DEZEMBRO DE 2011NDICE........................................................................................................I NDICE DE FIGURAS.............................................................................................................................II CAPTULO 1..............................................................................................................................................1 1. INTRODUO........................................................................................................................................1 1.1. NOTAS DO AUTOR.................................................................................................................................2 CAPTULO 2..............................................................................................................................................3 2. DESCRIO DO AMBIENTE DE DESENVOLVIMENTO.............................................................3 1.2. CRIAO DE PROJECTOS..........................................................................................................................4 1.3. DESCRIO DO AMBIENTE.......................................................................................................................6 2.1.1. Component Palette.....................................................................................................................6 2.1.2. Object Inspector.........................................................................................................................7
Modificao das Propriedades de um Objecto...............................................................................................8 Incluso de Eventos.......................................................................................................................................9

CAPTULO 3............................................................................................................................................13 3. TIPOS DE DADOS DO C++BUILDER..............................................................................................13 1.4. CONVERSO DE TIPOS DE DADOS PARA ANSISTRING E VICE-VERSA...........................................................13 1.5. TIPOS DE DADOS DO C++BUILDER.........................................................................................................15

ndice de Figuras

FIGURA 1.1: AMBIENTE DE DESENVOLVIMENTO DO PROGRAMA C++BUILDER..............1 FIGURA 2.2: HIERARQUIA DE UM PROJECTO EM C++BUILDER..............................................3 FIGURA 2.3: CAIXA DE DILOGO PARA GUARDAR A UNIDADE..............................................4 FIGURA 2.4: FICHEIROS QUE CONSTITUEM UMA UNIDADE.....................................................4 FIGURA 2.5: CAIXA DE DILOGO PARA GUARDAR O PROJECTO...........................................5 FIGURA 2.6: APLICAO CRIADA......................................................................................................5 FIGURA 2.7: AMBIENTE DE DESENVOLVIMENTO.........................................................................6 FIGURA 2.8: SELECO DO OBJECTO A ADICIONAR..................................................................7 FIGURA 2.9: INSERO DO OBJECTO NA FORM...........................................................................7 FIGURA 2.10: SELECO DO OBJECTO A MODIFICAR...............................................................8 FIGURA 2.11: ALTERAO DE UMA PROPRIEDADE EM TEMPO DE EXECUO...............8 FIGURA 2.12: ALTERAO DA COR DE UM BOTO POR DEFEITO E EM TEMPO DE EXECUO.................................................................................................................................................9 FIGURA 2.13: PROPRIEDADES, E RESPECTIVA DESCRIO, DE UM BOTO.......................9 FIGURA 2.14: EVENTOS POSSVEIS PARA O OBJECTO BUTTON1..........................................10 FIGURA 2.15: FUNO ASSOCIADA AO EVENTO ONCLICK DO BUTTON1......................11 FIGURA 2.16: ASPECTO DA UNIT, APS A INSERO DO CDIGO ASSOCIADO AOS EVENTOS..................................................................................................................................................11 FIGURA 2.17: EVENTOS ASSOCIADOS AO BUTTON1..................................................................12 FIGURA 2.18: CDIGO PARA ALTERAR A PROPRIEDADE CAPTION DE UM BOTO ATRAVS DE UM EVENTO, ASSOCIADO A OUTRO BOTO......................................................12 FIGURA 2.19: ASPECTO DA APLICAO, ANTES E DEPOIS DO EVENTO.............................12 FIGURA 3.20: CDIGO UTILIZADO PARA SOMAR DOIS NMEROS.......................................14 FIGURA 3.21: APLICAO QUE PROCEDE SOMA DE DOIS NMEROS INTEIROS.........14

ii

Captulo 1
1. Introduo
O programa de suporte C++Builder da Borland, cuja janela principal se encontra representada na figura 1.1, consiste num ambiente de desenvolvimento integrado (IDE1 ferramenta que combina editores e compiladores no mesmo ambiente), que possibilita o desenvolvimento de aplicaes suportadas em ANSI2 C++ a 32 bit, juntamente com uma interface grfica bastante atractiva, fazendo uso de mais de 200 componentes reutilizveis includos na biblioteca vcl.h (Visual Component Library). Este programa possibilita, tambm, a utilizao de rotinas do Sistema Operativo Windows (programao WIN32 API3), que aumentam em muito a funcionalidade e flexibilidade das aplicaes desenvolvidas.

Figura 1.1: Ambiente de desenvolvimento do programa C++Builder.

1 2 3

Acrnimo de: Integrated Development Environment. Acrnimo de: American National Standard Institute. Acrnimo de: Application Program(ming) Interface. Conjunto de rotinas disponibilizadas para utilizao por

programadores.

Joo Gonalves {joaosantos@est.ipcb.pt}

-1-

1.1.

Notas do Autor

A ideia de realizar um manual acerca do programa C++Builder, surgiu pelo facto de muitos alunos utilizarem o referido programa em projectos ou em cadeiras, ao longo do curso. A necessidade de utilizao leva a que muitas vezes os alunos tenham que aprender e utilizar determinados conceitos, muitas vezes erradamente, caindo por vezes em vcios de forma. Este manual tem como objectivo realizar uma introduo ao ambiente de desenvolvimento do C++Builder, sem entrar muito na metodologia de Programao Orientada a Objectos, possibilitando, deste modo, a realizao de aplicaes robustas com uma interface grfica apelativa, suportadas em grande parte em linguagem C. Este manual no tem como objectivo substituir a consulta de livros, apontamentos ou outro qualquer material de consulta relevante. O autor.

Joo Gonalves {joaosantos@est.ipcb.pt}

-2-

Captulo 2
2. Descrio
do Ambiente de

Desenvolvimento
As aplicaes so suportadas com base em projectos (ficheiros com extenso *.bpr). Cada projecto ou aplicao possui associada a si, uma ou mais janelas denominadas de Forms (ficheiros com extenso *.dfm). As Forms consistem nos elementos visuais que aparecem aos utilizadores quando a aplicao executada. Cada Form possu associada a si dois ficheiros, que constituem uma unidade (Unit), e que controlam o comportamento da janela. Uma unidade constituda por um ficheiro com o cdigo fonte (extenso *.cpp) e por um ficheiro com os prottipos das funes e objectos que a Form utiliza (extenso *.h). Na figura 2.1, apresenta-se um resumo dos ficheiros constituintes de um projecto realizado em C++Builder.

Figura 2.2: Hierarquia de um projecto em C++Builder.

Joo Gonalves {joaosantos@est.ipcb.pt}

-3-

1.2. Criao de Projectos


Quando se abre o C++Builder, por defeito j se encontra um projecto definido com uma nica Form associada. Para guardar o projecto dever fazer FileSave All, aparecendo a janela da figura 2.2:

Figura 2.3: Caixa de dilogo para guardar a unidade.

Esta caixa de dilogo destina-se a guardar a unidade, aparecendo apenas o nome do ficheiro que contm o cdigo fonte. Por questes de simplificao, dever manter o nome do ficheiro. O programa, automaticamente, procede gravao de toda a unidade (cdigo fonte e Form), como se mostra na figura 2.3, onde se mostram os ficheiros criados por esta aco.

Figura 2.4: Ficheiros que constituem uma unidade.

Joo Gonalves {joaosantos@est.ipcb.pt}

-4-

Aps gravar a unidade, aparece uma segunda caixa de dilogo, representada na figura 2.4, que permite guardar o projecto. Poder alterar o nome do projecto, sendo esse o nome que a aplicao (executvel) ir ter.

Figura 2.5: Caixa de dilogo para guardar o projecto.

Aps guardar o projecto, a aplicao encontra-se criada, podendo correr a aplicao atravs do menu RunRun ou atravs da tecla F9 (poder utilizar, tambm, as teclas de atalho, Speed Bar, presentes no ambiente de programao). Na figura 2.5, apresenta-se a aplicao criada (poder verificar os ficheiros criados pelo programa).

Figura 2.6: Aplicao criada.

Joo Gonalves {joaosantos@est.ipcb.pt}

-5-

A aplicao criada, embora possua algumas funcionalidades intrnsecas como minimizao, maximizao e fecho, no realiza nenhuma operao, pois no foi ainda programada para tal, isto , no possui cdigo associado a si.

1.3. Descrio do Ambiente


Na figura 2.6, apresenta-se o ambiente de desenvolvimento do C++Builder, cuja constituio principal : Component Palette: Permite seleccionar quais os componentes a utilizar na aplicao; Object Inspector: Permite definir as propriedades e eventos dos objectos que a aplicao possu; Form e Unit: Elemento visual e cdigo fonte da aplicao.

Figura 2.7: Ambiente de desenvolvimento.

2.1.1.

Component Palette

O Component Palette, permite seleccionar e adicionar objectos aplicao. Para adicionar um objecto, basta seleccion-lo na Component Palette e pressionar com o rato sobre a Form, como se mostra na figura 2.7 e na figura 2.8, onde se mostra um exemplo que permite adicionar um boto.

Joo Gonalves {joaosantos@est.ipcb.pt}

-6-

Figura 2.8: Seleco do objecto a adicionar.

Figura 2.9: Insero do objecto na Form.

Se correr a aplicao, ir verificar que o objecto j se encontra inserido, no realizando qualquer aco, pois no possu cdigo associado a si. Os objectos mais relevantes encontram-se nas paletes: Standard, Additional, Win32 e Dialogs.

2.1.2.

Object Inspector

O Object Inspector, visvel quando se pressiona a tecla F11, indica as propriedades intrnsecas dos objectos que a aplicao contm, assim como os eventos que um determinado objecto suporta. Cada objecto possu determinadas propriedades por defeito definidas no Object Inspector. Para seleccionar o objecto para o qual se pretende alterar as propriedades por defeito ou seleccionar o evento, dever pressionar com o rato sobre o Object Inspector, como se mostra na figura 2.9 e seleccionar o objecto.

Joo Gonalves {joaosantos@est.ipcb.pt}

-7-

Figura 2.10: Seleco do objecto a modificar.

Modificao das Propriedades de um Objecto No entanto, as propriedades dos objectos podem ser alteradas a qualquer altura (em tempo de execuo ou runtime). Os objectos podem ser encarados como ponteiros para uma estrutura, podendo-se aceder s suas propriedades atravs da colocao do nome do objecto, ->, seguida da propriedade que se pretende alterar. Na figura 2.10, apresenta-se um exemplo de como mudar a cor de uma Form para azul, em tempo de execuo:
Form1->Color = clBlue;
Figura 2.11: Alterao de uma propriedade em tempo de execuo.

De seguida, analisa-se com algum detalhe algumas das principais propriedades comum aos diversos objectos. Se uma propriedade for precedida do sinal (+), significa que a propriedade possu sub-propriedades associadas a si. Para aceder s sub-propriedades, utiliza-se uma hierarquia descendente, como se mostra na figura 2.11 (alterao por defeito e em tempo de execuo), onde se pretende alterar a propriedade Color da letra de um boto para vermelho.

Form1->Button1->Font->Color = clRed;

Joo Gonalves {joaosantos@est.ipcb.pt}

-8-

Figura 2.12: Alterao da cor de um boto por defeito e em tempo de execuo.

A incluso de Form1-> opcional dentro da prpria Form, mas que indica que qualquer objecto adicionado passa a ser uma propriedade da Form onde ele se insere. Na figura 2.12, apresentam-se as propriedades de um boto e a descrio das mais relevantes: BiDiMode: Alinhamento da letra; Caption: Nome que ir aparecer ao utilizador; Cursor: Cursor que ir aparecer quando o rato passa por cima do objecto; Enabled: Propriedade que indica se o objecto se encontra activo ou no; Height: Altura do objecto; Hint: Pista quanto aco do objecto; Left: Deslocamento esquerda, relativamente Form, do objecto; Name: Nome do objecto, referencia o objecto dentro da Form. Por questes de simplificao no deve ser alterado; ShowHint: Mostra a pista; Top: Deslocamento ao topo relativamente Form do objecto; Visible: Indica se o objecto ou no visvel (um objecto pode existir mas no ser visvel na Form); Width: Largura do objecto.

Figura 2.13: Propriedades, e respectiva descrio, de um boto.

Incluso de Eventos O C++ Builder uma linguagem de programao orientada por objectos e por eventos, o que significa que se trata de uma linguagem onde o cdigo no executado de forma sequencial,

Joo Gonalves {joaosantos@est.ipcb.pt}

-9-

no existindo um ponto de partida para o programa executar (funo main), devendo o programador pensar do seguinte modo: quando o utilizador realizar esta aco, o programa dever realizar.... Para seleccionar qual o evento que se pretende associar a um determinado objecto, seleccionase o objecto no Object Inspector (ver figura 2.9), seleccionando-se, de seguida, o menu de eventos. Na figura 2.13, visualizam-se os eventos referentes a um boto. De referir que um objecto pode ter associado a si diversos eventos, executando o cdigo consoante a aco despoletada pelo utilizador.

Figura 2.14: Eventos possveis para o objecto Button1.

Para seleccionar um determinado evento, dever fazer duplo clique sobre o lado direito do evento, aparecendo a funo (mais tecnicamente: mtodo associado classe Form1) onde se ir inserir o cdigo. Na figura 2.14, apresenta-se o cdigo associado ao evento OnClick (quando se clica) de um determinado boto.

Joo Gonalves {joaosantos@est.ipcb.pt}

- 10 -

Figura 2.15: Funo associada ao evento OnClick do Button1.

Na figura 2.15, apresenta-se um exemplo de dois eventos distintos associados a um boto, denominado de Button1 (a propriedade Name do boto igual a Button1, que no convm alterar. A propriedade Caption, aquela que o utilizador ir visualizar, pode ser uma qualquer). Um dos eventos refere-se ao clique do boto e o outro refere-se ao pressionar de uma tecla, neste caso o boto apenas reage tecla a.

Figura 2.16: Aspecto da Unit, aps a insero do cdigo associado aos eventos.

Ao analisar o Object Inspector, verifica-se que o objecto Button1 possui dois eventos associados a si:

Joo Gonalves {joaosantos@est.ipcb.pt}

- 11 -

Figura 2.17: Eventos associados ao Button1.

Na figura 2.17, apresenta-se o cdigo de como mudar a Caption de um boto (Button2) em tempo de execuo, clicando noutro boto (Button1).

Figura 2.18: Cdigo para alterar a propriedade Caption de um boto atravs de um evento, associado a outro boto.

Figura 2.19: Aspecto da aplicao, antes e depois do evento.

Joo Gonalves {joaosantos@est.ipcb.pt}

- 12 -

Captulo 3
3. Tipos de Dados do C++Builder
Qualquer elemento de texto que seja visvel nas Forms, consiste numa AnsiString, este tipo de dados, que na realidade um objecto possuindo mtodos e atributos prprios, no deve ser confundido com as strings normais (vectores de caracteres). Na tabela 3.1, apresenta-se as principais diferenas, a nvel de operaes, entre os dois tipos de dados.
Tabela 3.1: Operaes com string e AnsiString.

Operao cpia concatenao comparao tamanho

char dest[n], origem[n];


strcpy(dest, origem) strcat(dest, origem) strcmp(dest, origem) strlen(dest)

AnsiString dest, origem;


dest = origem dest = dest + origem dest == origem dest.Length()

1.4. Converso de Tipos de Dados para AnsiString e Vice-Versa


Para mostrar ou capturar dados que so visveis nas Forms, necessrio proceder a uma converso entre tipos de dados. Na tabela 3.2, apresentam-se as funes utilizadas para a converso entre os diversos tipos de dados.
Tabela 3.2: Funes de converses entre tipos.

Converso De AnsiString para inteiro De inteiro para AnsiString De AnsiString para real De real para AnsiString De AnsiString para string De string para AnsiString

Funo
int x = StrToInt(12); AnsiString y = IntToStr(12); float x = StrToFloat(12.5); AnsiString y = FloatToStr(12.5); char x[]; strcpy(x, Astr.c_str()); AnsiString Astr; Astr.Insert(x, 1);

Na figura 3.1, apresenta-se o cdigo de um programa que realiza a soma entre dois nmeros inteiros inseridos em dois Edits (Edit1 e Edit2), apresentando-se o resultado noutro Edit (Edit3), quando se pressionar um boto (Button1).

Joo Gonalves {joaosantos@est.ipcb.pt}

- 13 -

Figura 3.20: Cdigo utilizado para somar dois nmeros.

Na figura 3.2, apresenta-se o resultado visual da aplicao desenvolvida.

Figura 3.21: Aplicao que procede soma de dois nmeros inteiros.

Joo Gonalves {joaosantos@est.ipcb.pt}

- 14 -

1.5. Tipos de Dados do C++Builder


Alm dos tipos normais de dados definidos na linguagem C: char, double, float e int, com variaes de sinal (signed ou unsigned), existem outros tipos de dados definidos pelo C+ +Builder. Na tabela 3.3, apresenta-se um resumo dos tipos de dados definidos pelo C+ +Builder.
Tabela 3.3: Tipos de dados mais comuns do C++Builder.

Designao
__int8 __int16 __int32 __int64 AnsiString bool

Nmero de bits
8 16 32 64 8 1

Descrio Inteiro a 8 bits Inteiro a 16 bits Inteiro a 32 bits Inteiro a 64 bits Strings de caracteres de 8 bits Varivel boolena (true ou false) Utilizado para referenciar que a varivel sempre positiva. Pode ser aplicado a qualquer um dos tipos de dados. Se se utilizar apenas unsigned, assume-se por defeito que aplicada ao tipo de dados int. Indica um inteiro de 16 bits, quando aplicado sozinho. Indica um inteiro de 32 bits, quando aplicado sozinho.

unsigned

16

short long

16 32

Joo Gonalves {joaosantos@est.ipcb.pt}

- 15 -

Вам также может понравиться