Beruflich Dokumente
Kultur Dokumente
1. INICIANDO O DELPHI
1.1. ALGUMA TERMINOLOGIA
O Delphi 4.0 permite somente a instalao para 32 Bits , devendo ser executado em Windows 95/98 ou NT. Diferentemente do Visual Basic, no possvel compilar cdigos para 16 Bits, o que significa que o seu aplicativo no poder rodar no Windows 3.1 ou 3.11. Para contornar esta limitao, a Borland fornece, junto com o Delphi 4.0, uma verso do Delphi 1.0, que permite a compilao para 16 Bits. Um objeto, em Delphi, uma conjunto de cdigos de programao (sub-rotinas) e propriedades. Na verdade, cada elemento que voc v em um programa Windows um objeto individual, dotado de propriedades que podem ser alteradas. Exemplo: Objeto Avio: Propriedades: velocidade, altitude, inclinao, etc.; Rotinas: decolar, aterrissar, taxiar, etc. Mudando as propriedades de um objeto, podemos mudar a forma como ele interage com o ambiente. Na programao bsica em Delphi no necessrio ter um conhecimento muito grande de programao orientada a objetos, como necessrio em outras linguagens. Os objetos esto prontos para serem usados e o Delphi cuida de quase tudo. A programao em Delphi um exemplo de Programao Orientada a Objetos (POO), como o caso do C++ ou do Object Pascal. Note que o termo objeto, em Delphi, usado de uma maneira um pouco diferente do que em Visual Basic, que no uma linguagem verdadeiramente orientada a objetos, mas sim baseada em objetos. Projeto o nome dado a um aplicativo desenvolvido em Delphi. O arquivo do projeto (.dpr) apenas uma lista de todos os outros arquivos que fazem parte do aplicativo, tais como: formulrios (.DFM); unidades (.PAS); componentes de 32 bits (.OCX); bancos de dados.
Quando o cdigo fonte compilado, o Delphi cria um arquivo .EXE que tem todas as caractersticas do arquivo .DPR, mas que pode ser executado fora do ambiente do Delphi. Os formulrios so janelas onde se desenha componentes. As unidades so mdulos de programao onde se escreve procedures e se declara variveis e constantes. No Delphi, cada formulrio est associado a uma unidade (unit). Voc pode usar os comandos do menu e da barra de ferramentas para realizar as seguintes aes: .inserir novas unidades no projeto; remover unidades de um projeto; alternar entre as diferentes unidades de um projeto;
Anotaes:
Barra de Ttulo
Menu
alternar entre os diferentes formulrios de um projeto. Os arquivos de projeto do Delphi (.DPR) so, na verdade, descries de quais arquivos .PAS esto associados Borda ao projeto, qual o modo de associao e onde encontr-los no disco rgido. Quando for gerado o arquivo executvel *.exe, este substituir as funes do arquivo .DPR. Este ltimo continuar presente no disco, naturalmente.
Partes de um Formulrio
Anotaes:
Cada formulrio, por padro, contm as seguintes partes como mostrado na figura 1.1: Menu Control Botes de maximizar e minimizar Barra de ttulo Bordas
Quando voc passar com o ponteiro do mouse sobre cada boto, exibido o Help Hint do componente.
Tabela 1.1 Grupos de Componentes PGINA Standard Additional Data Access Anotaes: GRUPO DE COMPONENTES Componentes padro em uma interface MS Windows tais como boto, list box, e label. Grupo adicional de componentes padro, tais como SpeedButton, TabSet, e componentes Notebook. Componentes especializados para acesso de dados em banco de dados, tais como Table,
c) Object Inspector
O Object Inspector usado em conjunto com a Paleta de Componentes. Uma vez selecionado um componente da Paleta de Componentes e adicionado ao formulrio, o Object Inspector automaticamente exibe as propriedades e eventos que podem ser utilizados para este componente. As propriedades e eventos (exibidos no formato de menu) permitem personalizar os componentes visualmente, sem a necessidade de codificao. Os menus so dinmicos no tocante em que somente as propriedades e eventos que se aplicam aos componentes selecionados aparecero. Se mltiplos componentes so selecionados, somente as propriedades e eventos compartilhados por todos os componentes aparecero no Object Inspector. A Figura 1.3 mostra o Object Inspector, que permite definir todas as propriedades de cada um dos componentes que voc inserir no seu projeto. O Object Inspector divide-se em trs partes: (i) Object Selector; (ii) Properties Page; e (iii) Events Page. Vejamos Figura 1.3 cada uma destas partes em separado. O Object Inspector
Anotaes:
O Arquivo Unit
O Editor de Cdigo aparece no arquivo unit, que posicionado atrs do Form1 padro quando voc inicializa o Delphi. Quando voc da um duplo clique em um evento na pgina Events do Object Inspector, o Editor de Cdigo automaticamente torna-se a janela para que voc possa digitar o cdigo para manipular o evento. O Editor de Cdigo pode exibir mltiplos arquivos unit. Uma unit utilizada para organizar as declaraes de programao do Delphi. Por exemplo, procedures utilitrias podem ser agrupadas como uma unit. Um formulrio organizado como uma unit. Voc tambm pode exibir um arquivo unit atravs do menu View selecionando Toggle Form/Unit. O arquivo padro, Unit1.PAS, aparece na janela do Code Editor, como segue: Figura O Editor Cdigo Cdigo Fonte
1.4 de
e) Barra
de
Aba de Pgina
Alvaro Augusto de Almeida
ferramentas (SpeedBar)
A Barra de Ferramentas construda com botes que economizam tempo, permitindo que voc clique sobre um boto ao invs de utilizar a barra de menu para executar operaes e comandos mais comuns. Quando voc passa com o ponteiro do mouse sobre cada boto, o Help Hint do boto exibido. A Barra de Ferramentas totalmente personalizvel. Voc pode adicionar ou remover botes para personaliz-la. Os botes exibidos na figura anterior so os da configurao padro.
A tabela 1.2 a seguir descreve a funo de cada boto da Barra de Ferramentas padro. Tabela 1.2 Botes da Barra de Ferramentas Padro BOTO Open Project Save Project Add File to Project Select Unit From List Select Form From list Run Pause Open File Save File Remove File From Project Toggle Between a Form and Unit New form Trace into Step over Cria um formulrio em branco e uma nova unit associada para ser adicionado ao projeto Executa um programa, uma linha por vez e executa cada linha de uma procedure Executa um programa, uma linha por vez e pula as procedures executando-as como uma nica unit DESCRIO Abre um projeto existente Grava um projeto existente Adiciona um novo arquivo ao projeto Seleciona uma unit da lista das units existentes Seleciona um formulrio da lista de formulrios existentes Compila e executa um aplicativo Interrompe momentaneamente a execuo do aplicativo Abre um arquivo existente Grava o arquivo. Arquivos unit e formulrio so ligados. Gravando um, grava-se o outro Remove o arquivo selecionado no Project Manager da clusula uses do arquivo de projeto corrente Exibe o from inativo associado com a unit ativa, ou vice-versa
g) SpeedMenus
Um elemento importante do IDE do Delphi o SpeedMenu. SpeedMenus so menus que oferecem acesso rpido aos comandos disponveis no momento. Eles so sensveis ao contexto e podem ser exibidos de duas maneiras: Clicando-se com o boto direito do mouse enquanto o ponteiro do mouse estiver sobre o objeto Pressionando-se Alt+F10 enquanto estiver selecionado
h) Help On-Line
O Help On-Line uma grande fonte de referncia sobre o Delphi. No menu Help, os itens Contents e Topic Search so comuns s aplicaes MS Windows, mas documentam o produto to bem que voc pode utiliza-lo no lugar de uma cpia impressa. Contents, em particular, inclui um glossrio, que especialmente til para uma referncia rpida sobre o significado de termos. Outras caractersticas do Help do Delphi so:
Informao de Instruo
O Help on-line tambm contm uma extensiva informao instrucional. As trs ferramentas seguintes, em particular, oferece suporte no desenvolvimento de um aplicativo: Interactive Tutors o guiam atravs de cada estgio no processo de desenvolvimento de um aplicativo. Database Form Expert permite-lhe criar forms master-detail, bem como formulrios com uma nica tabela. Windows API descreve como utilizar a API do MS Windows.
Interactive Tutors
A opo Interactive Tutors um tutorial que o ensina as operaes bsicas na criao de um aplicativo. O tutorial interativo pois voc pode utilizar seus prprios dados, bem como dados de exemplo que acompanham o Delphi
Windows API
A opo API no menu Help oferece uma descrio da API do MS Windows. Exemplos de alguns dos tpicos incluem o seguinte: Funes e mensagens para o MS Windows verso 3.1 Grupos de funes Macros Sadas de impresso Resources
Anotaes:
Anotaes:
Anotaes:
Clicando duas vezes sobre o Boto de Comando 2, abra a janela de cdigo associada a ele e escreva a palavra Close.
Anotaes:
Note alguns requisitos de sintaxe do Object Pascal do Delphi. Primeiramente, todo procedimento deve comear com begin e acabar com end. Alm disso, toda linha de instrues deve acabar com dois pontos e o sinal de atribuio := e no o sinal de igualdade convencional. Isto tudo. Cada boto de comando tem, agora, um cdigo associado, que no ser executado at que os botes sejam acionados. O primeiro boto escrever o texto At mais tarde! na caixa de texto, enquanto o segundo encerrar a execuo do programa. Procedimentos so tambm denominados procedures (pronuncia-se procdiur) e comum que se use este termo em ingls, mesmo quando se escreve ou se fala em portugus (um procedimento que nossos amigos lusos abominam).
Anotaes:
Figura 1.7 - Coordenadas de um objeto Timer (pgina System): um componente de cronmetro. O timer simplesmente gera um evento de timer a cada intervalo de tempo pr-definido. Interval uma propriedade que pode ser definida em tempo de projeto ou de execuo. b) Definindo as Propriedades Com auxlio da Object Inspector, defina as seguintes propriedades para os componentes inseridos: Tabela 1.4 OBJETO formulrio PROPRIEDADE Caption WindowState BackColor ScaleMode Interval Name Picture Visible Name Picture Visible Name Picture Visible Name Caption DEFINIO Borboleta 2-Maximized White 3-Pixel 500 (ms) imgAbreAsas BFLY1.BMP False imgFechaAsas BFLY2.BMP False imgPrincipal BFLY1.BMP True cmdSair &Sair
Com as propriedades acima definidas, o formulrio deve ficar com o aspecto indicado na Figura 1.8.
Anotaes:
procedure TForm1.cmdSairClick(Sender:Tobject);3 begin beep; if MessageDlg (Voc tem certeza que deseja sair ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes then close; end;
A varivel CarregaBMP uma booleana que deve ser declarada na seo Public da unidade: type . . private {Private daclarations} . . public {Public declarations} CarregaBMP : Boolean
Anotaes:
Isto tudo. Quando o programa for executado (menu Run ou F9), a borboleta se mover ao longo da tela, abrindo e fechando as asas. Quando o usurio clicar sobre o boto, uma caixa de mensagens ser exibida, perguntando se ele deseja mesmo sair do aplicativo. Voc deve ter notado, se ainda no dormiu, que algumas partes do cdigo esto entre chaves. Esse texto interpretado como comentrio pelo compilador e no executado. Acostume-se a comentar seus programas enquanto os escreve. Se voc deixar essa tarefa para depois nunca a far!
Como funciona ?
A mgica toda feita com mudanas na posio da imagem, mas alguns adereos so necessrios. O efeito de animao das asas conseguido com a alternao de duas imagens, como se faz em desenho animado. Em vez de buscarmos tais imagens no disco rgido, o que seria muito lento, optamos por armazen-las em componentes de imagem. A cada evento Timer a outra figura carregada no componente imgPrincipal (que quem se move). Os componentes de imagens imgAbreAsas e imgFechaAsas so mantidos invisveis durante toda a execuo. Note, ainda, que CarregaBmp uma varivel booleana que atua como flag, definindo qual imagem deve ser carregada em imgPrincipal. Como esta varivel foi declarada na seo Public da unidade, ela estar disponvel para todos os procedimentos desta unidade. Alm disso, ela uma varivel esttica, o que significa simplesmente que o valor dela preservado entre eventos Timer consecutivos. Nossa borboleta tem um problema: quando ela vai voando e atinge a borda direita do monitor, no h como voltar. Voc pode pensar em maneiras de fazer a borboleta voltar ou, melhor ainda, aprision-la dentro da janela ? Como dica, voc pode usar as seguintes propriedades do formulrio: ClientWidth: especifica a largura da parte interna do formulrio; ClientHeight: especifica a altura da parte interna do formulrio. Basta verificar o valor destas propriedades e alterar a posio de imgPrincipal. d) Salvando o projeto Para salvar o projeto, v at o menu File e escolha a opo Save All. Voc pode alterar o nome da unidade para Borboleta.pas e o nome do projeto para prjBorbo.dpr. Estes sero os nomes dos arquivos em disco. O Delphi no aceita que uma unidade tenha o mesmo nome do projeto, mesmo que as extenses sejam diferentes. e) Associando um cone ao projeto Para criar um cone para o aplicativo, proceda da seguinte maneira: Defina a propriedade cone do formulrio principal; Compile o programa para gerar o executvel (menu Run): prjBorbo.exe; No Windows 95, crie um atalho para prjBorbo.exe e arraste-o para a janela principal. Renomeie o atalho como preferir. Agora voc poder executar o programa clicando duas vezes sobre o cone, sem que seja necessrio abrir o
Anotaes:
A PROCEDURE SHOWMESSAGE
Esta procedure do Delphi exibe uma caixa de mensagem simples com o boto OK. Sintaxe: ShowMessage( const Msg : string); Exemplo: procedure TForm1.cmdOKClick (Sender : TObject); begin ShowMessage (Deseja Continuar ?); end;
A FUNO MESSAGEDLG
Esta funo exibe uma caixa de mensagem no centro da tela e retorna um valor correspondente ao boto que o usurio escolheu.
Anotaes:
Sintaxe: MessageDlg (const Msg : string; MsgDlgButtons; HelpCtx : LongInt) : word; onde:
AType:
TMsgDlgType;
AButtons:
AType: parmetro que determina o tipo de caixa exibida, conforme a Tabela 1.5 abaixo: Tabela 1.5 AType mtWarning mtError mtInformation mtConfirmation mtCustom Significado exibisse um sinal de exclamao amarelo exibe um sinal de pare vermelho exibe um sinal de informao azul exibe um sinal de confirmao verde sem bitmap
AButtons: determina quais botes aparecem na caixa. Este parmetro um array que pode conter qualquer um das seguintes constantes: mbYes, mbNo, mbOK, mbCancel, mbAll, mbHelp, mbAbort, mbRetry, mbIgnore, mbYesNoCancel, mbOKCancel. Os valores de retorno da funoMessgeDlg podem ser os seguintes: mrNone, mrAbort, mrYes, mrOK, mrRetry, mrNo, mrCancel, mrIgnore, mrAll. O programa verificar qual boto o usurio escolheu de modo a continuar a execuo do cdigo. Verifique o exemplo a seguir. procedure TForm1.cmdOKClick (Sender : TObject); begin if MessageDlg (Deseja sair agora ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin MessageDlg (Saindo ...,mtInformation, [mbOK], 0); close; end; end; Note que o parmetro AButton, sendo um elemento de um array, sempre representado entre colchetes. Vamos ver mais sobre arrays no captulo seguinte, quando tratarmos de tipos de variveis.
A FUNO MESSAGEDLGPOS
Esta funo semelhante anterior, com a diferena de que o programador pode determinar em que lugar da tela a caixa deve aparecer. Exemplo:
Anotaes:
Exerccio. Teste esses exemplos no Delphi, construindo pequenos programas de exibio de janelas e variando as diversas opes e parmetros das funes acima.
Anotaes: