Treinamento Delphi
Índice
Dependências
- Antes de inciar este treinamento é necessário ler os seguintes tópicos:
Estrutura de diretórios
Serão apresentados somente os diretórios importantes.
- CVS_documentos
- Contém todos os documentos gerados pelo sistema Unilab
- CVS
- Conhecido como delphi 5, é o projeto unilab
- light
- Contém todos os arquivos de desenvolvimento relacionados ao sistema
- lib
- Contém todas as bibliotecas de desenvolvimento, inclusive de terceiras que sofreram alterações
- _d5_sharedforms
- Contém arquivos units não relacionadas ao sistema, e tem o propósito de apoiar o desenvolvimento a forms (Helpers, Utils), podem ser classes, funções, ou procedimentos
- _sharedunits
- Contém arquivos units não relacionadas ao sistema, e tem o propósito de apoiar o desenvolvimento (Helpers, Utils), podem ser classes, funções, ou procedimentos
- dcus
- Contém todas os arquivos DCUs ignorada no versionamento devido ao fato de ser gerado ao compilar o projeto
- CVS_D7
- Contém os programas desenvolvidos em Delphi 7
- Delphicomps
- Contém os componentes de terceiros utilizados no sistema Unilab
Estrutura de arquivos
- .pas
- Arquivos pascal que contém todo o código de desenvolvimento como classes, objetos, eventos
unit Unit1; // Declaração da unit interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} end. // Finalização da unit
- - Declaração da unit : Nessa seção tem a definição do nome da Unit, note que ele é igual ao nome dado a Unit no momento que a mesma foi salva.
- - Interface : A definição do formulário, assim como de outros componentes e tipos, podem ser vistos nessa seção. Aqui informamos os procedimento, funções, variáveis, constantes, entre outros, que serão definidos junto aos componentes e tipos. Ela ainda se divide nas seguintes cláusulas:
- - Uses : Aqui são colocadas bibliotecas externas à Unit, mas que são necessárias para a compilação da mesma. O Delphi incorpora automaticamente bibliotecas necessárias para o uso dos componentes instalados nele, mas outras devem ser implementadas pelo próprio programador.
- - Type : Essa cláusula é responsável por receber os objetos da Unit, incluindo-se a declaração da classe do formulário. Os procedimentos, funções, variáveis e constantes do formulário podem ser declarados como:
- - Private : Os campos de dados, métodos (procedimentos e funções de um objeto) e objetos declarados nessa área só poderão ser acessados pela própria Unit.
- - Public : Os campos de dados, métodos e objetos declarados nessa área poderão ser acessados tanto pela própria Unit como por outras Units.
- - Var : Aqui devem ser declaradas as variáveis publicas da Unit, além dos objetos que serão instanciados tal como o formulário.
- - Implementation : O desenvolvimento das funcionalidades dos métodos declarados nos objetos devem ser feitos entre nessa seção.
- - Finalização da unit : Essa seção finaliza a Unit, o que for colocado após ela será desprezado pelo compilador.
- Observação 1: Dentro da seção Implementation tem outra cláusula uses que foi inserida pelo Delphi no momento que implementamos a chamada do Form FLabel. Basicamente a cláusula uses da seção Interface referência as bibliotecas que serão usadas na definição do formulário, outros componentes e tipos. Já a uses que fica na seção Implementation faz referencia as bibliotecas que serão usadas na funcionalidade dos métodos.
- Observação 2: Embora utilizemos as chaves para delimitar comentários em uma ou várias linhas, no caso do código {$R *.dfm} o Delphi reconhece como uma diretiva de compilação. Nesse caso essa diretiva está informando o arquivo que contém as configurações do formulário e dos componentes colocados neles. Esse arquivo tem o mesmo nome da Unit (UPrincipal.pas), mudando apenas a extensão (UPrincipal.dfm).
- .dfm
- Esse arquivo contém as propriedades, eventos vinculados e grau de dependência dos objetos declarados na Unit UPrincipal.pas.
-
- hieraquia
- No ambiente de desenvolvimento, podemos através do delphi desenhar telas, nestas telas podemos estar inserindo componentes dentro de outros componentes, e por trás no arquivo dfm esses novos componentes (objetos) estão sendo hieraquizados, ou seja estão sendo construidos em forma de árvores possuindo pais (componente a qual está dentro).
- View as text
- Como apontado acima, o delphi permite construir telas clicando e arrastando, este pode ser chamado de modo visual (view), porém por trás estão sendo gerados códigos (text)
- .dpr
- - Declaração do programa : Nome do aplicativo que será executado. Semelhante a Unit, o nome dado ao Project no momento que foi salvo é o mesmo que está indicado como nome do programa nessa seção.
- - Units que compõem o aplicativo : Todas as Units usadas no projeto são declaradas nesse ponto.
- - Inicio da execução do programa : Essa seção inicializa o aplicativo, instância os formulários e em seguida executa o aplicativo.
- Observação 1: Nessa seção temos a diretiva de compilação {$R *.res}, nesse caso ele se refere ao arquivo de recursos (ícone, título e versão da aplicação são algumas das opções que podem existir nesse arquivo).
Classes
É uma estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos.
Estrutura de classes
- Private: Tudo o que for declarado aqui só poderá ser visto e acessado dentro da própria classe, nem as classes que herdarem nossa classe poderão acessar-los.
- Protected: Tudo o que for declarado aqui só poderá ser visto e acessado dentro da própria classe, mais diferente do private as classes que herdarem da nossa classe poderão acessar métodos e variáveis.
- Public: Tudo o que for declarado aqui poderá ser visto e acessado em qualquer lugar.
- Published: Tudo o que for declarado aqui poderá ser visto no object inspector no delphi.
- Property: Se trata de uma propriedade da classe, logo em seguida o tipo , depois a palavra 'read' diz que o 'get' ira ser feito lendo o valor da variável privada, e 'write' diz que ao atribuir um valor na variável publica ele ira jogar o valor dentro da variável privada. Poderíamos ainda criar uma método para que este fosse chamado.
Observação: Antes do nome do atributo colocamos a letra F, isto é um padrão que deve ser seguido para identificar o campo privado dentro da classe
Hierarquia de classes
- - TObject : é a Classe de origem de todos os objetos da VCL e componentes.
- - TPersistent : é a Classe de origem de todos os objetos que podem ser associados para outros e que podem ler e escrever propriedades.
- - TComponent : é a Classe de origem de todos os objetos da VCL. Permite que a classe apareça na paleta de componentes.
- - TControl : é a Classe de origem todos os componentes que são visíveis em Run-Time.
- - TWinControl : é a Classe de origem de todos componentes que recebem foco, tem Handle1 e que são containers de outros objetos. Ex.: TPanel, TEdit, TGroupbox, TListbox e etc…
- - TGraphicControl : é a Classe de origem de todos os componentes que são não recebem foco, não tem Handle e que não são containers para outros objetos. Ex.: TBevel, TImage, TShape, TSpeedButton e etc…
Macetes
- Ctrl + F
- Busca avançada no delphi
- F12
- Alterna entre tela de componentes (design) com tela de codificação
- Ctrl + Shift + C
- Implementa automaticamente a procidure/função definida no escopo de interface para o escopo de implementação
- Ctrl + Shift + acima (seta)
- Alterna entre escopo de interface e escopo de implementação, levando em consideração o contexto atual (se estiver em uma função o atalho alterna para a declaração da função)
- Ctrl + Shift + abaixo (seta)
- Alterna entre escopo de interface e escopo de implementação, levando em consideração o contexto atual (se estiver em uma função o atalho alterna para a declaração da função)
- Alt + F12
- Apresenta todas as units do projeto
- F11
- Chama a janela do Object Inspector