Introdução ao Ambiente Delphi
A figura abaixo mostra a tela inicial do Delphi 7 e nos dá uma visão geral de seu ambiente de desenvolvimento, composto de múltiplas janelas individuais que permitem executar diversas tarefas, que serão explicadas mais adiante. Seus principais elementos são:
• Form Designer
• Code Editor
• Object Inspector
• Object Tree View
• Palheta de componentes
• Menu principal
• Barra de ferramentas
1.1 O Form Designer
O Form Designer é a janela vazia que aparece na figura abaixo:
É sobre esta janela que a interface gráfica da aplicação é desenvolvida, acrescendo-se os componentes com os quais o usuário irá interagir.
Podemos configurar algumas propriedades do form designer através do menu Tools > Environment Options > Designer mostrado próxima ilustração:
No grupo “Grid Options” podemos escolher se o grid será ou não exibido (Display Grid) bem como o seu tamanho (Grid Size).
(* nota: o grid de tamanho 4x4 como o da figura é uma boa opção, pois permite uma boa visão do
alinhamento dos componentes sem ser demasiadamente pequeno *)
O grupo “Module creation options” permite escolher se o Delphi irá criar automaticamente ou não novos formulários adicionados ao projeto (Auto create forms & data modules). Com esta opção desmarcada, apenas o formulário configurado como “Main Form” será criado automaticamente.
No exemplo, temos uma aplicação com 3 formulários, mas apenas aquele configurado como “Main Form” aparece na lista “Auto create forms”, enquanto que os outros são configurados apenas como disponíveis em “Available forms”, devendo ser criados em tempo de execução. Se a opção auto create forms & data modules estiver marcada, todos os formulários do projeto aparecerão na lista Auto create forms.
(* nota: a princípio, não desmarque o auto create forms & data modules para evitar problemas. Se não
desejar que os forms sejam criados automaticamente, vá à tela acima e retire-os da lista dos forms que são criados automaticamente. Aliás, jamais deixe que o Delphi crie todos os formulários. Deixe para criá-los apenas quando forem necessários e destrua-os quando terminar de usar. Assim, o programa se torna mais leve e não consumirá recursos e memória sem necessidade! *)
Voltando às Environment Options, resta-nos comentar o grupo “Options” que tem algumas funções interessantes. Em “Show component captions” definimos se o designer irá ou não mostrar os nomes de componentes não visuais – marque!!! Veja abaixo como fica fácil identificar os componentes!
Em “Show designer hints” habilitamos as informações que surgem quando o mouse é posicionado sobre um componente. “Show extended control hints” permite exibir informações mais abrangentes sobre um controle, como tab order, top, left, etc. Veja estas opções em ação abaixo, onde na primeira figura temos a opção “extended control hints” ativa e na segunda desabilitada:
Mesmo estando inicialmente vazio, o formulário padrão fornecido pelo Form Designer já possui todas as funcionalidades básicas de uma janela, como minimização, maximização, restauração, fechamento e redimensionamento, sem que seja necessária nenhuma programação.
Uma aplicação tipicamente possui um formulário principal e vários outros chamados a partir dele, que executam funções diferentes dentro do sistema.
Cada formulário criado no Delphi é acompanhado de sua respectiva Unit, que é o seu código-fonte. Veremos agora a janela responsável pela edição do código-fonte das Units, o Code Editor.
1.2 O Code Editor
Como foi mencionado anteriormente, o Code Editor (que aparece na próxima figura) é onde inserimos o código-fonte de nossas aplicações:
Na janela maior, que é o editor propriamente dito, podemos abrir várias Units ao mesmo tempo, como na figura, para trabalharmos com o código de diversos formulários simultaneamente. Assim como o Form Designer, o Code Editor também pode ser personalizado, bastando acessar o menu Tools > Editor Options. Não mencionaremos todas as configurações possíveis aqui, porque muitas delas já estão ótimas como estão e devem ser deixadas em paz, e também para não nos aprofundarmos sem necessidade em assuntos menos importantes. Abaixo, vemos a palheta Color das propriedades do editor, onde configuramos as cores dos elementos do código-fonte:
(* nota: o Delphi 7, por default, configura Strings, comentários e números com a mesma cor – a Navy. Usar
cores diferentes, não importam quais, para estes elementos torna o código mais fácil de ler, destacando cada tipo diferente de elemento. Assim, não se corre o risco de comentários serem confundidos com strings, strings numéricas se confundirem com números verdadeiros, etc. *)
Em “Code Insight” configuramos os recursos que permitem completar código, exibir parâmetros de funções em forma de hint, etc., bem como o tempo (delay) após o qual elas aparecem para o programador. Deixe todas habilitadas, pois são uma mão na roda!
Mas nela encontramos o interessantíssimo recurso “Edit Code Templates”. Os templates nada mais são do que os modelos de comandos, declarações de procedimentos e funções, declaração de classes, etc., que podem ser incluídas no código. Assim o programador pode economizar algumas tecladas! Podemos facilmente editar ou adicionar novos templates através da tela que aparece na próxima ilustração:
Com o botão “Add” podemos incluir um novo template, dando-lhe um “Shortcut name” e uma descrição. O shortcut é usado para encontrar o template durante a edição. Na caixa “Code” nós inserimos o código que irá aparecer ao usarmos o template. A barra vertical pode ser adicionada ao template para mostrar ao editor onde ele deverá posicionar o cursor quando o template for inserido no código fonte. Os templates ficam no arquivo:
Podemos os DCI’s que nós criarmos para que sejam usados em Delphis alheios ou importar DCI’s de outros delphis para usar no nosso!
1.3 Object Inspector
O Object Inspector é a janela responsável pelo controle das propriedades e eventos de todos os componentes da aplicação. Ele permite também encontrar componentes de um formulário facilmente através da lista na parte superior, que exibe todos os componentes do formulário ordenados alfabeticamente pelos seus nomes. O Object Inspector pode ser visto na imagem seguinte:
A palheta Properties nos dá acesso a todas as propriedades de visibilidade published do componente atualmente selecionado para que possamos modificá-las em tempo de design. A forma de edição de uma propriedade está relacionada ao seu tipo. Algumas tem seus valores alterados digitando-se diretamente na linha correspondente; outras exibem uma lista de valores possíveis, dos quais um deve ser escolhido; outras podem se expandir – as que tem um ‘+’ antes do nome – e por fim, existem aquelas que possuem um editor separado – as que possuem uma ‘...’ na linha de edição.
A palheta Events nos permite criar um corpo vazio de método para implementarmos o código que será executado ao ocorrer o evento selecionado. Para tanto, basta darmos um duplo - clique na linha correspondente ao evento ou então um Ctrl + Enter. Podemos ainda selecionar na lista outros eventos compatíveis com aquele que estamos para criar. Assim, podemos reutilizar outros eventos ao invés de implementar o mesmo código várias vezes. Um evento é compatível com outros desde que possuam os mesmos parâmetros – com os mesmos tipos de dados, mesma ordem e mesma quantidade – ou seja se suas assinaturas forem as mesmas.
O Object Inspector pode ser customizado pelo usuário no menu Tools > Environment options > Object Inspector, mostrado abaixo:
À esquerda podemos mudar as cores dos elementos do Object Inspector e à direita temos algumas opções de exibição. Por default, a única desabilitada é ‘Show read only properties’, que define se as propriedades somente leitura, que não podem ser modificadas, apenas lidas, vão aparecer. Não são necessárias maiores explicações sobre estas configurações.
Estas opções também podem ser acessadas ao clicar com o botão direito no Object Inspector. Este procedimento permite também acessar outras configurações que não aparecem no método descrito acima, como o menu ‘Arrange’. Esta opção disponível desde o Delphi 5 muda a forma de exibição das propriedades e eventos. O default é Arrange > By Name, o arranjo tradicional. A opção Arrange > By Category, agrupa propriedades e eventos por categoria, o que pode facilitar a programação em alguns casos, como ajuste de tamanho e posição de componentes no Form Designer. Normalmente as propriedades que ajustam tamanho e posição ficam distantes quando exibidas por nome, mas se as agruparmos, elas ficam juntas. Veja o aspecto das propriedades agrupadas por categoria:
1.4 Object Tree View
O Object Tree View é a janelinha localizada por default logo acima do Object Inspector. Ele nos dá uma visão hierárquica dos componentes do formulário, com visão em árvore. Através dele podemos ver em qual container – Panel, GroupBox, ScrollBox, o próprio Form, etc., chamados em Delphi de ‘Parents’ dos componentes dos componentes neles contidos – cada componente está contido, podendo inclusive transferi-lo de um parent para outro. Para isto, basta arrastá-transferi-lo para cima do ícone do novo parent e ele será mudado para lá sem perder o valor de suas propriedades. Pode-se inclusive deletar um componente pelo Object Tree View. Outra facilidade oferecida por ele diz respeito a localização de componentes. Às vezes, de acordo com nosso layout, alguns componentes podem ficar de difícil acesso pelo Form Designer, tanto visualmente quanto pelo mouse. O Object Tree View pode nos ajudar a encontrá-los nestes casos. Veja uma ilustração do Tree View logo abaixo:
A palheta de componentes é uma barra de ferramentas onde se encontram todos os componentes que o desenvolvedor irá utilizar ao programar. Ela está dividida em várias palhetas onde os componentes são agrupados. Como o Delphi 7 possui inúmeras diferentes palhetas e elas serão vistas gradualmente na medida em que trabalhamos, teremos aqui apenas uma visão geral. Aí em baixo está uma visão da palheta de componentes do Delphi 7. Na ilustração ela foi destacada da barra de ferramentas principal apenas para melhorar sua visualização:
Algumas palhetas de componentes importantes são:
• Standard
Nela estão os componentes básicos de uma interface gráfica: Edit, Button, ComboBox, RadioButton, CheckBox, MainMenu... Sem dúvida, a mais usada
• Additional
Sob certos aspectos é semelhante à Standard, mas possui componentes de interface mais incrementados como BitBtn, LabeledEdit, SpeedButton, MaskEdit e StaticText. Além disso, é nela que estão componentes de imagem (Image) e de gráficos (Chart)
• Win32
Nesta palheta podemos encontrar componentes para barra de status, barra de progresso, barra de ferramentas, calendário, etc. Também temos o PageControl, que nos permite criar um layout de palhetas, como o da palheta de componentes (que aliás, é um PageControl mesmo, já que o Delphi foi feito em Delphi!!!)
• System
Seus principais componentes são o Timer, que representa um contador de tempo e o MediaPlayer, para executar arquivos de som e filmes
• DataAccess
Possui componentes que comunicam componentes se acesso a banco de dados com os componentes da DataControls. Com destaque para o DataSource, ClientDataSet e DataSetProvider
• DataControls
Possui semelhantes aos da Standard, porém com a capacidade de editar dados diretamente nos campos de tabelas do banco de dados
• Dialogs
Possui componentes que encapsulam os principais diálogos do Windows como o diálogo de fonte, de salvar arquivo, de abertura de arquivo, de impressora, entre outros
• dbExpress, ADO, InterBase, BDE
Estas palhetas contém componentes para conexão e acesso a bancos de dados, cada um para um tipo de conexão diferente