Classe TControladorDetalhe

DescriçãoHierarquiaCamposMétodosProperties

Unit

Declaração

type TControladorDetalhe = class(TObject)

Descrição

Controlador de mestre-detalhe

Hierarquia

Visão Geral

Campos

Private FAposNovo: TNotifyEvent;
Private FAposEditar: TNotifyEvent;
Private FAposSalvar: TNotifyEvent;
Private FAposExcluir: TNotifyEvent;
Private FAposCancelar: TNotifyEvent;
Private objForm: TfrmKernelFormulario;
Private objEntidade: TdtmKernelComum;
Private barFerramentas: TToolbar;
Private objGrade: TDBGrid;
Private objControladorGrade: TControladorGrade;
Private dscDataSource: TDataSource;
Private bolAbrirManutencao: boolean;
Private objPrimeiroControle: TWinControl;
Private objUltimoControle: TWinControl;
Private lstBotao: TList;
Private lstBotaoPersonalizado: TList;
Private lstControles: TList;
Private setBotao: TControladorDetalheTipoBotoes;
Private bolNovoFinal: boolean;
Private bolSolicitarConfirmacaoNovoFinal: Boolean;

Métodos

Private procedure MontarBarraFerramentas(const objBarra : TToolbar);
Private procedure DataSourceChange(Sender: TObject; Field: TField);
Private procedure DefinirBarraFerramentas(const Value: TToolbar);
Private procedure SetarPrimeiroControle;
Private procedure SetarGrade(const Value: TDBGrid);
Private procedure GradeDuploClique(Sender : TObject);
Private function AdicionarBotao( const strCaption, strHint : string; intImageIndex : smallint; const evnOnClick : TControladorDetalheEventoOnClick; const bitTipo : TControladorDetalheTipoBotao; const setEstadosInativo : TControladorDetalheBotaoEstadosDataSet; const bolAdicionarALista : boolean = true) : TControladorDetalheBotao;
Private procedure SetarBotoes(const Value: TControladorDetalheTipoBotoes);
Private function ConfirmarNovoFinal : boolean;
Public procedure AtualizarDetalhe;
Public procedure IncluirControles(const aryControles : array of TWinControl);
Public procedure Novo;
Public procedure Editar;
Public procedure Salvar;
Public procedure Excluir;
Public procedure Cancelar;
Public procedure NovoBotaoPersonalizado ( const strCaption, strHint : string; intImageIndex : smallint; const evnOnClick : TControladorDetalheEventoOnClick; const bitAdicionarAposBotao : TControladorDetalheTipoBotao; const setEstadosInativo : TControladorDetalheBotaoEstadosDataSet);
Public constructor Create(Form : TfrmKernelFormulario; EntidadePai : TdtmKernelComum);
Public destructor Destroy; override;
Public function VerificarUltimoControle : boolean;

Properties

Public property Entidade : TdtmKernelComum read objEntidade;
Public property BarraFerramentas : TToolbar read barFerramentas write DefinirBarraFerramentas;
Public property AposNovo : TNotifyEvent read FAposNovo write FAposNovo;
Public property AposEditar : TNotifyEvent read FAposEditar write FAposEditar;
Public property AposSalvar : TNotifyEvent read FAposSalvar write FAposSalvar;
Public property AposExcluir : TNotifyEvent read FAposExcluir write FAposExcluir;
Public property AposCancelar : TNotifyEvent read FAposCancelar write FAposCancelar;
Public property NovoFinal : Boolean read bolNovoFinal write bolNovoFinal;
Public property SolicitarConfirmacaoNovoFinal : boolean read bolSolicitarConfirmacaoNovoFinal write bolSolicitarConfirmacaoNovoFinal;
Public property AbrirManutencao : boolean read bolAbrirManutencao write bolAbrirManutencao;
Public property Grade : TDBGrid read objGrade write SetarGrade;
Public property Botoes : TControladorDetalheTipoBotoes read setBotao write SetarBotoes;

Descrição

Campos

Private FAposNovo: TNotifyEvent;

Evento apos a execucao do comando novo

Private FAposEditar: TNotifyEvent;

Evento apos a execucao do comando Editar

Private FAposSalvar: TNotifyEvent;

Evento apos a execucao do comando Salvar

Private FAposExcluir: TNotifyEvent;

Evento apos a execucao do comando Excluir

Private FAposCancelar: TNotifyEvent;

Evento apos a execucao do comando Cancelar

Private objForm: TfrmKernelFormulario;

Objeto que representa o formulario onde se encontra o Controlador

Private objEntidade: TdtmKernelComum;

Objeto que representa a Entidade

Private barFerramentas: TToolbar;

Barra de ferramentas

Private objGrade: TDBGrid;

Grade para visualização das informações Quando existente, cria um controlador de grade para a mesma (controlador criado através do formulário). Também cria controles de tecla para setar a grade através dos componentes (lista de controles definida em IncluirControles)

Private objControladorGrade: TControladorGrade;

Objeto que representa um controlador de grades, veja mais em TControladorGrade

Private dscDataSource: TDataSource;

DataSource do detalhe

Private bolAbrirManutencao: boolean;

Define se a manutenção do detalhe deve ser efetuada em uma tela de cadastro separada

Private objPrimeiroControle: TWinControl;

Lista de controles (componentes, edits, comboboxes, etc)

Private objUltimoControle: TWinControl;

Lista de controles (componentes, edits, comboboxes, etc)

Private lstBotao: TList;

Armazena a referência aos botões da barra de ferramentas

Private lstBotaoPersonalizado: TList;

Armazena as definições de botões personalizados criados pelo desenvolvedor, para posteriormente carregar essas configurações para dentro da lista de botões da barra de ferramentas

Private lstControles: TList;

Lista de controles definida

Private setBotao: TControladorDetalheTipoBotoes;

Define os botões padrão a serem criados dentro da barra de ferramentas

Private bolNovoFinal: boolean;

Determina se o controlador pode automaticamente ao chegar no último registro Salvar e criar um novo

Private bolSolicitarConfirmacaoNovoFinal: Boolean;

Determina se deve exibir uma mensagem perguntando se deve ou não criar um novo registro no final

Métodos

Private procedure MontarBarraFerramentas(const objBarra : TToolbar);

Efetua a montagem da barra de ferramentas

Private procedure DataSourceChange(Sender: TObject; Field: TField);

Evento ao Modificar dados no dataset, utilizado para altarar o status dos botoes

Private procedure DefinirBarraFerramentas(const Value: TToolbar);

Seta a barra de ferramentas do controlador

Private procedure SetarPrimeiroControle;

Seta o foco para o primeiro controle, caso tenha definido

Private procedure SetarGrade(const Value: TDBGrid);

Define e configura uma grade de dados para o controlador de detalhe

Private procedure GradeDuploClique(Sender : TObject);

Método disparado ao dar o duplo clique na grade, quando a opção de abrir manutenção estiver habilitada

Private function AdicionarBotao( const strCaption, strHint : string; intImageIndex : smallint; const evnOnClick : TControladorDetalheEventoOnClick; const bitTipo : TControladorDetalheTipoBotao; const setEstadosInativo : TControladorDetalheBotaoEstadosDataSet; const bolAdicionarALista : boolean = true) : TControladorDetalheBotao;

Cria um controlador de botão do tipo TControladorDetalheBotao e configura as propriedades de acordo com os parâmetros, adicionando-o ou não a lista de botões a serem criados na barra de ferramentas através do parâmetro bolAdicionarALista (deve-se passar o valor FALSE quando está apenas criando um item na lista personalizada para depois validar a posição do mesmo na ordem de criação dos botões)

Private procedure SetarBotoes(const Value: TControladorDetalheTipoBotoes);

Define os botões possíveis

Private function ConfirmarNovoFinal : boolean;

Solicitar confirmação se deseja inserir mais um item novo no final

Public procedure AtualizarDetalhe;

Monta a barra de ferramentas e atualiza as configurações da entidade

Public procedure IncluirControles(const aryControles : array of TWinControl);

Define a lista de controles

Public procedure Novo;

Inclui um novo registro no detalhe

Public procedure Editar;

Edita o registro atual do detalhe

Public procedure Salvar;

Salva o registro atual do detalhe

Public procedure Excluir;

Exclui o registro atual do detalhe

Public procedure Cancelar;

Cancela a edicao do registro atual do detalhe

Public procedure NovoBotaoPersonalizado ( const strCaption, strHint : string; intImageIndex : smallint; const evnOnClick : TControladorDetalheEventoOnClick; const bitAdicionarAposBotao : TControladorDetalheTipoBotao; const setEstadosInativo : TControladorDetalheBotaoEstadosDataSet);

Permite criar um botão personalizado na barra de detalhe e disparar um método configurado pelo desenvolvedor

Public constructor Create(Form : TfrmKernelFormulario; EntidadePai : TdtmKernelComum);

Construtor da classe, levando como parametro o formulario e a entidade

Public destructor Destroy; override;

Destrutor da classe

Public function VerificarUltimoControle : boolean;

Verifica se é o último controla do controlador detalhe que está setado e caso seja, verifica se deve inserir um novo registro

Properties

Public property Entidade : TdtmKernelComum read objEntidade;

Entidade do Controlador

Public property BarraFerramentas : TToolbar read barFerramentas write DefinirBarraFerramentas;

Barra deferramentas para controle do detalhe

Public property AposNovo : TNotifyEvent read FAposNovo write FAposNovo;

Evento executado apos a execucao do comando Novo

Public property AposEditar : TNotifyEvent read FAposEditar write FAposEditar;

Evento executado apos a execucao do comando Editar

Public property AposSalvar : TNotifyEvent read FAposSalvar write FAposSalvar;

Evento executado apos a execucao do comando Salvar

Public property AposExcluir : TNotifyEvent read FAposExcluir write FAposExcluir;

Evento executado apos a execucao do comando Excluir

Public property AposCancelar : TNotifyEvent read FAposCancelar write FAposCancelar;

Evento executado apos a execucao do comando Cancelar

Public property NovoFinal : Boolean read bolNovoFinal write bolNovoFinal;

Define se deve ou não criar um novo registro detalhe no final (ultima caixa)

Public property SolicitarConfirmacaoNovoFinal : boolean read bolSolicitarConfirmacaoNovoFinal write bolSolicitarConfirmacaoNovoFinal;

Define se deve solicitar a confirmação para incluir um novo registro no final

Public property AbrirManutencao : boolean read bolAbrirManutencao write bolAbrirManutencao;

Define se a manutenção do detalhe é efetuada em uma tela separada

Public property Grade : TDBGrid read objGrade write SetarGrade;

Grade para visualização dos itens

Public property Botoes : TControladorDetalheTipoBotoes read setBotao write SetarBotoes;

Botões disponíveis