Esse artigo faz parte da revista Clube Delphi Edição 77. Clique aqui para ler todos os artigos desta edição

FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Symbol">·         Salvar os digramas em um formato XML;

·         Abrir os diagramas salvos a partir do arquivo XML gerado;

·         Exclusão de uma tabela ou view do diagrama;

·         Arrastar as tabelas ou views dentro da área do diagrama;

·         Organização automática das tabelas e views contidas no diagrama.

 

Nota: Apesar de o aplicativo ter sido desenvolvido no Delphi 7, você pode compilá-lo sem problemas em qualquer outra versão do Delphi que possua suporte ao dbExpress, visto também que o mesmo não utiliza nenhum componente de terceiros.

 

Criando a aplicação

Crie uma nova aplicação no Delphi, altere o nome do formulário para “FrmPrincipal” e salve a unit como “untFrmPrincipal.pas”. Para o arquivo de projeto salve-o como “ERPlus.dpr”. Adicione alguns componentes visuais e não-visuais ao FrmPrincipal e configure-os como mostra a Figura 1.

 

Figura 1. Formulário principal da aplicação em tempo de design

 

Para o mmPrincipal (MainMenu) adicione os seguintes itens de menu:

·         Diagrama

o        Novo

o        Abrir

o        Salvar

o        Salvar como

o        Fechar

·         Banco de Dados

o        Configurar

·         Tabelas

o        Selecionar Tabelas

o        Apagar Tabela Selecionada

·         Outros

o        Organizar Layout

o        Visualizar Relacionamentos

o        Caixa Sobre

·         Sair

 

Você pode utilizar o imglPrincipal (ImageList) para adicionar alguns ícones para os itens do menu principal e para os botões da ToolBar. Todas as ações dos menus e botões ficarão centralizados em Actions no aclPrincipal (ActionList).

 

Nota: Por questões de espaço explicarei neste artigo apenas os principais métodos da aplicação. Para acompanhar o passo a passo, você poderá baixar o código-fonte completo do ERPlus a partir do link para download da revista.

 

Crie uma nova unit e salve-a como “untTabela.pas”. Para que possamos carregar o diagrama ER com as tabelas e views do banco de dados IB/FB, que será selecionado pelo usuário, vamos criar uma classe chamada “TTabela” na unit recém criada. Digite o código da Listagem 1 na unit.

 

Listagem 1. Criando a classe para acessar as tabelas e views do banco

unit untTabela;

 

interface

 

uses

  Classes, SysUtils, Graphics, Controls, ExtCtrls,

  ComCtrls;

 

type

 

  TTabela = class(TPanel)

    private

      FTabela: string;

      FPnlTitulo: TPanel;

      FLVCampos: TListView;

      FChavesEstrangeiras : TStringList;

      procedure EndDrag(Sender, Target: TObject;

        X, Y: Integer);

      procedure setTabela(const Value: string);

    public

      property Tabela: string read FTabela

        write setTabela;

      property PnlTitulo: TPanel read FPnlTitulo

        write FPnlTitulo;

      property Campos: TListView read FLVCampos

        write FLVCampos;

      property ChavesEstrangeiras: TStringList

        read FChavesEstrangeiras

        write FChavesEstrangeiras;

      constructor Create(AOwner: TComponent); override;

      destructor Destroy; override;

  end;

 

implementation

 

{ TTabela }

 

constructor TTabela.Create(AOwner: TComponent);

var

  Coluna: TListColumn;

begin

  inherited;

  Self.Height := 200;

...

Quer ler esse conteúdo completo? Tenha acesso completo