Vous êtes sur la page 1sur 23

Usando os Recursos Grficos do Borland C++

Profa. Dra. Agma Juci Machado Traina Fabio Jun Takada Chino Jos Fernando Rodrigues Jnior

Borland C++ Builder

Ambiente visual para o desenvolvimento de aplicativos.


C++ Windows/Linux (a partir da verso 6) A construo das interfaces feita com a filosofia WYSIWYG.

Agiliza a construo da interface com o usurio.

Paleta de componentes

Object Inspector

Form Editor

Programao Orientada a Eventos

A programao para Windows e outros sistemas de janelas orientada a eventos.

O processamento s ocorre em resposta a um evento.

Pressionar um boto, selecionar um item no menu, etc.

Para cada evento existe um handle associado.

Funes especiais encarregadas de tratar um evento (callbacks).

Cada componente grfico pode responder a um determinado conjunto de eventos.

Programao Orientada a Objetos

Paradigma de programao baseado na organizao dos componentes de software em objetos.

Abstrao mais prxima do mundo real. Encapsulamento; Polimorfismo; Especializao, generalizao e herana; Classes e objetos.

Principais conceitos

Programao Orientada a Objetos

C++ e OOP

Classes

Mtodos e campos; Construtores e destrutores; Escopo pblico, protegido e privado; Herana.

Extenses do C++ Builder


Property.

Forma alternativa de acesso a campos. Uma variante do escopo pblico utilizado pela IDE.

Escopo published.

Programando com o C++

Classes so semelhantes estruturas porm possuem mtodos associados. Criando e destrundo instncias de classes:

Operadores new/delete; Invocando construtores.

myClass myObject = new myClass(...);

Acesso a mtodos e campos


myObject.myFunction(); myObject->myFunction();

Programando com o C++ - Classes

Classes:

Declarao:
class <cname>{ public: <type> <mname>(<pars>); private: <type> <fname>; } <type> <cname>::<mname>(<pars>){ ... }

Programando com o C++ - Classes

Classes:

Declarao:
class myClass{ public: void myMethod(int myPar); private: int myField; } void myClass::myMethod(int myPar){ ... }

Programando com o C++ - Classes

Observaes sobre classes:

Todos os campos de uma classe so globais a todos os mtodos desta;

No confundir com variveis globais.

O C++ permite campos em qualquer um dos escopos porm no se deve coloc-los no escopo pblico;

Se um campo precisa ser acessado diretamente, deve haver um mtodo na interface da classe.

Propriedades do C++ Builder parecem campos comuns mas na realidade ocultam chamadas de mtodos.

Programando com o C++ Diferenas com o C

Operadores new/delete

Evite o uso do malloc/free

Podem ser utilizados mas no devem ser misturados com o new/delete; struct s * i = new struct s; delete i; int * darray = new int[len]; int sarray[10]; delete [] darray;

Estruturas e outros tipos:


Arrays

Programando com o C++ Diferenas com o C

Declaraes de parmetros de funo por referncia podem ser declarados e usados de forma transparente:

void func(struct st * s) [C]

func(&s); func(s);

void func(struct st & s) [C++]

Componentes

O C++ Builder trabalha com o conceito de componentes.


Classes com comportamento variado mas com interfaces bem definida. Componentes podem ser combinados para construir uma aplicao rpida e com poucas linhas de cdigo.

A VCL a biblioteca de classes do C++ Builder que implementa todos os componentes visuais e no-visuais.

Criando um Pequeno Aplicativo: Hello Word!

Criar um aplicativo com um boto que imprima a mensagem Hello World!.

Componentes:

TForm TButton OnClick MessageBox

Eventos:

Funes opcionais:

Criando um Pequeno Aplicativo: Hello Word!


Iniciar um novo projeto; Colocar um boto na janela; Selecionar o boto; Usando o Object Inspector:

Atrbuir um nome; Mudar o texto (Caption); MessageBox(Handle, Hello world!, Hello world!, 0);

Colocar o cdigo para o evento OnClick:

Executar o programa.

Recursos Grficos: TCanvas

A maioria dos componentes grficos do C++ Builder possuem uma propriedade chamada Canvas.

Uma instncia de um TCanvas que abstrai a API grfica do Windows para aquele componente.

O TCanvas permite desenhar na rea visvel do componente usando primitivas de desenho como pontos, retas, crculos, etc.

Primitivas Grficas

Cores:

Padro RGB representado pelo tipo TColor.


Inteiro de 32-bits. 8-bits para cada atributo: AABBGGRR ToTColor(r,g,b) = r | (g << 8) | (b << 16)

Primitivas:

Pontos

Pixels[x][y] Arc() MoveTo()/LineTo() Polygon()

Primitivas

Carregando Imagens

O TCanvas pode desenhar qualquer instncia da classe TGraphic (representa uma imagem)

Draw()

Existem muitas implementaes da TGraphic cada uma para um tipo de informao.

TBitmap, TIcon, Tmetafile, etc.

Para facilitar, o C++ Builder prov o componente TPicture que pode manipular estes dados automaticamente.

Carregando Imagens

O TPicture possui funes para trabalhar carregar ou gerar imagens. Desenhar

Bitmap->Canvas LoadFromFile() SaveToFile()

Carregar/salvar imagens

O TPicture o componente mais fcil para trabalhar com os recursos grficos bsicos.

Criando um Aplicativo com o TCanvas

Crie um aplicativo que aplique as funes de desenho.


Componentes

TPicture Pensem na interface como uma mquina de estados; Explore os eventos de mouse para melhorar a interface:

Dicas

OnClick OnMouseDown OnMouseMove OnMouseUp

Vous aimerez peut-être aussi