Академический Документы
Профессиональный Документы
Культура Документы
0 Parte 1
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CINCIAS EXATAS E NATURAIS DEPARTAMENTO DE SISTEMAS E COMPUTAO
SUMRIO
Introduo O que uma Linguagem de Programao Visual Caractersticas das Linguagens de Programao Visual Tipos de Linguagens Visuais O Ambiente DELPHI 2.0 Janela FORM Janela OBJECT INSPECTOR Janela CODE EDITOR Janela MAIN Menu Principal Projeto Tipos de Dados Tipos de Dados NUMRICOS INTEIROS Tipos de dados NUMRICOS REAIS e MOEDA Tipos de dados BOOLEANOS Tipos de dados ALFANUMRICOS Biblioteca de Classes Paleta de Componentes TApplication TScreen TPrinter Componentes Paleta STANDARD Paleta ADDITIONAL Paleta WIN95 A Paleta DIALOGS Propriedades
Prof. Maurcio Capobianco Lopes 2
Mtodos Eventos Excees Try ... Except On ... Do Tipos de Exceo Try ... Finally
INTRODUO
Este curso tem por objetivo apresentar uma linguagem de programao visual que tenha como base a programao orientada a objetos e a programao orientada a eventos. Para cumprir este objetivo foi selecionada uma ferramenta que tenha estas caractersticas. A ferramenta selecionada foi o DELPHI. O DELPHI uma linguagem de programao visual desenvolvida pela empresa Borland, baseada na linguagem de implementao denominada Object Pascal. Neste curso ser estudada a verso 2.0 da linguagem, por se tratar de uma verso totalmente compatvel com Windows95 e gerar aplicativos de 32 bits. Esperamos que ao final deste curso voc tenha condies de desenvolver aplicativos utilizando tal linguagem, de modo a aproveitar os seus principais recursos. Bom Curso!
JANELA FORM
O FORM a tela onde o desenvolvedor constri sua aplicao. A partir de um FORM que se estabelece a interao USURIO-COMPUTADOR, atravs de botes, rtulos e outros componentes, estabelecendo-se funes, mtodos ou eventos que sero ativados. Os componentes so dispostos dentro da rea til do FORM.
A Janela FORM: interface. Os quatro tipos de FORM so: Normal: o FORM padro; MDIForm: os FORMS do tipo MDI (Multiple Document Interface), podem conter outros FORMS do tipo MDIChild; MDIChild: so FORMS que sempre esto subordinados a um FORM MDIForm; StayOnTop: so FORMS que sempre ficam visveis na tela. Para se abrir um FORM utilizam-se os comandos: Show ou ShowModal. Os FORMS tem um ModalResult associado que so dados pelos botes colocados nos mesmos. Este ModalResult permite tratar se o FORM foi fechado com OK, Cancel, Close, ...
Ambiente de Programao Visual DELPHI 2.0 Parte 1 janela Events (Eventos) estabelecem-se aes a serem tomadas pelo componente a partir de um evento associado ao mouse, teclado, sistema operacional, etc.
A Janela CODE EDITOR: cdigo fonte da aplicao Prof. Maurcio Capobianco Lopes 7
JANELA MAIN
A janela MAIN, ou janela principal, controla o funcionamento do DELPHI. Esta janela pode ser dividida em trs partes: Menu Principal: contm as opes de utilizao do DELPHI; Botes Speed Bar: contm botes que agilizam determinadas funes do DELPHI; Paleta de Componentes: contm os componentes que podem ser utilizados na construo do projeto. Menu Principal Paleta de Componentes
Botes Speed Bar A Janela MAIN: dividida em trs partes. Os Botes SpeedBar e a Paleta de Componentes sero detalhados medida de sua utilizao.
MENU PRINCIPAL
O menu principal contm as opes de utilizao do DELPHI. O detalhamento destas opes ser feito medida de sua utilizao: File: permite a manipulao de arquivos do desenvolvedor (PAS, DPR, ...); Edit: apresenta opes de edio; Search: apresenta opes de pesquisa e localizao; View: permite verificar detalhes do projeto; Project: permite adicionar ou remover partes em um projeto, bem como compil-lo; Run: apresenta opes de execuo e depurao do projeto; Component: permite a criao ou instalao de novos componentes no DELPHI; Database: apresenta opes de uso de banco de dados; Workgroups: permite o controle de verso e gerenciamento de arquivos em ambientes Client/Server; Tools: permite configurar o ambiente de trabalho, bem com acessar ferramentas externas ao DELPHI; Help: ajuda do DELPHI.
PROJETO
No DELPHI o programa principal tem extenso DPR. Um DPR o cdigo de programa, tambm denominado de projeto, a partir do qual o desenvolvedor construir sua aplicao. a partir deste projeto que ser gerado o cdigo executvel (EXE). Grande parte do cdigo, no entanto, fica armazenado em UNITs com extenso PAS, onde so desenvolvidos os formulrios. O projeto pode ser visualizado atravs da opo do menu View | Project Source. Sua estrutura aparece na janela Code Editor e pode-se verificar que muito semelhante ao programa principal do antigo Turbo Pascal . A implementao mnima de um projeto prev, na grande maioria das situaes, a inicializao da aplicao (comando Application.Initialize), o uso (clusula Uses) e criao dos formulrios (comando Application.CreateForm) utilizados na mesma e a execuo do projeto (Application.Run). Ao projeto podem ser adicionadas ou retiradas bibliotecas (Units) atravs da opo Project do menu. Prof. Maurcio Capobianco Lopes 8
Estrutura de um Projeto em DELPHI. program Project1; uses Forms, TIPOS DE DADOS Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} No DELPHI a definio de tipos de dados corretos para as variveis muito importante, pois alm de permitirem a economia de memria, eles tem, em muitos casos, de ter compatibilidade com os begin seus respectivos tipos de dados do Windows . Alm disto, houveram muitas mudanas do PASCAL Application.Initialize; 7.0 e do DELPHI 1.0 para o Application.CreateForm(TForm1, Form1); DELPHI 2.0. Application.Run; Os principais tipos deend. do DELPHI so: dados Numricos Inteiros Reais Moeda Alfanumricos Caracter String Lgicos Booleanos
Domnio 1.5 * 10 .. 3.4 * 10 -39 39 2.9 * 10 .. 1.7 * 10 -324 308 5.0 * 10 .. 1.7 * 10 -4932 4392 3.4 * 10 .. 1.1 * 10 63 62 -2 .. 2
-45 38
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Tipos de Dados NUMRICOS REAIS e MOEDA O tipo Currency o tipo MOEDA. Ele tem preciso de quatro casas decimais e compatvel com os bancos de dados que representam dinheiro.
A existncia de diversos tipos lgicos no DELPHI que armazenam a mesma coisa (TRUE ou FALSE) d-se pela necessidade de compatibilizao com os tipos do Windows .
10
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Os principais tipos de dados alfanumricos do tipo string do DELPHI esto definidos na tabela abaixo: Tipo ShortString AnsiString String WideString Tamanho Armazenamento (em bytes) 255 ANSIChar at 3 Gb ANSIChar 255 ou at 3 Gb ANSIChar at 1,5 Gb WideChar Tipos de Dados STRING
No DELPHI 2.0 o tipo de dados String tem funcionamento idntico ao AnsiString, que baseado em ponteiros. Para que ele tenha funcionamento igual ao ShortString, que compatvel com o antigo String do DELPH 1.0 e do PASCAL necessrio incluir a diretiva de compilao {$H-} no cdigo do programa.
11
BIBLIOTECA DE CLASSES
Por ser uma linguagem de programao orientada a objetos o DELPHI possui uma biblioteca de classes denominada de VCL (Visual Component Library), para auxiliar na construo de programas. A biblioteca de classes do DELPHI pode ser visualizada no Browser (no menu principal acesse View - Browser). No DELPHI existem as classes visveis e as no visveis. CLASSES VISVEIS As classes visveis so aquelas que podem ser manipuladas atravs da paleta de componentes, ou seja, so os prprios componentes CLASSES NO-VISVEIS As classes de componentes no visveis oferecem controles especializados que no so possveis ou necessrios atravs da interface visual. As classes no visveis mais comuns so a TApplication, a TScreen e a TPrinter.
PALETA DE COMPONENTES
A paleta de componentes a biblioteca de classes que fornece recursos para o desenvolvimento visual em DELPHI. As classes da VCL representadas na paleta de componentes esto separadas por tipos: Standard: componentes mais comuns e usados. Additional: componentes adicionais tambm de uso comum. Win95: componentes com a aparncia do Windows95 . Data Access: componentes para comunicao com banco de dados. Data Controls: componentes para tratamento de dados vinculados a banco de dados. Win3.1: componentes com a aparncia do Windows 3.1x . Dialogs: componentes que criam caixas de dilogo comuns no Windows95 . Internet: componentes que permitem operaes de acesso a Internet. System: componentes para aproveitar recursos de sistema do Windows95 . QReport: componentes para gerao de relatrios. OCX: componentes desenvolvidos em outras linguagens mas que podem ser utilizados no DELPHI. Samples: componentes de exemplo, cuja documentao vem disponvel com o DELPHI. Os componentes disponveis na VCL podem ser divididas entre os visuais e os no-visuais.
TAPPLICATION
Quando se inicia um projeto em DELPHI, automaticamente criada uma varivel Application que do tipo TApplication. Esta classe permite a interao de sua aplicao com o Windows. A atribuio de valores s propriedades do TApplication pode ser feita apenas em tempo de execuo, ou durante o desenvolvimento do projeto na opo do menu Project - Options. Os principais mtodos da classe TApplication so: Nome Descrio faz com que a aplicao seja executada. Este comando colocado Run() automaticamente no cdigo fonte do projeto (veja em View - Project Source). encerra a aplicao. Terminate() carrega o arquivo de help da aplicao. HelpCommand() Prof. Maurcio Capobianco Lopes 12
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Algumas das principais propriedades da classe TApplication so: Nome Descrio contm o form principal da aplicao; MainForm contm o ttulo da aplicao quando a mesma est minimizada; Title armazena o nome do arquivo de Help da aplicao; HelpFile contm o cone que representa a aplicao. Icon
TSCREEN
Quando se inicia um projeto em DELPHI, automaticamente criada uma varivel Screen que do tipo TScreen. Esta classe contm as caractersticas da tela na qual a aplicao est rodando. Algumas das principais propriedades da classe TScreen so: Nome Descrio contm o cursor que est em uso; Cursor contm a lista dos cursores disponveis para a aplicao; Cursors contm a lista de fontes disponveis para a aplicao; Fonts contm a lista de forms da aplicao; Forms contm a altura da tela (em pixels); Height contm a largura da tela (em pixels). Width
TPRINTER
Quando se inicia um projeto em DELPHI, automaticamente criada uma varivel Printer que do tipo TPrinter. Esta classe contm as caractersticas da impressora padro que est sendo utilizada pelo Windows, alm de permitir a impresso. Os principais mtodos da classe TPrinter so: Nome Descrio inicia um processo de impresso. BeginDoc() finaliza um processo de impresso. EndDoc() aborta o processo de impresso. Abort() inicia a impresso em uma nova pgina. NewPage() Algumas das principais propriedades da classe TPrinter so: Nome Descrio contm a lista de impressoras instaladas no Windows. Printers contm o ndice da impressora ativada. PrinterIndex contm a orientao do papel. Orientation contm a altura da pgina de impresso. PageHeight contm a largura da pgina de impresso. PageWidth contm o nmero da pgina que est sendo impressa. PageNumber contm o ttulo da pgina impressa. Title Para a impresso de dados utilizando o TPrinter necessrio utilizar a classe TCanvas.
13
COMPONENTES
COMPONENTES VISUAIS Os componentes visuais podem ter sua forma e tamanho alteradas no formulrio (Form), alm das propriedades e eventos no Object Inspector. Eles aparecem durante a execuo do aplicativo exatamente como foram definidos durante o projeto. COMPONENTES NO-VISUAIS Os componentes no visuais ficam apenas como a representao de um cone no formulrio (Form), mas suas propriedades e eventos podem ser alteradas no Object Inspector. Eles no aparecem no formulrio durante a execuo do aplicativo, podendo ser ativados por comandos especficos (por exemplo podemos citar a caixa de dilogo abrir arquivo).
PALETA STANDARD
A paleta Standard contm 14 componentes mais comuns para a construo de aplicaes.
Permite a construo da barra de menus e de menus suspensos. MainMenu Permite a construo de menus a partir do boto direito do mouse. PopupMenu Permite colocar textos que no podem ser alterados pelo usurio. Label Permite a apresentao ou a entrada de dados pelo usurio. Edit Permite a introduo ou exibio de linhas de texto. Memo Permite a colocao de botes para seleo de opes por parte do usurio.
Button
CheckBox
RadioButton
Permite a colocao de botes de seleo de onde pode ser selecionada apenas uma opo.
14
Permite criar uma lista de itens que podem ser selecionados. ListBox Permite criar uma lista de itens de onde pode ser selecionado apenas um. Este componente tambm permite que o usurio digite sua prpria opo.
ComboBox
ScrollBar
Permite agrupar controles como CheckBox, RadioButton, etc. GroupBox Permite agrupar RadioButtons para que se faa a seleo de uma opo. RadioGroup Permite agrupar outros componentes. So utilizados para construir barra de status, barra de ferramentas, etc. Tambm so importantes para compatibilizar diferentes tipos de definio de telas.
Panel
PALETA ADDITIONAL
A paleta Additional tem 9 componentes, tambm de uso comum, mas com algumas funes mais especializadas.
Paleta Additional: mais componentes de uso comum Os componentes desta paleta so:
Permite a colocao de botes contendo imagens grficas. BitBtn Permite a criao de barra de ferramentas e conjuntos de botes. Devem ser utilizados juntamente com o componente Panel.
SpeedButton
Permite a entrada de dados definindo-se mscaras de leitura. MaskEdit Permite a apresentao de strings em colunas. StringGrid Permite a apresentao de informaes em colunas. DrawGrid
15
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Permite a apresentao de imagens grficas. Image Permite o desenho de figuras geomtricas. Shape Permite o desenho de retngulos em relevo. Bevel Permite a criao de reas de exibio, com barras de rolagem. ScrollBox Os componentes so manipulados atravs de suas propriedades, mtodos e eventos.
PALETA WIN95
A paleta Win95 contm 12 componentes para criar aplicaes que tenham a aparncia do Windows95.
Paleta Win95: aplicativos com a aparncia do Windows95 . Os componentes desta paleta so:
TabControl
Permite criar pginas que podem ser mudadas por guias ou outros controles.
Permite inserir guias para a seleo de pginas. PageControl Permite a visualizao de dados em forma hierrquica. TreeView Permite a visualizao de dados em formas de listas ou colunas. ListView Permite a criao de listas de imagens. ImageList Permite a criao de cabealhos mveis. HeaderControl Permite a edio de textos utilizando recursos de formatao. RichEdit Permite a criao de barras de status. StatusBar Prof. Maurcio Capobianco Lopes 16
Permite a criao de controles deslizantes. TrackBar Permite a criao de barras de progresso. ProgressBar Permite a criao de botes de avano/retrocesso. UpDown Permite a criao de suporte a teclas de atalho. HotKey Os componentes so manipulados atravs de suas propriedades, mtodos e eventos.
A PALETA DIALOGS
A paleta Dialogs contm 8 componentes no visuais para a criao de caixas de dilogo padro no Windows95.
Permite a criao de caixa de dilogo para abrir arquivos. OpenDialog Permite a criao de caixa de dilogo para salvar arquivos. SaveDialog Permite a criao de caixa de dilogo para formatao de fontes. FontDialog Permite a criao de caixa de dilogo para formatao de cores. ColorDialog Permite a criao de caixa de dilogo para impresso. PrinterDialog Permite a criao de caixa de dilogo para a configurao das opes de impresso.
PrinterSetupDialog
17
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Permite a criao de caixa de dilogo para a substituio de textos ReplaceDialog Os componentes so manipulados atravs de suas propriedades, mtodos e eventos.
PROPRIEDADES
As propriedades so os atributos da classe ou seja so as suas caractersticas. As propriedades mais comuns, presentes nos componentes do DELPHI so: Nome Descrio Determina o alinhamento de controle Align Legenda do componente (com o &, indica atalho) Caption Nome da instncia do componente Name Posio esquerda Left Posio superior Top Altura do componente Height Largura do componente Width ComponentCount O nmero de componentes possudos Uma matriz de componentes possudos Components Indica a cor do componente Color Indica a fonte (letra) a ser usada no componente Font Define a aparncia 2D ou 3D do componente Ctl3D Indica se o componente est ativado ou no Enabled Indica se o componente est visvel ou no Visible String utilizada para dicas instantneas Hint Mostra ou no as dicas instantneas ShowHint Menu que ser mostrado com o click do boto direito do mouse PopupMenu Define a ordem de tabulao do componente (tecla TAB) TabOrder Indica se o componente ser ponto de parada para a tecla TAB TabStop Nmero utilizado para chamar o help sensvel ao contexto HelpContext Contm um nmero inteiro, que pode ser a identificao do componente Tag
MTODOS
Os mtodos so as aes realizadas pela classe, ou seja, so as funes s quais esto associados um comportamento da classe. Os mtodos mais comuns das classes do DELPHI so: Nome Descrio Cria uma nova instncia do objeto Create Destri a instncia do objeto Destroy Torna o componente visvel Show Torna o componente invisvel Hide Coloca o foco no componente SetFocus Determina se o componente est com o foco Focused Coloca o componente na frente dos demais BringToFront Coloca o componente atrs dos demais SendToBack Gradua o componente em determinada escala ScaleBy Muda a posio e o tamanho do componente SetBounds
EVENTOS
Prof. Maurcio Capobianco Lopes 18
Ambiente de Programao Visual DELPHI 2.0 Parte 1 Os eventos so blocos de comandos que associam a ocorrncia de alguma atividade a uma ao a ser tomada. Uma linguagem de programao orientada a eventos no tem necessariamente um incio ou final lgico, isto , de acordo com uma seqncia de comados, pois as aes s so realizadas a partir do instante que ocorre um evento. Um evento pode estar associado a: clique ou movimento do mouse; acionamento do teclado; operaes sobre janelas (abrir, fechar, criar, redimensionar, mover, ...); erros de execuo; etc. O DELPHI possui mais de 130 eventos pr-definidos, que esto associados a ocorrncia de aes, nas mais diversas classes. Alguns dos principais eventos do DELPHI so: Nome Descrio Ocorre quando o programa ativa o objeto pela primeira vez, ou quando se OnActivate retorna de um outro aplicativo. Ocorre quando muda o contedo de um objeto. OnChange Ocorre quando o usurio d um clique no boto esquerdo do mouse. OnClick Ocorre quando o objeto fechado. OnClose Ocorre quando o objeto criado. OnCreate Ocorre quando feito um duplo clique com o boto esquerdo do mouse. OnDblClick Ocorre quando se sai do objeto. OnDeactivate Ocorre quando se elimina um objeto. OnDestroy Ocorre quando um objeto arrastado para outro objeto e solto. OnDragDrop Ocorre quando um objeto arrastado para cima de outro objeto. OnDragOver Ocorre quando se abre um objeto ComboBox ou ListBox. OnDropDown Ocorre quando o objeto recebe o foco. OnEnter Ocorre quando ocorre um erro de execuo na aplicao. OnException Ocorre quando o objeto perde o foco. OnExit Ocorre quando solicitado a abertura de um arquivo de ajuda. OnHelp Ocorre quando o objeto passa a ser oculto. OnHide Ocorre quando o usurio pressiona uma tecla, incluindo SHIFT, ALT e OnKeyDown INSERT. Ocorre quando o usurio pressiona uma tecla ASCII. OnKeyPress Ocorre quando o usurio solta uma tecla. OnKeyUp Ocorre quando se minimiza uma janela. OnMinimize Ocorre quando o usurio clica em um boto do mouse e o cursor OnMouseDown posicionado sobre a rea clicada. Ocorre quando o usurio move o cursor dentro da rea selecionada. OnMouseMove Ocorre quando o usurio solta um boto do mouse. OnMouseUp Ocorre quando se ativa um menu popup com o boto direito do mouse. OnPopup Ocorre quando se muda o tamanho do objeto. OnResize Ocorre quando se restaura uma janela que foi minimizada. OnRestore Ocorre quando uma aplicao inicia sua execuo. OnRun Ocorre antes que o objeto se torne visvel. OnShow Ocorre em intervalos peridicos de tempo. OnTimer
19
EXCEES
Excees so erros que ocorrem durante a execuo do programa. Existem diversos tipos de excees, que podem ocorrer nas seguintes operaes: alocao de memria; criao e utilizao de objetos; clculo de expresses matemticas; manipulao de arquivos; utilizao de recursos do sistema operacional. Algumas das principais caractersticas das excees no DELPHI so: a instncia da exceo fornece informaes sobre o tipo de problema ocorrido; o usurio pode definir suas prprias excees, utilizando a classe Exception; para forar a execuo de uma exceo utiliza-se a clusula Raise; os tipos de exceo normalmente devem iniciar com a letra E. uma exceo gera um evento denominado OnException. As excees podem ser tratadas atravs das instrues: Try ... Except Try ... Finally
ON ... DO
O comando on ... do permite tratar mais de um tipo de exceo de um bloco try ... except. Sintaxe: On {Tipo de exceo} Do Prof. Maurcio Capobianco Lopes 20
Ambiente de Programao Visual DELPHI 2.0 Parte 1 {Bloco de comandos da exceo} Exemplo: tratamento de uma diviso por zero e da digitao de um caracter em um campo que deveria ser numrico. . try Valor1 := StrToInt (Edit1.Text); Valor2 := StrToInt (Edit2.Text) Resultado := Valor1 div Valor2; except on EDivByZero do ShowMessage (Diviso por Zero); on EInOutError do ShowMessage (Os valores devem ser numricos); end;
TIPOS DE EXCEO
Os principais tipos de exceo da RTL (RunTime Library) do DELPHI, a serem tratadas nos blocos on ... do so: Nome Descrio EaccessViolation ocorre quando se tenta acessar uma regio de memria invlida (ex: tentar atribuir valor a um ponteiro cujo contedo nil). EconvertError ocorre quando se tenta converter um string em um valor numrico (ex: utilizar a funo StrToInt em uma letra). ocorre na diviso de um nmero por zero. EdivByZero EinOutError ocorre numa operao incorreta de I/O (ex: abrir um arquivo que no existe). ocorre quando o resultado de um clculo excedeu a capacidade do EintOverFlow registrador alocado para ele (para variveis inteiras). EinvalidCast ocorre quando se tenta realizar uma operao invlida com o operador as (ex: tentar usar um Sender com uma classe que no corresponde a seu tipo). ocorre quando se detecta uma operao incorreta de ponto flutuante. EinvalidOp EinvalidPointer ocorre quando se executa uma operao invalida com um ponteiro (ex: tentar liberar um ponteiro duas vezes). ocorre quando se tenta alocar memria mas j no existe mais espao EoutOfMemory suficiente. ocorre quando o resultado de um clculo excedeu a capacidade do EoverFlow registrador alocado para ele (para variveis de ponto flutuante). ocorre quando uma expresso excede os limites para a qual foi definida ErangeError (ex: tentar atribuir 11 ao ndice de um vetor que pode ir no mximo at 10). ocorre quando o sistema no tem mais como alocar espao de memria EStackOverflow na Stack. ocorre quando o resultado de um clculo pequeno demais para ser EUnderflow representado como ponto flutuante. ocorre quando se tenta dividir um valor de ponto flutuante por zero. EZeroDivide
Ambiente de Programao Visual DELPHI 2.0 Parte 1 finally {Bloco de comandos a ser executado mesmo quando ocorrer uma exceo} end; Exemplo: garantir que um arquivo ser fechado mesmo quando ocorrer uma exceo. assign (arq, teste.txt); try reset (arq) {outros comandos sobre o arquivo} finally close (arq) end;
22