AP Delphi7 02

13
Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______ 4. AMBIENTE DE PROGRAMAÇÃO 4.1. ESTRUTURA DE PROJETOS No Delphi o “programa principal” tem extensão DPR. Um DPR é o código de programa, também denominado de projeto, a partir do qual o desenvolvedor construirá sua aplicação. É a partir deste projeto que será gerado o código executável (EXE). Grande parte do código, no entanto, fica armazenado em UNITs com extensão PAS, onde estão o código fonte referente aos formulários. O projeto pode ser visualizado através da opção do menu Project | View Source. Sua estrutura aparece na janela Code Editor e pode-se verificar que é muito semelhante ao programa principal do antigo Turbo Pascal © . A implementação mínima de um projeto prevê, na grande maioria das situações, o uso (cláusula Uses), a inicialização da aplicação (comando Application.Initialize), a criação dos formulários (comando Application.CreateForm) utilizados na mesma e a execução do projeto (Application.Run). program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Estrutura básica de um projeto. Um projeto em Delphi é dividido em módulos, chamados Units, seguindo a estrutura de arquivos descrita na tabela abaixo. Extensão Descrição DPR Arquivo de projeto, onde são indicados as Units e o código de inicialização do programa PAS Código fonte de uma Unit do projeto DCU Unit compilada DFM Definição visual de um Form. O código fonte está na Unit com o mesmo nome DOF Opções de configuração para o projeto RES Recursos do projeto, com o ícone do programa ~PA, ~DF, ~DP Arquivos temporários DSK Configurações de Desktop __ www.gomeshp.com _________________________________________________________________________ 17

description

APRENDENDO

Transcript of AP Delphi7 02

Page 1: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

4. AMBIENTE DE PROGRAMAÇÃO

4.1. ESTRUTURA DE PROJETOS No Delphi o “programa principal” tem extensão DPR. Um DPR é o código de programa,

também denominado de projeto, a partir do qual o desenvolvedor construirá sua aplicação. É a partir deste projeto que será gerado o código executável (EXE). Grande parte do código, no entanto, fica armazenado em UNITs com extensão PAS, onde estão o código fonte referente aos formulários.

O projeto pode ser visualizado através da opção do menu Project | View Source. Sua

estrutura aparece na janela Code Editor e pode-se verificar que é muito semelhante ao programa principal do antigo Turbo Pascal©.

A implementação mínima de um projeto prevê, na grande maioria das situações, o uso

(cláusula Uses), a inicialização da aplicação (comando Application.Initialize), a criação dos formulários (comando Application.CreateForm) utilizados na mesma e a execução do projeto (Application.Run).

program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.

Estrutura básica de um projeto. Um projeto em Delphi é dividido em módulos, chamados Units, seguindo a estrutura de

arquivos descrita na tabela abaixo.

Extensão Descrição DPR Arquivo de projeto, onde são indicados as Units e o código de inicialização do

programa PAS Código fonte de uma Unit do projeto DCU Unit compilada DFM Definição visual de um Form. O código fonte está na Unit com o mesmo nome DOF Opções de configuração para o projeto RES Recursos do projeto, com o ícone do programa ~PA, ~DF, ~DP Arquivos temporários DSK Configurações de Desktop

__ www.gomeshp.com _________________________________________________________________________ 17

Page 2: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

4.2. PROJECT MANAGER Para ajudar no gerenciamento de projetos, pode-se usar o Project Manager pelo menu View. O

Project Manager lista as Units, os Forms existentes nessas Units e o path, se a Unit não estiver na pasta do projeto. Através dos botões do Project Manager você pode adicionar, excluir e visualizar Units e Forms que compõem o projeto.

Caixa de diálogo: Project Manager.

4.3. PROJECT OPTIONS Através do item Options do

menu Project, pode-se escolher diversos aspectos de um projeto.

Forms - Controla quais são os formulários criados automática-mente. Application – Especifica o título, o nome do arquivo de ajuda e o nome do ícone associado com a aplicação. Compiler – Especifica as opções gerais para o compilador que determina como o código é compilado. Compiler Messages – Controla se as dicas e advertências do compilador estão ativadas, e permite selecionar quais avisos serão apresentados. Linker – Gerencia como os arquivos de programas são linkados.

Caixa de diálogo: Project Options.

Directories/Conditionals – Especifica a localização dos arquivos necessária para compilar e linkar seu programa. Version Info – Especifica as informações de identificação do produto: número da versão, língua. Packages – Especifica os pacotes de tempo de execução e de projeto para instalar seu projeto.

__ www.gomeshp.com _________________________________________________________________________ 18

Page 3: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

4.4. GERENCIAMENTO DE PROJETOS Segue uma descrição das mais importantes opções de menu para o gerenciamento de

projetos, algumas dessas opções têm um botão correspondente na barra de ferramentas.

File New Abre um diálogo com novos itens que podem ser adicionados ao projeto New Form Adiciona um novo formulário ao projeto Open Abrir projetos pode abrir também Units, Forms e texto no editor de código Save Salva o arquivo aberto no editor de código Save Project As Salva o projeto com outro nome ou local Save All Salva o projeto e todas as Units deste projeto Use Unit Faz com que a Unit atual possa usar outra Unit do projeto Add file to Project Adiciona uma Unit em disco ao projeto Remove file from Project

Remove uma Unit do projeto

View Project Manager Mostra o gerenciador de projeto Project Source Mostra o código do projeto Object Inspector Mostra o Object Inspector Toggle Form/Unit Alterna entre o Form e a Unit View Units Mostra o código fonte de uma Unit ou do Projeto a partir de uma lista View Forms Seleciona um Form a partir de uma lista Project Compile Compila o projeto Options Opções do projeto, como ícone do executável, nome da aplicação e opções de

compilação Run Run Compila e executa o projeto

4.5. AJUDA

O sistema de ajuda do Delphi é a referência mais completa, seguida pelos manuais do usuário cedidos com o sistema. Se quiser ajuda sobre um componente, selecione-o e aperte F1, o mesmo pode ser feito com propriedades e eventos, no Object Inspector e comandos, no editor de código.

__ www.gomeshp.com _________________________________________________________________________ 19

Page 4: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

5. BIBLIOTECA DE CLASSES

5.1. NOMENCLATURA Para nomear os componentes podemos usar uma convenção muito utilizada, onde as

primeiras letras, minúsculas, identificam o tipo do componente e o restante identifica a função deste, assim, btnSair, seria o botão de sair.

Se a função do componente for um nome composto esse nome deve ser escrito com os

primeiros nomes abreviados e com letras de caso variável, como em btnRelVendas, que seria o botão do relatório de vendas ou btnRelVenProduto, que seria o botão do relatório de vendas por produto.

5.2. PROPRIEDADES As propriedades são características dos componentes, como foi mostrado anteriormente. Para

alterar propriedades em código use a sintaxe de ponto, como mostrado abaixo.

5.2.1. Tipo String Button1.Caption := 'Fechar'; Label1.Caption := Edit1.Text + '/' + Edit2.Text;

5.2.2. Tipo Numérico Button2.Height := Button2.Height * 2; Button3.Width := Button1.Width + Button2.Width + 12;

5.2.3. Tipo Enumerado BorderStyle := bsDialog; Panel1.Color := clWindow;

5.2.4. Propriedades Aninhadas de Classe Memo1.Lines.Text := 'E agora, José?'; Label1.Font.Color := clBlue;

5.2.5. Propriedades Comuns

As propriedades mais comuns, presentes nos componentes do Delphi são:

__ www.gomeshp.com _________________________________________________________________________ 20

Page 5: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

Nome Descrição Align Determina o alinhamento de controle Caption Legenda do componente (com o &, indica atalho) Name Nome da instância do componente Left Posição esquerda Top Posição superior Height Altura do componente Width Largura do componente ComponentCount O número de componentes possuídos Components Uma matriz de componentes possuídos Color Indica a cor do componente Font Indica a fonte (letra) a ser usada no componente Enabled Indica se o componente está ativado ou não Visible Indica se o componente está visível ou não Hint String utilizada para dicas instantâneas ShowHint Mostra ou não as dicas instantâneas PopupMenu Menu que será mostrado com o click do botão direito do mouse TabOrder Define a ordem de tabulação do componente (tecla TAB) TabStop Indica se o componente será ponto de parada para a tecla TAB HelpContext Número utilizado para chamar o help sensível ao contexto Tag Contém um número inteiro, que pode ser a identificação do componente

5.3. VARIÁVEIS NO AMBIENTE DELPHI

Variável é um local nomeado da memória, onde são guardados dados que podem ser mudados em tempo de execução. O nome de uma variável pode ter até 255 caracteres, tem que começar com uma letra, não pode conter caracteres brasileiros e ser única. O nome pode conter números e sublinhados e não pode ser uma palavra reservada. Existem vários tipos de variáveis, dependendo do tipo de dados que queremos que ela armazene.

Inteiros Bytes Faixa Reais Bytes Faixa ShortInt 1 -128 a 127 Real 6 2,9.10-39 a 1,7.1038 Integer 2 -32768 a 32767 Single 4 1,5.10-45 a 3,4.1038 LongInt 4 -2147483648 a

2147483647 Double 8 5.10-324 a 1,7.10308

Byte 1 0 a 255 Extended 10 3,4.10-4932 a 1,1.104932 Word 2 0 a 65535 Comp 8 -263+1 a 263-1 Booleanos Bytes Faixa Booleanos Bytes Faixa Boolean 1 1 byte booleano WordBoll 2 Word - sized Booleano ByteBool 1 Byte - sized

Booleano LongBoll 4 Double - word - sized

Booleano

__ www.gomeshp.com _________________________________________________________________________ 21

Page 6: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

5.3.1. Formas de Declarar uma Variável

As variáveis são declaradas usando-se a palavra reservada Var, o nome da variável, dois pontos e o tipo: Var Valor1 : Real;

Elas podem ser declaradas em três locais diferentes, conforme a sua abrangência:

Variável Local; ela será utilizada somente pelo procedimento onde está declarada; terminado o procedimento ela desaparecerá da memória. É declarada logo após o cabeçalho do procedimento.

Variável de Unidade (Unit); a variável será utilizada por todos os procedimentos e funções

da unidade. É declarada logo após a palavra reservada implementation. Variável de projeto; é a variável que poderá ser utilizada por toda a aplicação, ou seja,

poderá ser utilizada por outras unidades. É declarada na seção interface da unidade.

5.4. MÉTODOS Os métodos são as ações realizadas pela classe, ou seja, são as funções às quais estão

associados os comportamentos da classe.

5.4.1. Métodos Comuns Os métodos mais comuns das classes do Delphi são:

Nome Descrição Create Cria uma nova instância do objeto Destroy Destrói a instância do objeto Show Torna o componente visível Hide Torna o componente invisível SetFocus Coloca o foco no componente Focused Determina se o componente está com o foco BringToFront Coloca o componente na frente dos demais SendToBack Coloca o componente atrás dos demais ScaleBy Gradua o componente em determinada escala SetBounds Muda a posição e o tamanho do componente

5.5. EVENTOS Os eventos são blocos de comandos que associam a ocorrência de alguma atividade a uma

ação a ser tomada. O Delphi possui mais de 130 eventos pré-definidos, que estão associados à ocorrência de ações, nas mais diversas classes.

__ www.gomeshp.com _________________________________________________________________________ 22

Page 7: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

Uma linguagem de programação orientada a eventos não tem necessariamente um início ou final lógico, isto é, de acordo com uma seqüência de comados, pois as ações só são realizadas a partir do instante que ocorre um evento.

Um evento pode estar associado a: • clique ou movimento do mouse; • acionamento do teclado; • operações sobre janelas (abrir, fechar, criar, redimensionar, mover, ...); • erros de execução; etc.

5.5.1. Eventos Comuns Alguns dos principais eventos do Delphi são:

Nome Descrição OnActivate Ocorre quando o programa ativa o objeto pela primeira vez, ou quando se

retorna de um outro aplicativo. OnChange Ocorre quando muda o conteúdo de um objeto. OnClick Ocorre quando o usuário dá um clique no botão esquerdo do mouse. OnClose Ocorre quando o objeto é fechado. OnCreate Ocorre quando o objeto é criado. OnDblClick Ocorre quando é feito um duplo clique com o botão esquerdo do mouse. OnDeactivate Ocorre quando se sai do objeto. OnDestroy Ocorre quando se elimina um objeto. OnDragDrop Ocorre quando um objeto é arrastado para outro objeto e solto. OnDragOver Ocorre quando um objeto é arrastado para cima de outro objeto. OnDropDown Ocorre quando se abre um objeto ComboBox ou ListBox. OnEnter Ocorre quando o objeto recebe o foco. OnException Ocorre quando ocorre um erro de execução na aplicação. OnExit Ocorre quando o objeto perde o foco. OnHelp Ocorre quando é solicitada a abertura de um arquivo de ajuda. OnHide Ocorre quando o objeto passa a ser oculto. OnKeyDown Ocorre quando o usuário pressiona uma tecla, incluindo Shift, Alt e Insert. OnKeyPress Ocorre quando o usuário pressiona uma tecla ASCII. OnKeyUp Ocorre quando o usuário solta uma tecla. OnMinimize Ocorre quando se minimiza uma janela. OnMouseDown Ocorre quando o usuário clica em um botão do mouse e o cursor é

posicionado sobre a área clicada. OnMouseMove Ocorre quando o usuário move o cursor dentro da área selecionada. OnMouseUp Ocorre quando o usuário solta um botão do mouse. OnPopup Ocorre quando se ativa um menu popup com o botão direito do mouse. OnResize Ocorre quando se muda o tamanho do objeto. OnRestore Ocorre quando se restaura uma janela que foi minimizada. OnRun Ocorre quando uma aplicação inicia sua execução. OnShow Ocorre antes que o objeto se torne visível. OnTimer Ocorre em intervalos periódicos de tempo.

__ www.gomeshp.com _________________________________________________________________________ 23

Page 8: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

5.6. VCL

Por ser uma lingua-gem de programação orientada a objetos o Delphi possui uma biblio-teca de classes denomi-nada de VCL (Visual Component Library), para auxiliar na construção de programas.

A biblioteca de

classes do Delphi pode ser visualizada no Browser (no menu principal acesse View - Browser). Caixa de diálogo: Exploring Classes.

No Delphi existem: • CLASSES VISÍVEIS - As classes visíveis são aquelas que podem ser manipuladas através

da paleta de componentes, ou seja, são os próprios componentes. • CLASSES NÃO-VISÍVEIS - As classes de componentes não visíveis oferecem controles

especializados que não são possíveis ou necessários através da interface visual. As classes não visíveis mais comuns são a TApplication, a TScreen e a TPrinter.

5.6.1. TApplication Quando se inicia um projeto em Delphi, automaticamente é criada uma variável Application que

é do tipo TApplication. Esta classe permite a interação de sua aplicação com o Windows. A atribuição de valores às propriedades do TApplication pode ser feita apenas em tempo de

execução, ou durante o desenvolvimento do projeto na opção do menu Project - Options. Os principais métodos da classe TApplication são: Nome Descrição Run( ) Faz com que a aplicação seja executada, sendo colocado

automaticamente no código fonte do projeto (View - Project Source). Terminate( ) Encerra a aplicação. HelpCommand( ) Carrega o arquivo de help da aplicação.

__ www.gomeshp.com _________________________________________________________________________ 24

Page 9: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

Algumas das principais propriedades da classe TApplication são:

Nome Descrição MainForm Contém o form principal da aplicação; Title Contém o título da aplicação quando a mesma está minimizada; HelpFile Armazena o nome do arquivo de Help da aplicação; Icon Contém o ícone que representa a aplicação.

5.6.2. TScreen Quando se inicia um projeto em Delphi, automaticamente é criada uma variável Screen que é

do tipo TScreen. Esta classe contém as características da tela na qual a aplicação está rodando. Algumas das principais propriedades da classe TScreen são: Nome Descrição Cursor Contém o cursor que está em uso; Cursors Contém a lista dos cursores disponíveis para a aplicação; Fonts Contém a lista de fontes disponíveis para a aplicação; Forms Contém a lista de forms da aplicação; Height Contém a altura da tela (em pixels); Width Contém a largura da tela (em pixels).

5.6.3. TPrinter Quando se inicia um projeto em Delphi, automaticamente é criada uma variável Printer que é

do tipo TPrinter. Esta classe contém as características da impressora padrão que está sendo utilizada pelo Windows, além de permitir a impressão. Para a impressão de dados utilizando o TPrinter é necessário utilizar a classe TCanvas.

__ www.gomeshp.com _________________________________________________________________________ 25

Page 10: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

6. EXERCÍCIOS

1. CONCATENAR DUAS STRINGS • Inclua no formulário os componentes indicados como na figura a esquerda, e depois modifique a

propriedade dos componentes (Caption ou Text) como na figura a direita:

• Modifique a propriedade Name de alguns componentes ( Button1 btnConcatenar; Button2

btnLimpar; Label4 lblNome ). • Para o evento

OnClick do botão Concatenar, faça com que o Label4 receba a junção do que foi digitado no Edit1 e Edit2.

• Para o evento

OnClick do botão Limpar, faça com que os componen-tes: Edit1, Edit2 e Label4 fiquem sem conteúdo.

• Execute o projeto (F9); depois salve a unit como U_2oprograma.pas e o projeto como P_2oprograma.dpr.

• Feche a aplicação. Menu File / Opção Close

All.

__ www.gomeshp.com _________________________________________________________________________ 26

Page 11: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

2. TRABALHANDO COM TIPOS DE DADOS INTEIROS • Abra uma nova aplicação. Menu File / Opção New / Opção Application. • Inclua no formulário os componentes indicados como na figura a esquerda, e depois modifique a

propriedade dos componentes (Caption ou Text) como na figura a direita:

• Para o evento OnClick do botão Calcular, deve-se fazer a soma dos números digitados e mostrar

o resultado no Label3.

A função StrToInt é necessária para transformar um caracter em números inteiros podendo, então ser somados. A função IntToStr transforma um número inteiro em caracter, possibilitando a atribuição a propriedade Caption do Label. A, B e R são variáveis que reservam espaços na memória para armazenar temporariamente um resultado.

• Implemente o evento OnClick do botão Limpar como no

exercício anterior. Limpe o conteúdo dos componentes Edit1, Edit2 e Label3.

• Execute o projeto (F9); depois salve a unit como

U_3oprograma.pas e o projeto como P_3oprograma.dpr. • Feche a aplicação. Menu File / Opção Close All.

__ www.gomeshp.com _________________________________________________________________________ 27

Page 12: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

3. TRABALHANDO COM TIPOS DE DADOS REAIS • Abra uma nova aplicação. Menu File / Opção New / Opção Application. • Inclua no formulário os componentes indicados como na figura a esquerda, e depois modifique a

propriedade dos componentes (Caption ou Text) como na figura a direita:

• Execute o projeto (F9); depois salve a unit como U_4oprograma.pas e o projeto como

P_4oprograma.dpr. • Modifique os nomes dos componentes listados a seguir; estes serão os nomes dos componentes

utilizados durante a programação.

Componente Name Componente Name Edit1 edtHT Button1 btnSL Edit2 edtVH Label5 lblSL Edit3 edtPD

• Para o evento OnClick do

botão Calcular, deve-se fazer o cálculo do salário líquido e mostrar o resultado no Label lblSL. Todas as variáveis utilizadas devem ser definidas na seção var do programa. A função Val é necessária para transformar um caracter em números reais, podendo então estar num cálculo matemático. A função Str transforma um número real em caracter, possibilitando a atribuição a propriedade Caption do Label.

__ www.gomeshp.com _________________________________________________________________________ 28

Page 13: AP Delphi7 02

Apostila de Delphi 7.0 _______________________________________________________________________ Profa. Gilene B. Gomes ______

__ www.gomeshp.com _________________________________________________________________________ 29

• Salve todos os arquivos: Menu File / Opção Save All. • Execute o projeto (F9) e note que o salário ficou apresentado em notação científica, como na

figura abaixo a esquerda.

• Para que o salário seja apresentado com duas casas decimais, como na figura acima a direita,

deve-se alterar a seguinte linha de comando: Str ( SL:8:2, Resultado ); Este comando formata a variável de SL com oito espaços e duas casas decimais.

• Execute o projeto (F9), depois o salve: Menu File / Opção Save All.

• Inclua um novo botão na aplicação e formate-o

como apresentado na figura ao lado; altere também a propriedade Name para btnFechar.

• No evento OnClick do btnFechar; inclua o comando abaixo, para que a aplicação seja finalizada

quando o botão for clicado.

• Execute o projeto (F9), depois o salve e feche a aplicação.