ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Abrir e Fechar Forms
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Ter Jan 20, 2015 1:43 pm    Assunto: Abrir e Fechar Forms Responder com Citação

Boa tarde, Galera

Já pesquisei e tentei diversos métodos postados, e nenhum me funcionou, provavelmente estou fazendo algo errado.

Coloquei todos os forms do meu projeto, com exceção do Menu e do dataModule no Available, e estou iniciando e encerrando da seguinte forma:

Abertura
Código:
frmCadastroPessoa := TfrmCadastroPessoa.Create(Self);
frmCadastroPessoa.Show;


FormClose
Código:
FreeAndNil(frmCadastroPessoa);


A questão é que o Form abre, só que quando digito qualquer coisa em qualquer campo, e tento sair, ele da Access Violation.

Alguém pode ajudar ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
qmartins
Novato
Novato


Registrado: Quinta-Feira, 20 de Agosto de 2009
Mensagens: 53
Localização: redencao

MensagemEnviada: Ter Jan 20, 2015 1:47 pm    Assunto: Responder com Citação

Amigo tenta o Seguinte.

frmCadastroPessoa := TfrmCadastroPessoa.Create(Self);
frmCadastroPessoa.ShowModal;

Espero ter ajudado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Ter Jan 20, 2015 2:08 pm    Assunto: Responder com Citação

Já tentei dessa forma e não funcionou.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
qmartins
Novato
Novato


Registrado: Quinta-Feira, 20 de Agosto de 2009
Mensagens: 53
Localização: redencao

MensagemEnviada: Ter Jan 20, 2015 6:00 pm    Assunto: Responder com Citação

Esse erro de Access Violation ocorre quando você esta tentando acessar algo que esta inacessível, ex: você manda abrir um form e tenta trazer uma informação de um outro form que não esta aberto. ai então vem o erro, verifique se neste form que você esta abrindo ele não esta tentando trazer informação de algum outro form que não tenha sido aberto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Qua Jan 21, 2015 6:33 am    Assunto: Responder com Citação

Na verdade é como disse, ele está dando o Access Somente quando tento fechar a tela, e somente quando digitei algo nessa tela, se eu somente abrir e já fechar ele funciona normalmente.

O problema é na hora de fechar o form.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Jan 21, 2015 8:34 am    Assunto: Responder com Citação

Sua aplicação é do tipo MDI ou SDI ?

Experimente alterar o OnClose do Form para:

Código:
Action := caFree;
frmCadastroPessoa := nil;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Qua Jan 21, 2015 8:47 am    Assunto: Responder com Citação

Já tentei dessa forma e também não funcionou.

Bom, acredito que seja SDI. Tenho um Menu e posteriormente abro outras janelas em cima desse menu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
swbk
Novato
Novato


Registrado: Terça-Feira, 6 de Janeiro de 2015
Mensagens: 27

MensagemEnviada: Qua Jan 21, 2015 8:53 am    Assunto: Responder com Citação

Se for MDI:

- Abrir form:
Código:
Application.CreateForm(TFormularioExemplo, FormularioExemplo);
FormularioExemplo.Show;



- Fechar form:
Código:
//Se utilizar um botão ou imagem
procedure TFormularioListaExemplo2.imgSairClick(Sender: TObject);
begin
  Free;
end;


Código:
//Se utilizar o X da janela
procedure TCiaAereaForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
     Action := caFree;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Qua Jan 21, 2015 9:01 am    Assunto: Responder com Citação

Tá dificil, nada ainda.

@EDIT

Aliás, coloquei o Free em um button e pelo que parece funcionou. Só que no X da janela no OnClose ainda não funcionou. Alguem sabe o por que ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Jan 21, 2015 9:11 am    Assunto: Responder com Citação

Creio que seu problema não seja nos seu método de abertura e nem no fechamento do form.

Testei aqui e funciona perfeitamente.

JonasB escreveu:
Na verdade é como disse, ele está dando o Access Somente quando tento fechar a tela, e somente quando digitei algo nessa tela, se eu somente abrir e já fechar ele funciona normalmente.

O problema é na hora de fechar o form.


Quando você diz que o Access Violation acontece quando você digita algo na tela...
Em que objeto? Se for em um DBEdit ou algum outro objeto DataWare (ligados ao banco de dados):
pode ser algum problema ao salvar os dados.

Por exemplo se a propriedade DataSource do objeto estiver vazio...
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Qua Jan 21, 2015 9:21 am    Assunto: Responder com Citação

Com o Free no botão para fechar funcionou, então creio que seja sim no método de fechamento.

Não, o Access Violation só acontece quando digito algo em algum campo e em seguida fecho no 'x', antes acontecia no button também, só que com o código do swbk resolveu no button, só no 'x' que não.

@EDIT

Estranho que coloquei o OnKeyDown ESC com btFechar.Click, que é o botão que está funcionando para fechar com o Free, e tá dando erro. No ESC da erro, e se clico no botão não. Estranho ?


Editado pela última vez por JonasB em Qua Jan 21, 2015 9:28 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
swbk
Novato
Novato


Registrado: Terça-Feira, 6 de Janeiro de 2015
Mensagens: 27

MensagemEnviada: Qua Jan 21, 2015 9:28 am    Assunto: Responder com Citação

JonasB escreveu:
Com o Free no botão para fechar funcionou, então creio que seja sim no método de fechamento.

Não, o Access Violation só acontece quando digito algo em algum campo e em seguida fecho no 'x', antes acontecia no button também, só que com o código do swbk resolveu no button, só no 'x' que não.


Poderia postar o código do formulário em questão?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
swbk
Novato
Novato


Registrado: Terça-Feira, 6 de Janeiro de 2015
Mensagens: 27

MensagemEnviada: Qua Jan 21, 2015 9:30 am    Assunto: Responder com Citação

Outro detalhe, vamos supor que você está em uma lista e no duplo clique do registro abre esse form seu.

Você faz referência de algum objeto desse form na lista?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Qua Jan 21, 2015 9:30 am    Assunto: Responder com Citação

Código tá bagunçado que estou reformulando mais vamos lá, rs

Código:
unit uCadastroPessoa;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.StrUtils, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JvExStdCtrls, JvEdit,
  Vcl.ExtCtrls, Vcl.ImgList, Vcl.ComCtrls, Vcl.Mask, JvExMask, JvToolEdit,
  JvMaskEdit, JvExControls, JvGradient, Vcl.Imaging.pngimage, Vcl.Buttons;



type
  TfrmCadastroPessoa = class(TForm)
    edtRazaoSocial: TEdit;
    cmbTipoPessoa: TComboBox;
    cmbSituacao: TComboBox;
    edtNomeFantasia: TEdit;
    lblFantasia: TLabel;
    edtEmail: TEdit;
    lblEmail: TLabel;
    lblCEP: TLabel;
    edtEndereco: TEdit;
    lblEndereco: TLabel;
    edtNumero: TJvEdit;
    lblNumero: TLabel;
    edtBairro: TEdit;
    lblBairro: TLabel;
    edtCidade: TEdit;
    lblCidade: TLabel;
    edtUF: TEdit;
    lblUF: TLabel;
    edtInscricaoEstadual: TJvEdit;
    lblCNPJ: TLabel;
    lblInscricaoEstadual: TLabel;
    lblTelefone: TLabel;
    cmbRepresentante: TComboBox;
    lblRepresentante: TLabel;
    cmbTabelaPrecos: TComboBox;
    lblTabelaPrecos: TLabel;
    cmbTipoCusto: TComboBox;
    lblTipoCusto: TLabel;
    cmbTipoFrete: TComboBox;
    lblTipoFrete: TLabel;
    edtTransportadora2: TEdit;
    lblTransportador: TLabel;
    edtRedespacho: TEdit;
    lblRedespacho: TLabel;
    cmbTipoPagamento: TComboBox;
    lblTipoPagamento: TLabel;
    lblCondicaoPagamento: TLabel;
    groupClassificacao: TGroupBox;
    chkCliente: TCheckBox;
    chkFornecedor: TCheckBox;
    chkTransportador: TCheckBox;
    chkFuncionario: TCheckBox;
    chkRepresentante: TCheckBox;
    ImageList1: TImageList;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    StatusBar1: TStatusBar;
    Label10: TLabel;
    lblRazaoSocial: TLabel;
    lblSituacao: TLabel;
    lblTipoPessoa: TLabel;
    edtTelefone: TJvMaskEdit;
    edtCEP: TJvMaskEdit;
    edtCNPJ: TJvMaskEdit;
    edtTransportadora: TEdit;
    edtRedespacho2: TEdit;
    cmbCondicaoPagamento: TComboBox;
    Label11: TLabel;
    Image1: TImage;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    JvGradient1: TJvGradient;
    Shape1: TShape;
    SpeedButton1: TSpeedButton;
    btNovo: TSpeedButton;
    btPesquisar: TSpeedButton;
    btAlterar: TSpeedButton;
    edtCodigo: TEdit;
    Label15: TLabel;
    JvGradient2: TJvGradient;
    btSalvar: TButton;
    btCancelar: TButton;
    btFechar: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    memoObservacoes: TMemo;
    Label16: TLabel;
    Memo2: TMemo;
    Label17: TLabel;
    Memo3: TMemo;
    Label18: TLabel;
    btEliminar: TSpeedButton;
    procedure localizaSequencia();
    procedure verificaCampos();
    procedure assinalaCampos();
    procedure executaTransacaoInsert();
    procedure executaTransacaoUpdate();
    procedure edtRazaoSocialExit(Sender: TObject);
    procedure edtNomeFantasiaExit(Sender: TObject);
    procedure edtCEPExit(Sender: TObject);
    procedure edtEnderecoExit(Sender: TObject);
    procedure edtNumeroExit(Sender: TObject);
    procedure edtBairroExit(Sender: TObject);
    procedure edtTelefoneExit(Sender: TObject);
    procedure edtCNPJExit(Sender: TObject);
    procedure edtInscricaoEstadualExit(Sender: TObject);
    procedure gravaVariaveis();
    procedure limparCampos();
    procedure atualizaSequencia();
    procedure btNovo2Click(Sender: TObject);
    procedure btPesquisar2Click(Sender: TObject);
    procedure btFechar2Click(Sender: TObject);
    function RemoveChars(const Chrs : array of Char; const aText : string) : string;
    procedure cmbTipoPessoaChange(Sender: TObject);
    procedure btAlterar2Click(Sender: TObject);
    procedure pessoaRepresentante();
    procedure FormShow(Sender: TObject);
    procedure edtTransportadoraKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtRedespachoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtTransportadoraExit(Sender: TObject);
    procedure edtRedespachoExit(Sender: TObject);
    procedure desabilitaBotoesTopo();
    procedure habilitaBotoesTopo();
    procedure habilitaBotoesRodape();
    procedure desabilitaBotoesRodape();
    procedure btCancelarClick(Sender: TObject);
    procedure btSalvarClick(Sender: TObject);
    procedure btEliminarClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadastroPessoa: TfrmCadastroPessoa;
  sequencia : Integer;
  camposObrigatorios, transportadora, transportadora2 : Integer;
  tipoPessoa, situacaoCadastro, classificacaoCliente, classificacaoFornecedor : String;
  classificacaoTransportadora, classificacaoRepresentante, classificacaoFuncionario : String;
implementation

{$R *.dfm}

uses uConexaoFB, uPesquisaPessoa, uRepresentante;

function TfrmCadastroPessoa.RemoveChars(const Chrs : array of Char; const aText : string) : string;
var
  I : Integer;
begin
  Result := aText;
  for I := Low(Chrs) to High(Chrs) do
    Result := ReplaceStr(Result, Chrs[I], '');
end;

procedure TfrmCadastroPessoa.executaTransacaoUpdate();
begin
dmDados.QryMovimentacoes.Close;
dmDados.QryMovimentacoes.SQL.Clear;
dmDados.QryMovimentacoes.SQL.Add('UPDATE CAD_PESSOA SET PESSOA_RAZAOSOCIAL = :ParRazaoSocial, '+
'PESSOA_FANTASIA = :ParFantasia, PESSOA_SITUACAO = :ParSituacao, PESSOA_EMAIL = :ParEmail, PESSOA_CEP = :ParCEP, '+
'PESSOA_ENDERECO = :ParEndereco, PESSOA_ENDERECONUMERO = :ParEnderecoNumero, '+
'PESSOA_ENDERECOBAIRRO = :ParEnderecoBairro, PESSOA_TELEFONE = :ParTelefone, '+
'PESSOA_TIPOFRETE = :ParTipoFrete, PESSOA_TRANSPORTADORA = :ParTransportadora, '+
'PESSOA_REDESPACHO = :ParRedespacho, PESSOA_TIPOPAGAMENTO = :ParTipoPagamento, '+
'PESSOA_CONDICAOPAGAMENTO = :ParCondicaoPagamento, PESSOA_REPRESENTANTE = :ParRepresentante, '+
'PESSOA_TIPOCUSTO = :ParTipoCusto, PESSOA_CLASSIFICACAOCLIENTE = :ParClassificacaoCliente, '+
'PESSOA_CLASSIFICACAOFORNECEDOR = :ParClassificacaoFornecedor, PESSOA_CLASSIFICACAOTRANSPORTAD = :ParClassificacaoTransportadora, '+
'PESSOA_CLASSIFICACAOFUNCIONARIO = :ParClassificacaoFuncionario, PESSOA_CLASSIFICACAOREPRESENTAN = :ParClassificacaoRepresentante, '+
'PESSOA_OBSERVACOES = :ParObservacoes, PESSOA_TABELAPRECOS = :ParTabelaPrecos WHERE PESSOA_CODIGO = :ParCodigo');
dmDados.QryMovimentacoes.Params.ParamByName('ParCodigo').value := edtCodigo.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParRazaoSocial').value := edtRazaoSocial.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParSituacao').value := situacaoCadastro;
dmDados.QryMovimentacoes.Params.ParamByName('ParFantasia').value := edtNomeFantasia.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEmail').value := edtEmail.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParCEP').value := RemoveChars(['.', '-'], edtCEP.Text);
dmDados.QryMovimentacoes.Params.ParamByName('ParEndereco').value := edtEndereco.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEnderecoNumero').value := edtNumero.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEnderecoBairro').value := edtBairro.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParTelefone').value := edtTelefone.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoFrete').value := cmbTipoFrete.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTransportadora').value := edtTransportadora.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParRedespacho').value := edtRedespacho.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoPagamento').value := cmbTipoPagamento.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParCondicaoPagamento').value := cmbCondicaoPagamento.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParRepresentante').value := cmbRepresentante.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTabelaPrecos').value := cmbTabelaPrecos.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoCusto').value := cmbTipoCusto.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoCliente').value := classificacaoCliente;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoFornecedor').value := classificacaoFornecedor;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoTransportadora').value := classificacaoTransportadora;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoFuncionario').value := classificacaoFuncionario;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoRepresentante').value := classificacaoRepresentante;
dmDados.QryMovimentacoes.Params.ParamByName('ParObservacoes').Value := memoObservacoes.Text;
dmDados.QryMovimentacoes.ExecSQL();
end;

procedure TfrmCadastroPessoa.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Free;
end;

procedure TfrmCadastroPessoa.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = VK_ESCAPE then
begin
btFechar.Click;
end;
end;

procedure TfrmCadastroPessoa.FormShow(Sender: TObject);
begin
//REPRESENTANTE
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_REPRESENTANTE');
dmDados.QryPesquisas.Open;

begin
while not dmDados.QryPesquisas.Eof do
begin
cmbRepresentante.Items.Add(dmDados.QryPesquisas.FieldByName('REPRESENTANTE_DESCRICAO').AsString);
dmDados.QryPesquisas.Next;
end;
end;
end;

//CONDIÇÃO DE PAGAMENTO
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_CONDICAOPAGAMENTO');
dmDados.QryPesquisas.Open;

begin
while not dmDados.QryPesquisas.Eof do
begin
cmbCondicaoPagamento.Items.Add(dmDados.QryPesquisas.FieldByName('CONDICAOPAGAMENTO_DESCRICAO').AsString);
dmDados.QryPesquisas.Next;
end;
end;
end;

end;

procedure TfrmCadastroPessoa.executaTransacaoInsert();
begin
gravaVariaveis();
dmDados.QryMovimentacoes.Close;
dmDados.QryMovimentacoes.SQL.Clear;
dmDados.QryMovimentacoes.SQL.Add('INSERT INTO CAD_PESSOA VALUES (:ParCodigo, :ParTipo, '+
':ParRazaoSocial, :ParSituacao, :ParFantasia, :ParEmail, :ParCEP, :ParEndereco, '+
':ParEnderecoNumero, :ParEnderecoBairro, :ParTelefone, :ParCNPJ, :ParInscricao, '+
':ParTipoFrete, :ParTransportadora, :ParRedespacho, :ParTipoPagamento, '+
':ParCondicaoPagamento, :ParRepresentante, :ParTabelaPrecos, :ParTipoCusto, '+
':ParClassificacaoCliente, :ParClassificacaoFornecedor, :ParClassificacaoTransportadora, '+
':ParClassificacaoFuncionario, :ParClassificacaoRepresentante, :ParObservacoes)');
dmDados.QryMovimentacoes.Params.ParamByName('ParCodigo').value := sequencia;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipo').value := tipoPessoa;
dmDados.QryMovimentacoes.Params.ParamByName('ParRazaoSocial').value := edtRazaoSocial.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParSituacao').value := situacaoCadastro;
dmDados.QryMovimentacoes.Params.ParamByName('ParFantasia').value := edtNomeFantasia.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEmail').value := edtEmail.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParCEP').value := RemoveChars(['.', '-'], edtCEP.Text);
dmDados.QryMovimentacoes.Params.ParamByName('ParEndereco').value := edtEndereco.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEnderecoNumero').value := edtNumero.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParEnderecoBairro').value := edtBairro.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParTelefone').value := edtTelefone.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParCNPJ').value := RemoveChars(['.', '-', '/'], edtCNPJ.Text);
dmDados.QryMovimentacoes.Params.ParamByName('ParInscricao').value := edtInscricaoEstadual.Text;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoFrete').value := cmbTipoFrete.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTransportadora').value := transportadora;
dmDados.QryMovimentacoes.Params.ParamByName('ParRedespacho').value := transportadora2;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoPagamento').value := cmbTipoPagamento.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParCondicaoPagamento').value := cmbCondicaoPagamento.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParRepresentante').value := cmbRepresentante.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTabelaPrecos').value := cmbTabelaPrecos.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParTipoCusto').value := cmbTipoCusto.ItemIndex;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoCliente').value := classificacaoCliente;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoFornecedor').value := classificacaoFornecedor;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoTransportadora').value := classificacaoTransportadora;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoFuncionario').value := classificacaoFuncionario;
dmDados.QryMovimentacoes.Params.ParamByName('ParClassificacaoRepresentante').value := classificacaoRepresentante;
dmDados.QryMovimentacoes.Params.ParamByName('ParObservacoes').Value := memoObservacoes.Text;
dmDados.QryMovimentacoes.ExecSQL();
//ATUALIZA INDICE DE SEQUENCIAS
atualizaSequencia();
end;

procedure TfrmCadastroPessoa.btPesquisar2Click(Sender: TObject);
begin
//BOTÃO PESQUISAR
if btPesquisar.Caption = 'Pesquisar (F2)' then
begin
frmPesquisaPessoa := TfrmPesquisaPessoa.Create(Self);
frmPesquisaPessoa.ShowModal;
if frmPesquisaPessoa.ModalResult = mrOk then
begin
begin
frmCadastroPessoa.edtCEP.EditMask := '00000-000;0;_';
frmCadastroPessoa.edtCNPJ.EditMask := '00\.000\.000\/0000\-00;0;_';
frmCadastroPessoa.edtTelefone.EditMask := '!\(99\)9999-99999;0;_';
frmCadastroPessoa.edtCodigo.Visible := True;
//frmCadastroPessoa.lblCodigo.Visible := True;
frmCadastroPessoa.edtCodigo.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CODIGO').Value;
frmCadastroPessoa.edtRazaoSocial.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_RAZAOSOCIAL').Value;
frmCadastroPessoa.edtNomeFantasia.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_FANTASIA').Value;
frmCadastroPessoa.edtEmail.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_EMAIL').Value;
frmCadastroPessoa.edtCEP.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CEP').Value;
frmCadastroPessoa.edtEndereco.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_ENDERECO').Value;
frmCadastroPessoa.edtNumero.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_ENDERECONUMERO').Value;
frmCadastroPessoa.edtBairro.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_ENDERECOBAIRRO').Value;
frmCadastroPessoa.edtTelefone.Text := RemoveChars(['(', '-', ')'], dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TELEFONE').Value);
frmCadastroPessoa.edtCNPJ.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CNPJ').Value;
frmCadastroPessoa.edtInscricaoEstadual.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_INSCRICAO').Value;
frmCadastroPessoa.edtTransportadora.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TRANSPORTADORA').Value;
frmCadastroPessoa.edtRedespacho.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_REDESPACHO').Value;
frmCadastroPessoa.cmbCondicaoPagamento.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CONDICAOPAGAMENTO').Value;
frmCadastroPessoa.memoObservacoes.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_OBSERVACOES').Value;
frmCadastroPessoa.cmbTipoFrete.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TIPOFRETE').Value;
frmCadastroPessoa.cmbTipoPagamento.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TIPOPAGAMENTO').Value;
frmCadastroPessoa.cmbRepresentante.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_REPRESENTANTE').Value;
frmCadastroPessoa.cmbTabelaPrecos.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TABELAPRECOS').Value;
frmCadastroPessoa.cmbTipoCusto.ItemIndex := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TIPOCUSTO').Value;

//TRANSPORTADORA
if edtTransportadora.Text <> '' then
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_PESSOA WHERE PESSOA_CODIGO = :ParCodigo');
dmDados.QryPesquisas.Params.ParamByName('ParCodigo').Value := edtTransportadora.Text;
dmDados.QryPesquisas.Open;

edtTransportadora2.Text := dmDados.QryPesquisas.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
//REDESPACHO
if edtRedespacho.Text <> '' then
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_PESSOA WHERE PESSOA_CODIGO = :ParCodigo');
dmDados.QryPesquisas.Params.ParamByName('ParCodigo').Value := edtRedespacho.Text;
dmDados.QryPesquisas.Open;

edtRedespacho2.Text := dmDados.QryPesquisas.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
end;

begin
//PESQUISA CEP
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_LOGRADOUROS INNER JOIN CAD_CIDADE ON CAD_CIDADE.CIDADE_CODIGO = CAD_LOGRADOUROS.LOGRADOURO_CIDADE WHERE LOGRADOUROS_CEP = :ParCep');
dmDados.QryPesquisas.Params.ParamByName('ParCep').Value := RemoveChars(['.', '-'], edtCEP.Text);
dmDados.QryPesquisas.Open;

if not dmDados.QryPesquisas.IsEmpty then
begin
edtCidade.Text := dmDados.QryPesquisas.FieldByName('CIDADE_DESCRICAO').Value;
edtUF.Text := dmDados.QryPesquisas.FieldByName('CIDADE_ESTADO').Value;
end;

//TIPO PESSOA
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_TIPO').Value = 'J' then
begin
frmCadastroPessoa.cmbTipoPessoa.ItemIndex := 0;
end
else
begin
frmCadastroPessoa.cmbTipoPessoa.ItemIndex := 1;
end;
//SITUAÇÃO
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_SITUACAO').Value = 'A' then
begin
frmCadastroPessoa.cmbTipoPessoa.ItemIndex := 0;
end
else
begin
frmCadastroPessoa.cmbTipoPessoa.ItemIndex := 1;
end;
//CLASSIFICAÇÃO CLIENTE
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CLASSIFICACAOCLIENTE').Value = 'S' then
begin
frmCadastroPessoa.chkCliente.Checked := True;
end
else
begin
frmCadastroPessoa.chkCliente.Checked := False;
end;
//CLASSIFICAÇÃO FORNECEDOR
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CLASSIFICACAOFORNECEDOR').Value = 'S' then
begin
frmCadastroPessoa.chkFornecedor.Checked := True;
end
else
begin
frmCadastroPessoa.chkFornecedor.Checked := False;
end;
//CLASSIFICAÇÃO FUNCIONÁRIO
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CLASSIFICACAOFUNCIONARIO').Value = 'S' then
begin
frmCadastroPessoa.chkFuncionario.Checked := True;
end
else
begin
frmCadastroPessoa.chkFuncionario.Checked := False;
end;
//CLASSIFICAÇÃO REPRESENTANTE
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CLASSIFICACAOREPRESENTAN').Value = 'S' then
begin
frmCadastroPessoa.chkRepresentante.Checked := True;
end
else
begin
frmCadastroPessoa.chkRepresentante.Checked := False;
end;
//CLASSIFICAÇÃO TRANSPORTADORA
if dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CLASSIFICACAOTRANSPORTAD').Value = 'S' then
begin
frmCadastroPessoa.chkTransportador.Checked := True;
end
else
begin
frmCadastroPessoa.chkTransportador.Checked := False;
end;

//CAMPOS OBRIGATÓRIOS
Label10.Visible := False;
Label1.Visible := False;
Label3.Visible := False;
Label2.Visible := False;
Label5.Visible := False;
Label6.Visible := False;
Label7.Visible := False;
Label8.Visible := False;
Label9.Visible := False;
Label4.Visible := False;

dmDados.cdsPesquisaPessoa.Close;
FreeAndNil(frmPesquisaPessoa);
end;
end;
//FIM MODAL RESULT
end;
end;

procedure TfrmCadastroPessoa.btSalvarClick(Sender: TObject);
begin
verificaCampos();
if camposObrigatorios = 1 then
Exit;
{********* EXECUTA TRANSAÇÃO INSERT*********}
if StatusBar1.Panels[1].Text = 'Inclusão' then
begin
executaTransacaoInsert();

//VERIRICA SE É REPRESENTANTE E ABRE JANELA
if chkRepresentante.Checked = True then
begin
frmCadastroRepresentante := TfrmCadastroRepresentante.Create(Self);
frmCadastroRepresentante.Show;
end;

Application.MessageBox(PChar('Pessoa '+ IntToStr(sequencia) +' cadastrada com sucesso!'),'Aviso do Sistema',mb_Ok+mb_IconInformation);

habilitaBotoesTopo();
desabilitaBotoesRodape();
PageControl1.Enabled := False;
edtCodigo.SetFocus;
StatusBar1.Panels[1].Text := 'Leitura';
end;
{********* FIM TRANSAÇÃO INSERT *********}

{********* EXECUTA TRANSAÇÃO UPDATE *********}
if StatusBar1.Panels[1].Text = 'Alteração' then
begin
executaTransacaoUpdate();
edtTelefone.EditMask := '!\(99\)9999-99999;1;_';
edtCEP.EditMask := '00000\-999;1;_';
edtCNPJ.EditMask := '00\.000\.000\/9999\-00;1;_';
//VERIRICA SE É REPRESENTANTE E ABRE JANELA
if chkRepresentante.Checked = True then
begin
frmCadastroRepresentante := TfrmCadastroRepresentante.Create(Self);
frmCadastroRepresentante.Show;
end
else
begin
Application.MessageBox(PChar('Pessoa '+ edtCodigo.Text +' alterada com sucesso!'),'Aviso do Sistema',mb_Ok+mb_IconInformation);

habilitaBotoesTopo();
desabilitaBotoesRodape();
PageControl1.Enabled := False;
edtCodigo.SetFocus;
StatusBar1.Panels[1].Text := 'Leitura';

end;
end;
{********* FIM TRANSAÇÃO UPDATE *********}
end;

procedure TfrmCadastroPessoa.btAlterar2Click(Sender: TObject);
begin
if edtRazaoSocial.Text <> '' then
begin
PageControl1.Enabled := True;
edtCEP.EditMask := '00000\-999;1;_';
edtCNPJ.EditMask := '00\.000\.000\/9999\-00;1;_';
edtTelefone.EditMask := '!\(99\)9999-99999;1;_';
edtRazaoSocial.SetFocus;
StatusBar1.Panels[1].Text := 'Alteração';
desabilitaBotoesTopo();
habilitaBotoesRodape();
end
else
begin
Application.MessageBox('Selecione um cliente para alterar!','Aviso do Sistema',mb_Ok+mb_IconExclamation);
end;

end;

procedure TfrmCadastroPessoa.btCancelarClick(Sender: TObject);
begin
limparCampos();
PageControl1.Enabled := False;
edtCodigo.Text := '';
edtCodigo.SetFocus;
habilitaBotoesTopo();
desabilitaBotoesRodape();
end;

procedure TfrmCadastroPessoa.btEliminarClick(Sender: TObject);
begin
Application.MessageBox('Em desenvolvimento!','Aviso do Sistema',mb_Ok+mb_IconExclamation);
end;

procedure TfrmCadastroPessoa.btFechar2Click(Sender: TObject);
begin
//Close;
Free;
end;

procedure TfrmCadastroPessoa.pessoaRepresentante();
begin
FreeAndNil(frmCadastroPessoa);
end;

procedure TfrmCadastroPessoa.desabilitaBotoesTopo();
begin
btNovo.Enabled := False;
btAlterar.Enabled := False;
btEliminar.Enabled := False;
btPesquisar.Enabled := False;

btSalvar.Visible := True;
btCancelar.Visible := True;
end;

procedure TfrmCadastroPessoa.habilitaBotoesTopo();
begin
btNovo.Enabled := True;
btAlterar.Enabled := True;
btEliminar.Enabled := True;
btPesquisar.Enabled := True;

btSalvar.Visible := True;
btCancelar.Visible := True;
end;

procedure TfrmCadastroPessoa.habilitaBotoesRodape();
begin
btSalvar.Visible := True;
btCancelar.Visible := True;
end;

procedure TfrmCadastroPessoa.desabilitaBotoesRodape();
begin
btSalvar.Visible := False;
btCancelar.Visible := False;
end;

procedure TfrmCadastroPessoa.btNovo2Click(Sender: TObject);
begin
PageControl1.Enabled := True;
limparCampos();
edtRazaoSocial.SetFocus;
edtTelefone.EditMask := '!\(99\)9999-99999;1;_';
edtCEP.EditMask := '00000\-999;1;_';
edtCNPJ.EditMask := '00\.000\.000\/9999\-00;1;_';

desabilitaBotoesTopo();
habilitaBotoesRodape();

//ULTIMA SEQUENCIA
localizaSequencia();
edtCodigo.Text := IntToStr(sequencia);
edtRazaoSocial.SetFocus;
StatusBar1.Panels[1].Text := 'Inclusão';
end;

procedure TfrmCadastroPessoa.cmbTipoPessoaChange(Sender: TObject);
begin
if cmbTipoPessoa.ItemIndex = 1 then
begin
lblCNPJ.Caption := 'CPF';
edtCNPJ.Text := '   .   .   -  ';
edtCNPJ.EditMask := '000\.000\.000\-99;1;_';
end
else
lblCNPJ.Caption := 'CNPJ';
edtCNPJ.Text := '';
edtCNPJ.EditMask := '00\.000\.000\/9999\-00;1;_';
end;

procedure TfrmCadastroPessoa.edtBairroExit(Sender: TObject);
begin
if edtBairro.Text <> '' then
begin
label5.Visible := False;
end
else
label5.Visible := True;
end;

procedure TfrmCadastroPessoa.edtCEPExit(Sender: TObject);
begin
//VERIFICA CAMPO VAZIO
if edtCEP.Text <> '     -   ' then
begin

//PESQUISA CEP
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_LOGRADOUROS INNER JOIN CAD_CIDADE ON CAD_CIDADE.CIDADE_CODIGO = CAD_LOGRADOUROS.LOGRADOURO_CIDADE WHERE LOGRADOUROS_CEP = :ParCep');
dmDados.QryPesquisas.Params.ParamByName('ParCep').Value := RemoveChars(['.', '-'], edtCEP.Text);
dmDados.QryPesquisas.Open;

if not dmDados.QryPesquisas.IsEmpty then
begin
edtCidade.Text := dmDados.QryPesquisas.FieldByName('CIDADE_DESCRICAO').Value;
edtUF.Text := dmDados.QryPesquisas.FieldByName('CIDADE_ESTADO').Value;
edtEndereco.Text := dmDados.QryPesquisas.FieldByName('LOGRADOURO_DESCRICAO').Value;
edtBairro.Text := dmDados.QryPesquisas.FieldByName('LOGRADOURO_BAIRRO').Value;
label3.Visible := False;
Label2.Visible := False;
Label5.Visible := False;
end
else
begin
Application.MessageBox('O CEP não existe!','Aviso do Sistema',mb_Ok+mb_IconError);
edtCEP.Text := '';
edtCidade.Text := '';
edtUF.Text := '';
edtEndereco.Text := '';
edtBairro.Text := '';
label3.Visible := True;
Label2.Visible := True;
Label5.Visible := True;
end;
end
else
label3.Visible := True;
end;

procedure TfrmCadastroPessoa.edtCNPJExit(Sender: TObject);
begin
if edtCNPJ.Text <> '' then
begin
label7.Visible := False;
end
else
label7.Visible := True;
end;

procedure TfrmCadastroPessoa.edtEnderecoExit(Sender: TObject);
begin
if edtEndereco.Text <> '' then
begin
label2.Visible := False;
end
else
label2.Visible := True;
end;

procedure TfrmCadastroPessoa.edtInscricaoEstadualExit(Sender: TObject);
begin
if edtInscricaoEstadual.Text <> '' then
begin
label8.Visible := False;
end
else
label8.Visible := True;
end;

procedure TfrmCadastroPessoa.edtNomeFantasiaExit(Sender: TObject);
begin
if edtNomeFantasia.Text <> '' then
begin
label1.Visible := False;
end
else
label1.Visible := True;
end;

procedure TfrmCadastroPessoa.edtNumeroExit(Sender: TObject);
begin
if edtNumero.Text <> '' then
begin
label4.Visible := False;
end
else
label4.Visible := True;
end;

procedure TfrmCadastroPessoa.edtRazaoSocialExit(Sender: TObject);
begin
if edtRazaoSocial.Text <> '' then
begin
label10.Visible := False;
end
else
label10.Visible := True;
end;

procedure TfrmCadastroPessoa.edtRedespachoExit(Sender: TObject);
begin

if edtRedespacho.Text = '' then
begin
transportadora2 := 0;
Exit;
end;

if edtRedespacho.Text <> '' then
begin
if edtRedespacho.Text = edtTransportadora.Text then
begin
Application.MessageBox('O código da Transportadora de Redespacho não pode ser o mesmo da Transportadora.','Aviso do Sistema',mb_Ok+mb_IconExclamation);
edtRedespacho.Text := '';
edtRedespacho2.Text := '';
edtRedespacho.SetFocus;
end
else
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_PESSOA WHERE PESSOA_CODIGO = :ParCodigo AND PESSOA_CLASSIFICACAOTRANSPORTAD = ''S''');
dmDados.QryPesquisas.Params.ParamByName('ParCodigo').Value := edtRedespacho.Text;
dmDados.QryPesquisas.Open;

if dmDados.QryPesquisas.IsEmpty then
begin
Application.MessageBox('Código de Transportador inválido! Por favor, verifique.','Aviso do Sistema',mb_Ok+mb_IconExclamation);
edtRedespacho.Text := '';
edtRedespacho2.Text := '';
edtRedespacho.SetFocus;
end
else
begin
edtRedespacho.Text := dmDados.QryPesquisas.FieldByName('PESSOA_CODIGO').Value;
transportadora2 := dmDados.QryPesquisas.FieldByName('PESSOA_CODIGO').Value;
edtRedespacho2.Text := dmDados.QryPesquisas.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
end;
end;
end;

procedure TfrmCadastroPessoa.edtRedespachoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = VK_F2 then
begin
frmPesquisaPessoa := TfrmPesquisaPessoa.Create(Self);
frmPesquisaPessoa.filtro := 1;
frmPesquisaPessoa.ShowModal;
if frmPesquisaPessoa.ModalResult = mrOk then
begin
edtRedespacho.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CODIGO').Value;
edtRedespacho2.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
end;
end;

procedure TfrmCadastroPessoa.edtTelefoneExit(Sender: TObject);
begin
if edtTelefone.Text <> '' then
begin
label6.Visible := False;
end
else
label6.Visible := True;
end;

procedure TfrmCadastroPessoa.edtTransportadoraExit(Sender: TObject);
begin

if edtTransportadora.Text = '' then
begin
transportadora := 0;
Exit;
end;

if edtTransportadora.Text <> '' then
begin
dmDados.QryPesquisas.Close;
dmDados.QryPesquisas.SQL.Clear;
dmDados.QryPesquisas.SQL.Add('SELECT * FROM CAD_PESSOA WHERE PESSOA_CODIGO = :ParCodigo AND PESSOA_CLASSIFICACAOTRANSPORTAD = ''S''');
dmDados.QryPesquisas.Params.ParamByName('ParCodigo').Value := edtTransportadora.Text;
dmDados.QryPesquisas.Open;

if dmDados.QryPesquisas.IsEmpty then
begin
Application.MessageBox('Código de Transportador inválido! Por favor, verifique.','Aviso do Sistema',mb_Ok+mb_IconExclamation);
edtTransportadora.Text := '';
edtTransportadora2.Text := '';
edtTransportadora.SetFocus;
end
else
begin
edtTransportadora.Text := dmDados.QryPesquisas.FieldByName('PESSOA_CODIGO').Value;
transportadora := dmDados.QryPesquisas.FieldByName('PESSOA_CODIGO').Value;
edtTransportadora2.Text := dmDados.QryPesquisas.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
end
end;

procedure TfrmCadastroPessoa.edtTransportadoraKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = VK_F2 then
begin
frmPesquisaPessoa := TfrmPesquisaPessoa.Create(Self);
frmPesquisaPessoa.filtro := 1;
frmPesquisaPessoa.ShowModal;
if frmPesquisaPessoa.ModalResult = mrOk then
begin
edtTransportadora.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_CODIGO').Value;
edtTransportadora2.Text := dmDados.cdsPesquisaPessoa.FieldByName('PESSOA_RAZAOSOCIAL').Value;
end;
end;
end;

procedure TfrmCadastroPessoa.limparCampos();
begin
edtRazaoSocial.Text := '';
edtNomeFantasia.Text := '';
edtEmail.Text := '';
edtCEP.Text := '';
edtCidade.Text := '';
edtUF.Text := '';
edtEndereco.Text := '';
edtNumero.Text := '';
edtBairro.Text := '';
edtTelefone.Text := '';
edtCNPJ.Text := '';
edtInscricaoEstadual.Text := '';
cmbTipoFrete.ItemIndex := 0;
edtTransportadora.Text := '';
edtTransportadora2.Text := '';
edtRedespacho.Text := '';
edtRedespacho2.Text := '';
cmbTipoPagamento.ItemIndex := 0;
cmbCondicaoPagamento.ItemIndex := 0;
cmbRepresentante.ItemIndex := 0;
cmbTabelaPrecos.ItemIndex := 0;
cmbTipoCusto.ItemIndex := 0;
chkCliente.Checked := False;
chkFornecedor.Checked := False;
chkTransportador.Checked := False;
chkFuncionario.Checked := False;
chkRepresentante.Checked := False;
memoObservacoes.Text := '';
Label1.Visible := True;
Label2.Visible := True;
Label3.Visible := True;
Label4.Visible := True;
Label5.Visible := True;
Label6.Visible := True;
Label7.Visible := True;
Label8.Visible := True;
Label9.Visible := True;
Label10.Visible := True;
end;

procedure TfrmCadastroPessoa.atualizaSequencia();
begin
dmDados.QrySequencias.Close;
dmDados.QrySequencias.SQL.Clear;
dmDados.QrySequencias.SQL.Add('UPDATE TEC_SEQUENCIAS SET SEQUENCIAS_CODIGO = :ParSequencia ' +
'WHERE SEQUENCIAS_TABELA = ''CAD_PESSOA''');
dmDados.QrySequencias.Params.ParamByName('ParSequencia').Value := sequencia;
dmDados.QrySequencias.ExecSQL();
end;

procedure TfrmCadastroPessoa.gravaVariaveis();
begin
//TIPO DE PESSOA
if cmbTipoPessoa.ItemIndex = 0 then
begin
tipoPessoa := 'J';
end
else
tipoPessoa := 'F';
//SITUAÇÃO DO CADASTRO
if cmbSituacao.ItemIndex = 0 then
begin
situacaoCadastro := 'A';
end
else
situacaoCadastro := 'I';
//CLASSIFICAÇÃO CLIENTE
if chkCliente.Checked = True then
begin
classificacaoCliente := 'S';
end
else
classificacaoCliente := 'N';
//CLASSIFICAÇÃO FORNECEDOR
if chkFornecedor.Checked = True then
begin
classificacaoFornecedor := 'S';
end
else
classificacaoFornecedor := 'N';
//CLASSIFICAÇÃO TRANSPORTADOR
if chkTransportador.Checked = True  then
begin
classificacaoTransportadora := 'S';
end
else
classificacaoTransportadora := 'N';
//CLASSIFICAÇÃO REPRESENTANTE
if chkRepresentante.Checked = True  then
begin
classificacaoRepresentante := 'S';
end
else
classificacaoRepresentante := 'N';
//CLASSIFICAÇÃO FUNCIONÁRIO
if chkFuncionario.Checked = True  then
begin
classificacaoFuncionario := 'S';
end
else
classificacaoFuncionario := 'N';
end;


procedure TfrmCadastroPessoa.verificaCampos();
begin
if (edtRazaoSocial.Text = '') or (edtNomeFantasia.Text = '') or (edtCEP.Text = '') or (edtEndereco.Text = '') or (edtNumero.Text = '') or (edtBairro.Text = '') or (edtTelefone.Text = '') or (edtCNPJ.Text = '') or (edtInscricaoEstadual.Text = '') then
Application.MessageBox('Complete os campos assinalados em vermelho!','Aviso do Sistema',mb_Ok+mb_IconExclamation);
assinalaCampos();
end;

procedure TfrmCadastroPessoa.assinalaCampos();
begin
//SETA QUE NÃO EXISTE NENHUM CAMPO OBRIGATÓRIO SEM PREENCHER
camposObrigatorios := 0;
if edtRazaoSocial.Text = '' then
begin
label10.Visible := True;
camposObrigatorios := 1;
end;
if edtNomeFantasia.Text = '' then
begin
label1.Visible := True;
camposObrigatorios := 1;
end;
if edtCEP.text = '' then
begin
label3.Visible := True;
camposObrigatorios := 1;
end;
if edtEndereco.Text = '' then
begin
label2.Visible := True;
camposObrigatorios := 1;
end;
if edtNumero.Text = '' then
begin
label4.Visible := True;
camposObrigatorios := 1;
end;
if edtBairro.Text = '' then
begin
label5.Visible := True;
camposObrigatorios := 1;
end;
if edtTelefone.Text = '' then
begin
label6.Visible := True;
camposObrigatorios := 1;
end;
if edtCNPJ.Text = '' then
begin
label7.Visible := True;
camposObrigatorios := 1;
end;
if edtInscricaoEstadual.Text = '' then
begin
label8.Visible := True;
camposObrigatorios := 1;
end;
//FIM
end;

procedure TfrmCadastroPessoa.localizaSequencia();
begin
dmDados.QrySequencias.Close;
dmDados.QrySequencias.SQL.Clear;
dmDados.QrySequencias.SQL.Add('SELECT SEQUENCIAS_CODIGO FROM TEC_SEQUENCIAS WHERE SEQUENCIAS_TABELA = ''CAD_PESSOA''');
dmDados.QrySequencias.Open;

sequencia := dmDados.QrySequencias.FieldByName('SEQUENCIAS_CODIGO').Value +1;
end;

end.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
swbk
Novato
Novato


Registrado: Terça-Feira, 6 de Janeiro de 2015
Mensagens: 27

MensagemEnviada: Qua Jan 21, 2015 10:19 am    Assunto: Responder com Citação

Troque de metódo, FormKeyDown para FormKeyPress e ao invés de chamar o
Código:
btFechar.Click;
coloque
Código:
Close;


No evento do formulário OnClose coloque isso:

Código:
procedure TfrmCadastroPessoa.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;


No FormKeyPress adicione estes controles:

Código:
if (ActiveControl is TDBGrid) then Key := #0;
     if Key = #13 then
        if not (ActiveControl is TDBMemo) then
        begin
          Key := #0;
          PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
        end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB