Sei sulla pagina 1di 3

7.

1 Programao Orientada a Objetos


7.1.1. Objetos e Classes
Todos os elementos de uma interface (botes, caixas de texto, menus, barras de rolagem, imagens, etc) so considerados
objetos. Estes objetos podemser visuais como os botes, por exemplo, ou no visuais como umtemporizador (timer).
O C++Builder e outros ambientes integrados de desenvolvimento tambmse referema estes objetos como componentes.
No C++Builder cada objeto pertence a uma determinada classe. Por exemplo, os botes so da classe TButton, as caixas de
texto so da TEdit, etc.
7.1.2. Propriedades
As propriedades so utilizadas para diferenciar objetos de uma mesma classe. Podemos ter, por exemplo, trs botes
(objetos da classe TButton) cada umcomsuas caractersticas prprias: comprimento, altura, rtulo, etc.
7.1.3. Eventos
Cada objeto est sujeito a uma srie de aes do usurio, que chamamos de eventos. Estes eventos, como umclique ou um
duplo-clique, por exemplo, devemser programados para que a aplicao possa responder s aes do usurio.
Os eventos tambmpodemser gerados pela prpria aplicao, ou at mesmo pelo Windows.
7.1.4. Mtodos
Os mtodos so procedimentos que j esto previamente definidos e incorporados a cada objeto. Por exemplo, para limpar o
contedo de uma caixa de texto, podemos utilizar o mtodo Clear.
7.2 Propriedades mais comuns
A citao das propriedades que se seguem tem mais um carter ilustrativo do que informativo. No se tem a inteno de
descrever todas as propriedades de todos os componentes. Para saber mais sobre uma propriedade:
clique emuma propriedade no Inspetor de Objetos (Object Inspector);
pressione a tecla F1.
7.2.1. Name
Os objetos possuem muitas propriedades comuns. Dentre elas a mais importante a Name (nome, conforme Figura 7-1).
Todo objeto em um projeto possui uma propriedade Name e o valor desta deve ser nico. Colocar nomes significativos no
apenas faz seu cdigo mais legvel como tambmprevine conflitos futuros comoutros nomes.
FIGURA 7-1: PROPRIEDADE NAME DE UM OBJ ETO DA CLASSE TLABEL

Os nomes dos objetos devem seguir a regra de formao de um identificador em Builder. Se voc tentar colocar um
identificador no consistente coma regra, o Builder acusar tal falta.
7.2.2. Caption e Text
A propriedade Caption (ttulo) uma seqncia de caracteres (String) associada ao objeto como objetivo de identific-lo ao
usurio. No necessrio que seja um identificador da linguagem e usado, em termos gerais, sem sofrer modificaes em
tempo de execuo.
Para sublinhar umcaractere emumttulo que rotula umobjeto, inclua um& (e comercial) antes do caractere. Este tipo de
caractere chamado de caractere de atalho. O usurio pode selecionar o objeto pressionando a tecla Alt enquanto digita o
caractere de atalho. Para mostrar um& emumttulo, utilize &&.
A propriedade Text (texto) tambm uma seqncia de caracteres associada ao objeto e que usada para se ler ou se
especificar um novo valor para esta. No necessrio que seja um identificador da linguagem e usado, em termos gerais,
sofrendo modificaes emtempo de execuo.
C++Builder para Universitrios http://www.macsystemeduc.com.br/livros/cpp7/exemplo7.html
1 de 3 21/11/2012 20:01
Por padro, as propriedades Caption e Text so colocadas, pelo IDE, como mesmo valor da propriedade Name.
Nemtodos os objetos possuemas propriedades Caption e Text. Normalmente Caixas de Edio so dotadas da propriedade
Text, enquanto objetos comTextos de Mensagemusama propriedade Caption.

.
.
.

Ex 2) Elaborar umPrograma C++Builder para calcular e exibir a Mdia Aritmtica de dois valores quaisquer.
Soluo 1:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n1, n2;
double m;
n1 = St r ToI nt ( Edi t 1- >Text ) ;
n2 = St r ToI nt ( Edi t 2- >Text ) ;
m= ( n1+n2) / 2;
Edi t 3- >Text = Fl oat ToSt r ( m) ;
}

Obs.: Esta no a soluo adequada pois estamos dividindo uma soma de inteiros por umvalor tambminteiro. O resultado
deste tipo de operao o inteiro da diviso, isto , se dividirmos 10 por 4 vamos obter 2 ao invs de 2.5.

Soluo 2:

void __fastcall TFor m1: : But t on1Cl i ck( TObj ect *Sender )
{
int n1, n2;
double m;
n1 = St r ToI nt ( Edi t 1- >Text ) ;
n2 = St r ToI nt ( Edi t 2- >Text ) ;
m= ( n1+n2) / 2. 0;
Edi t 3- >Text = Fl oat ToSt r ( m) ;
}

Obs.: Para evitar a diviso inteira podemos, por exemplo, escrever o denominador da frao como 2.0 ao invs de 2, para
indicar que se trata de uma diviso componto flutuante.
Soluo 3:
void __fastcall TFor m1: : But t on1Cl i ck( TObj ect *Sender )
{
int n1, n2;
double m;
n1 = St r ToI nt ( Edi t 1- >Text ) ;
n2 = St r ToI nt ( Edi t 2- >Text ) ;
m= float( n1+n2) / 2;
Edi t 3- >Text = Fl oat ToSt r ( m) ;
}
Obs.: Outra maneira de indicar que o resultado da expresso deve ser ponto flutuante utilizar o Type Casting. Colocando-se
float no incio da expresso, indicamos que o resultado deve ser ponto flutuante.
Soluo 4:
C++Builder para Universitrios http://www.macsystemeduc.com.br/livros/cpp7/exemplo7.html
2 de 3 21/11/2012 20:01
void __fastcall TFor m1: : But t on1Cl i ck( TObj ect *Sender )
{
int n1 = St r ToI nt ( Edi t 1- >Text ) ;
int n2 = St r ToI nt ( Edi t 2- >Text ) ;
double m= ( n1+n2) / 2. 0;
Edi t 3- >Text = Fl oat ToSt r ( m) ;
}
Obs.: Esta soluo mostra a flexibilidade existente na declarao das variveis. As mesmas podemser declaradas no incio do
procedimento ou mais adiante, antes de seremutilizadas.
Soluo 5:
void __fastcall TFor m1: : But t on1Cl i ck( TObj ect *Sender )
{
double n1 = St r ToFl oat ( Edi t 1- >Text ) ;
double n2 = St r ToFl oat ( Edi t 2- >Text ) ;
double m= ( n1+n2) / 2. 0;
Edi t 3- >Text = Fl oat ToSt r ( m) ;
}

Obs.: Ao contrrio das solues anteriores, esta ltima soluo permite que sejam calculadas mdias de notas que no so
inteiras. Basta trocarmos o tipo int por double e a funo de converso StrToInt para StrToFloat.
Comentrio: Muito cuidado com a escolha do tipo das variveis e com a utilizao correta das funes de converso. Nesta
ltima soluo, por exemplo, se apenas trocarmos a funo de converso StrToInt para StrToFloat mas deixarmos as variveis
n1 e n2 como inteiras e tentarmos calcular a mdia de 6.5 e 8.5, por exemplo, vamos obter como resultado o valor 7. Isto ocorre
porque as variveis n1 e n2 so inteiras e armazenamos valores 6 e 8 ao invs de 6.5 e 8.5.

C++Builder para Universitrios http://www.macsystemeduc.com.br/livros/cpp7/exemplo7.html
3 de 3 21/11/2012 20:01

Potrebbero piacerti anche