You are on page 1of 5

C++ Builder

Ariane Bredow dos Santos


Universidade do Vale do Rio dos Sinos - UNISINOS
arianebredow@terra.com.br e bredow@bol.com.br

Resumo Mas o que são objetos? Imagine o Word... você tem


uma série de botões, cada um com uma função especifica.
Este artigo tem como objetivo apresentar as principais Esses botões são objetos. As janelas também são objetos,
características e utilidades de um ambiente de etc...
programação para a Linguagem C++. Será mostrado as Cada objeto tem suas propriedades e respondem a
suas principais funcionalidades, características e um eventos. Imagine uma pessoa comparada a um objeto, esta
pouco do ambiente do C++ Builder. pessoa tem uma altura, cor de olhos, etc... Cada objeto,
tem o seu tamanho, sua cor, seu posicionamento na janela,
1. Introdução etc... ou seja, cada objeto tem as suas propriedades.
Além de possuir propriedades, os objetos respondem a
Quando falamos em Borland C++ Builder, estamos nos eventos, veja o exemplo a seguir:
referindo ao trabalho com a linguagem C++. O Builder é • Ao clicar no botão de sua aplicação o arquivo de
um ambiente de desenvolvimento visual orientado a texto será aberto.
objetos destinados à criação de aplicações cliente/servidor Observe que ocorreu aqui um evento, ou seja, após o
para os sistemas operacionais Windows 95/98 e Windows clique (evento) será programada uma ação no projeto.
NT. • Quando o formulário for fechado emitir um sinal
Com ele você poderá criar aplicações extremamente sonoro.
eficientes com o mínimo de codificação manual. A grande Aqui temos outro evento, ou seja, quando o formulário
vantagem deste ambiente é que, para gerar um aplicativo, for fechado (evento) será programada uma ação no
o inicio do processo se dá de forma visual, porém é muito projeto.
importante que você tenha uma boa noção da Quando trabalhamos com programação orientada a
programação em C ou C++. objetos, temos que saber o significado de alguns termos.
Com o Delphi por exemplo, você gera seus aplicativos Entre eles destacamos:
de forma visual e na hora de programar eventos, utiliza o
Pascal. O mesmo ocorre com o Borland C++ Builder, 2.1. Objetos e Classes
porém com a programação voltada ao C++.
Todos os elementos de uma interface (botões, caixas de
2. Programação Orientada a Objetos texto, menus, barras de rolagem, imagens, etc) são
considerados objetos. Estes objetos podem ser visuais
Conforme citamos, o Borland C++ Builder é um como os botões, por exemplo, ou não visuais como um
ambiente de programação orientado a objeto. Mas o que é temporizador (timer).
exatamente uma linguagem orientada a objeto? No C++ Builder cada objeto pertence a uma
Em algumas linguagens mais antigas, você deveria determinada classe. Por exemplo, os botões são da classe
escrever todo o código do seu programa, inclusive para a TButton, as caixas de texto são da TEdit, etc.
criação de janelas, botões, etc... Já em ambientes como o
Borland C++ Builder, o procedimento será parte visual e 2.2. Propriedades
parte com escrita de código. Além disso, com um clique
em um objeto (por exemplo um botão) será criada toda a As propriedades são utilizadas para diferenciar objetos
interface com o usuário e o sistema irá elaborar parte do de uma mesma classe.
código, facilitando assim a sua vida e diminuindo As propriedades mais comuns são:
consideravelmente o tempo de desenvolvimento de um Name – Os objetos possuem muitas propriedades
programa. comuns. Dentre elas a mais importante é a Name. Todo
objeto em um projeto possui uma propriedade Name e o
valor desta deve ser único. Colocar nomes significativos • Uma extensiva biblioteca;
não apenas faz seu código mais legível como também • Uma maneira fácil de alterar as propriedades de um
previne conflitos futuros com outros nomes. objeto, utilizando o Object Inspector;
Caption e Text – A propriedade Caption (título) é uma • Acesso direto ao código do programa, utilizando o
seqüência de caracteres (String) associada ao objeto com Editor de Código.
o objetivo de identificá-lo ao usuário. Não é necessário
que seja um identificador da linguagem e é usado, em 3.1. Tela Principal
termos gerais, sem sofrer modificações em tempo de
execução.
A propriedade Text (texto) também é uma seqüência de
caracteres associada ao objeto e que é usada para se ler ou
se especificar um novo valor para esta. Não é necessário
que seja um identificador da linguagem e é usado, em
termos gerais, sofrendo modificações em tempo de
execução.
Nem todos os objetos possuem as propriedades
Caption e Text. Normalmente Caixas de Edição são
dotadas da propriedade Text, enquanto objetos com
Textos de Mensagem usam a propriedade Caption.

2.3. Eventos

Capacidade de resposta do objeto a uma determinada


ação que sobre ele ocorrer.

2.4. Métodos
Figura 1. Tela Principal
Define o comportamento dos objetos de uma
determinada classe
3.2. SpeedBar
2.5. Formulário
SpeedBar é uma barra de ferramenta que contém
botões para a execução das atividades mais utilizadas nas
Elemento básico da programação orientada a objetos.
opções que estão contidas no Menu do Builder.
Nesta iremos agrupar os componentes necessários ao
desenvolvimento de nosso projeto.

2.6. Outros
Figura 2. SpeedBar
Instância – É um objeto por completo;
Mensagem – Define a comunicação entre objetos;
Unidade – Arquivo que contém o código fonte. Para
cada formulário teremos uma unidade;
Componente – Objeto disponível para utilização em
nosso projeto; Figura 3. Menu do Builder
Projeto – Seria o mesmo que programa, ou seja, é o
conjunto de formulários que formam a sua aplicação.
3.3. Object Inspector
3. O Ambiente C++ Builder Permite visualizar rapidamente as propriedades e
eventos de um determinado objeto, mostrando ainda de
O BCB (Borland C++ Builder) imediatamente qual classe ele pertence.
apresenta as ferramentas necessárias para que você inicie Para verificar as propriedades de um determinado
a criação da aplicação: objeto, basta clicar no objeto em que se esta trabalhando,
• Uma janela em branco, conhecida como e o Object Inspector alternará para as propriedades e
formulário, na qual você criará a interface do usuário; eventos deste objeto.
Figura 6. Formulário

4. Arquivos usados em projetos C++ Builder

Quando você cria um projeto, o C++ Builder cria os


seguintes arquivos:
• O arquivo de projeto: contém a função WinMain()
e outros códigos de inicialização. Para vê-lo selecione
Figura 4. Object Inspector View | Project source do Menu principal;
• Os arquivos fonte e header do formulário principal:
3.4. Código Fonte contêm a definição e declaração da classe do formulário
principal;
O Editor de Código é um completo e poderoso editor • Os arquivos de recursos da aplicação e do
ASCII. Com ele, você poderá visualizar e editar todos os formulário principal: arquivos binários que descrevem os
códigos fontes que seu projeto contém. A figura abaixo ícones da aplicação e do formulário principal.
mostra um arquivo default criado para cada novo projeto. • O arquivo de projeto makefile: é um arquivo texto
Este e um dos vários arquivos que compõem um Projeto. contendo informações sobre opções de compilação, nomes
de arquivos fontes, formulários e bibliotecas incluídas.

4.1. Tipos de Arquivos

.CPP – Neste arquivo está a função principal


(WinMain) do projeto, que por sua vez inicializa a
execução do projeto e a criação de todos os formulários
em tempo de execução.
.BPR – Neste arquivo tem informações da versão do
builder, formulários que estão ligados ao projeto, etc...
.DFM – Possui a imagem do formulário. Cada
formulário tem seu próprio .DFM
.DSK – Guarda a aparência do projeto desde a última
Figura 5. Editor de código vez em que foi salvado ou fechado. (tamanho, posição e
situação das janelas, etc.)
3.5. Formulários .EXE – O programa executável.
.H – Arquivos que contém declarações de classe.
Um dos componente básico do sistema de programação Podem ser gerados pelo C++ ou pelo programador.
do C++ Builder é o form. Durante o desenvolvimento, o .IL? – Os quatro arquivos com extensão iniciando com
programador posiciona visualmente no form os .IL são criados para informar ao linker incremental as
componentes que deseja que apareçam em seu programa. partes do programa que foram alteradas desde a última
Depois que o programa está pronto, o form representa a montagem, poupando tempo de linkagem.
janela do programa. Ele é a parte mais visível do sistema, .OBJ – Arquivo que contém o resultado da compilação
com a qual o usuário do programa interage a maior parte dos arquivos fonte.
do tempo. .MAK – O arquivo de projeto Makefile.
.RES – Arquivos de recursos binários compilados, Os tipos que mais utilizaremos são o int, o double e o
gerados pelo compilador de recursos. bool. Na necessidade de um tipo para texto, utilizaremos,
.TDW – Tabela de símbolos do debugger. Usado por exemplo, a classe String.
durante as sessões de debug.
Dica: Para liberar espaço do disco, é seguro deletar os 6. Funções do C++ Builder
arquivos com extensões: .OBJ, .RES e .TDS, além dos
arquivos cuja extensão começam com .IL e com .~ Além das operações matemáticas fundamentais, para a
solução de nossos problemas são necessárias outras
5. Variáveis e Tipos Predefinidos de Dados funções como raiz quadrada, logaritmo, seno, cosseno e
outras. Algumas dessas funções fazem parte da biblioteca
Fisicamente, variável é uma região na memória RAM padrão do C++ definida no arquivo stdlib.h. Outras
do computador utilizada para representar um dado. Tem funções mais complexas estão definidas no arquivo
seu tipo, com um conjunto de processos utilizados para math.h.
sua manipulação e pode ter seu conteúdo alterado durante
a execução do programa. A Figura abaixo ilustra uma 6.1. Principais Funções
variável, seu endereço e seu conteúdo armazenado em um
ou mais bytes. As principais funções da biblioteca stdlib.h são:

Função Sintaxe Descrição


Retorna o valor absoluto (sem
abs int abs(int x)
sinal) de um inteiro.
double atof(const char Converte uma String para ponto
atof
*s) flutuante.
Converte uma String para um
atoi int atoi(const char *s)
valor inteiro.
long atol(const char Converte uma String para um
atol
*s) inteiro longo.
char *fcvt(double
Converte um número em ponto
fcvt value, int ndig, int
Figura 7. Conteúdo de uma variável flutuante para String.
*dec, int *sign)
Converte um valor inteiro para
Os tipos predefinidos em C++ são divididos em duas char *itoa(int value,
itoa String. Retorna um ponteiro
char *string, int radix)
categorias: Fundamentais e Genéricos. O tamanho e o para String.
faixa de valores dos tipos Fundamentais são Retorna o valor absoluto de um
labs long labs(long int x)
independentes da CPU e do sistema operacional e não inteiro longo.
mudam entre diferentes versões da linguagem. Por outro random int random(int num)
Gera um número aleatório entre
lado, o tamanho e a faixa de valores dos tipos Genéricos 0 e num-1.
são dependentes da CPU e do sistema operacional. Inicializa o gerador de números
randomize void randomize(void)
aleatórios.
Tipo Valores double strtod(const
Converte um String para ponto
strtod char *s, char
char {-128, ..., -1, 0, 1, ..., 127} e caracteres ASCII flutuante (longo ou não).
**endptr)
int {-2147483648, ..., -1, 0, 1, ..., 2147483647}
long strtol(const char
short {-32768, ..., -1, 0, 1, ..., 32767} Converte um String para um
strtol *s, char **endptr, int
{-2147483648, ..., -1, 0, 1, ..., 2147483647}
inteiro longo.
long radix)
unsigned char {0, 1, 2, ..., 255} unsigned long
unsigned int {0, 1, 2, ..., 4294967295} strtoul(const char *s, Converte um String para um
strtoul
unsigned short {0, 1, 2, ..., 65535} char **endptr, int inteiro longo sem sinal.
radix)
unsigned long {0, 1, 2, ..., 4294967295}
char *ultoa(unsigned
bool {false, true} Converte um inteiro longo sem
ultoa long value, char
float {7 dígitos significativos, Emáx=38} sinal para String.
*string, int radix)
double {15 dígitos significativos, Emáx=308}
long double {19 dígitos significativos, Emáx=4932} Tabela 2. Funções da biblioteca stdlib.h
void Não representa valor
Tabela 1. Tipos predefinidos do C++ Builder
As funções da stdlib.h podem ser utilizadas no C++ faltando )
Builder sem a necessidade de incluir nenhum arquivo Compound statement Comando composto
extra. Já as funções da math.h, para serem utilizadas missing } faltando }
necessitam da inclusão do arquivo de cabeçalho. Isto deve 'Nmax' is assigned a value 'Nmax' é atribuído um
ser feito logo abaixo da inclusão da vcl.h que é a that is never used. valor que nunca é usado.
biblioteca padrão do Builder. 'E' is declared but never 'E' é declarada mas nunca
#include <vcl.h> used. usada.
#include <math.h> Declaration terminated Declaração terminada
incorrectly incorretamente
As principais funções da biblioteca math.h são: do statement must have
O comando deve ter while
while
Função Sintaxe Descrição
Tabela 4. Mensagens de erro
acos double acos(double x) Arco Cosseno de x.
asin double asin(double x) Arco Seno de x. 8. Dicas para uma boa programação
atan double atan(double x) Arco Tangente de x. - A linguagem C++ faz distinção entre maiúsculas e
cos double cos(double x) Cosseno de x. minúsculas, portanto, StrToFloat é diferente de strtofloat;
- Algumas propriedades não podem conter valor nulo
cosh double cosh(double x) Cosseno hiperbólico de x. (em branco), principalmente a propriedade Name;
- Não esqueça do ponto e vírgula no final dos
exp double exp(double x) Exponencial de x (ex). comandos;
- Use os disquetes apenas para transportar os seus
Retorna o valor absoluto arquivos (copiar de uma pasta no HD para o disquete e
fabs double fabs(double x)
de um ponto flutuante. vice-versa);
Logaritmo natural (base e) - Para poupar espaço, antes de gravar do HD para o seu
log double log(double x) disquete, limpe a pasta da aplicação.
de x.

log10 double log10(double x) Logaritmo base 10 de x. 9. Conclusão


double pow(double x, Retorna o valor de x
pow
double y) elevado a y. Aqui foi feito uma breve introdução ao C++ Builder,
apresentando de forma sucinta o novo ambiente.
sin double sin(double x) Seno de x.
sinh double sinh(double x) Seno hiperbólico de x. 10. Referências Bibliográficas
sqrt double sqrt(double x) Raiz quadrada de x.
Sites:
tan double tan(double x) Tangente de x. www.lubas.hpg.ig.com.br
www.dainh.cefetpr.br/~robson/prof/topicos/cbuilder/
tanh double tanh(double x) Tangente hiperbólica de x. introbuilder.htm
http://macsystemeduc.com.br/livros/builder.html
Tabela 3. Funções da biblioteca math.h www.cade.com.br
www.google.com.br
7. Mensagens de Erro geradas pelo C++
Builder

Mensagem Tradução
Undefined symbol 'x0' Símbolo indefinido 'x0'
comando faltando ; (ponto
Statement missing ;
e vírgula)
Possible use of 'Nmax' Possível uso de 'Nmax'
before definition antes da definição
'Texti' is not a member of 'Texti' não é um membro
'Stdctrls::TEdit' de 'Stdctrls::TEdit'
Do-while statement missing ) Comando Do-while está
faltando )

You might also like