Problema ao fechar aplicação
Boa tarde pessoal, tudo certo?
Tenho um problema que está acontecendo a um certo tempo que eu julgo ser muito estranho.
Tenho uma aplicação que estou criando que está funcionando perfeitamente, mas, tenho um problema na hora que eu saio do meu programa, pois ele fecha todos os forms corretamente, mas ele continua com o icone do programa na barra iniciar e se eu entrar no Gerenciador de Tarefas, lá mostra que o meu programa não está funcionando corretamente, então sou obrigado a fechá-lo manualmente. O mais estranho é quando eu abro o meu projeto dentro do próprio delphi, até o delphi tem este problema e sou obrigado a fechá-lo através do gerenciador de tarefas. Já testei com outros projetos esse problema não acontece. Alguem sabe o que poderia ser? Testei meu programa no WIndows 7 e Windows XP e em todos aconteceu este problema. Estou utilizando Delphi 7, Firebird 2.0.
O que eu acredito que possa estar cirando este problema é que eu estou trabalhando com um form Modelo que eu utilizo em muitos outros forms(exceto no principal). Vou postar os códigos do Form Principal e Form Modelo. Quem puder me ajudar eu agradeço.
FORM Principal
unit UPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, Menus, Grids, StdCtrls, UDmPrincipal, UCadastroClientes,
DB, DBClient, Provider, RpCon, RpConDS, RpBase, RpSystem, RpDefine,
RpRave, RpRenderText, RpRenderHTML, RpRender, RpRenderPDF, URelatorioOrcamento,
UCadastroOrcamento;
type
TFrmPrncipal = class(TForm)
MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Clientes1: TMenuItem;
Pagamentos1: TMenuItem;
Visualizao1: TMenuItem;
Clientes2: TMenuItem;
Pagamentos2: TMenuItem;
Relatrios1: TMenuItem;
Sair1: TMenuItem;
GroupBox1: TGroupBox;
SgConsulta: TStringGrid;
Contas1: TMenuItem;
Contas2: TMenuItem;
Image1: TImage;
DataSetProvider1: TDataSetProvider;
ClientDataSet1: TClientDataSet;
RvProjetoClientes: TRvProject;
RvSistemaClientes: TRvSystem;
RvDataSetConnection1: TRvDataSetConnection;
BtnRelatorioClientes: TMenuItem;
RvRenderPDF1: TRvRenderPDF;
RvRenderHTML1: TRvRenderHTML;
RvRenderText1: TRvRenderText;
DataSetProvider2: TDataSetProvider;
ClientDataSet2: TClientDataSet;
RvProjetoPagamentos: TRvProject;
RvSistemaPagamentos: TRvSystem;
RvDataSetConnection2: TRvDataSetConnection;
BtnRelatorioPagamentos: TMenuItem;
ClientDataSet3: TClientDataSet;
DataSetProvider3: TDataSetProvider;
RvProjetoContas: TRvProject;
RvSistemaContas: TRvSystem;
RvDataSetConnection3: TRvDataSetConnection;
BtnRelatorioContas: TMenuItem;
BtnRelatorioOrcamento: TMenuItem;
BtnCadastroorcamento: TMenuItem;
RvDataSetConnection4: TRvDataSetConnection;
RvSistemaOrcamentos: TRvSystem;
RvOrcamento: TRvProject;
ClientDataSet4: TClientDataSet;
DataSetProvider4: TDataSetProvider;
BackupBancodeDados1: TMenuItem;
SaveDialog1: TSaveDialog;
procedure FormShow(Sender: TObject);
procedure Sair1Click(Sender: TObject);
procedure Clientes1Click(Sender: TObject);
procedure Pagamentos1Click(Sender: TObject);
procedure Contas1Click(Sender: TObject);
procedure Clientes2Click(Sender: TObject);
procedure Contas2Click(Sender: TObject);
procedure Pagamentos2Click(Sender: TObject);
procedure BtnRelatorioClientesClick(Sender: TObject);
procedure BtnRelatorioPagamentosClick(Sender: TObject);
procedure BtnRelatorioContasClick(Sender: TObject);
procedure BtnRelatorioOrcamentoClick(Sender: TObject);
procedure BtnCadastroorcamentoClick(Sender: TObject);
procedure BackupBancodeDados1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmPrncipal: TFrmPrncipal;
implementation
uses ULogin, UCadastroPagamentos, UCadastroContas, UConsultaClientes, UConsultaContas, UConsultaPagamentos;
{$R *.dfm}
procedure TFrmPrncipal.FormShow(Sender: TObject);
begin
SgConsulta.Cells[0,0] := 'Status Atual';
SgConsulta.Cells[1,0] := 'Cliente';
SgConsulta.Cells[2,0] := 'Nota Fiscal';
SgConsulta.Cells[3,0] := 'Data';
SgConsulta.Cells[4,0] := 'Forma de Pagamento';
SgConsulta.Cells[5,0] := 'Valor (R$)';
SgConsulta.Cells[6,0] := 'Vencimento';
SgConsulta.Cells[7,0] := 'Ordem de Compra';
SgConsulta.cells[0,1] := '';
with DM.SQLQuery1 do
begin
SQL.Clear;
SQL.Add('SELECT * FROM PAGAMENTOS ORDER BY COD_PAGAMENTO DESC;');
Open;
While not EOF do
begin
IF SgConsulta.Cells[0,1] <> '' then
SgConsulta.RowCount := SgConsulta.RowCount + 1;
SgConsulta.Cells[0,SgConsulta.RowCount-1] := FieldByName ('STATUS_PAGAMENTO').AsString;
SgConsulta.Cells[1,SgConsulta.RowCount-1] := FieldByName ('CLIENTE_PAGAMENTO').AsString;
SgConsulta.Cells[2,SgConsulta.RowCount-1] := FieldByName ('NF_PAGAMENTO').AsString;
SgConsulta.Cells[3,SgConsulta.RowCount-1] := FieldByName ('DATA_PAGAMENTO').AsString;
SgConsulta.Cells[4,SgConsulta.RowCount-1] := FieldByName ('FORMA_PAGAMENTO').AsString;
SgConsulta.Cells[5,SgConsulta.RowCount-1] := FieldByName('VALOR_PAGAMENTO').AsString;
SgConsulta.Cells[6,SgConsulta.RowCount-1] := FieldByName ('VENCIMENTO_PAGAMENTO').AsString;
SgConsulta.Cells[7,SgConsulta.RowCount-1] := FieldByName ('OC_PAGAMENTO').AsString;
Next;
End;
end;
end;
procedure TFrmPrncipal.Sair1Click(Sender: TObject);begin
Close;
end;
procedure TFrmPrncipal.Clientes1Click(Sender: TObject);var
FrmCadastroClientes:TFrmCadastroClientes;
begin
FrmCadastroClientes:=TFrmCadastroClientes.Create(Self);
Try
FrmCadastroClientes.ShowModal;
Finally
FrmCadastroClientes.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.Pagamentos1Click(Sender: TObject);var
FrmCadastroPagamentos:TFrmCadastroPagamentos;
begin
FrmCadastroPagamentos:=TFrmCadastroPagamentos.Create(Self);
Try
FrmCadastroPagamentos.ShowModal;
Finally
FrmCadastroPagamentos.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.Contas1Click(Sender: TObject);var
FrmCadastroContas:TFrmCadastroContas;
begin
FrmCadastroContas := TFrmCadastroContas.Create(Self);
Try
FrmCadastroContas.ShowModal;
Finally
FrmCadastroContas.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.Clientes2Click(Sender: TObject);var
FrmCOnsultaClientes:TFrmCOnsultaClientes;
begin
FrmCOnsultaClientes := TFrmCOnsultaClientes.Create(Self);
Try
FrmCOnsultaClientes.ShowModal;
Finally
FrmCOnsultaClientes.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.Contas2Click(Sender: TObject);var
FrmCOnsultaContas:TFrmCOnsultaContas;
begin
FrmCOnsultaContas := TFrmCOnsultaContas.Create(Self);
Try
FrmCOnsultaContas.ShowModal;
Finally
FrmCOnsultaContas.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.Pagamentos2Click(Sender: TObject);var
FrmConsultaPagamentos:TFrmConsultaPagamentos;
begin
FrmConsultaPagamentos := TFrmConsultaPagamentos.Create(Self);
Try
FrmConsultaPagamentos.ShowModal;
Finally
FrmConsultaPagamentos.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.BtnRelatorioClientesClick(Sender: TObject);begin
RvProjetoClientes.Execute;
end;
procedure TFrmPrncipal.BtnRelatorioPagamentosClick(Sender: TObject);begin
RvProjetoPagamentos.Execute;
end;
procedure TFrmPrncipal.BtnRelatorioContasClick(Sender: TObject);begin
RvProjetoContas.Execute;
end;
procedure TFrmPrncipal.BtnRelatorioOrcamentoClick(Sender: TObject);begin
RvOrcamento.Execute;
end;
procedure TFrmPrncipal.BtnCadastroorcamentoClick(Sender: TObject);var
FrmCadastroorcamentos:TFrmCadastroorcamentos;
begin
FrmCadastroorcamentos := TFrmCadastroorcamentos.Create(Self);
Try
FrmCadastroorcamentos.ShowModal;
Finally
FrmCadastroorcamentos.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmPrncipal.BackupBancodeDados1Click(Sender: TObject);var
Origem, Destino, Arquivo: string;
begin
if MESSAGEBOX(Application.Handle, 'Deseja Fazer o Backup do Banco de Dados?', 'Por favor, confirme:', MB_ICONQUESTION + MB_YESNOCANCEL + MB_DEFBUTTON2) = ID_YES then
Origem := 'C:\Smart Business\db\SMART.FDB';
SaveDialog1.FileName := Arquivo;
SaveDialog1.InitialDir := Origem;
SaveDialog1.Filter := '.fdb';
if SaveDialog1.Execute then
begin
Arquivo := SaveDialog1.FileName+SaveDialog1.Filter;
if not CopyFile(PChar(Origem), PChar(SaveDialog1.FileName+'.FDB'), false) then
ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino)
Else
ShowMessage('Backup efetuado com sucesso.');
end;
end;
end.
Form Modelo
unit UMODELO;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, Menus, Grids, StdCtrls, UDmPrincipal, RpRave,
RpCon, RpConDS, RpDefine, RpBase, RpSystem, RpRenderText, RpRenderHTML,
RpRender, RpRenderPDF, DB, DBClient, Provider;
type
TFrmModelo = class(TForm)
Image1: TImage;
MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Clientes1: TMenuItem;
Pagamentos1: TMenuItem;
Visualizao1: TMenuItem;
Clientes2: TMenuItem;
Pagamentos2: TMenuItem;
Relatrios1: TMenuItem;
Sair1: TMenuItem;
Contas1: TMenuItem;
Contas2: TMenuItem;
RvSistemaClientes: TRvSystem;
RvDataSetConnection1: TRvDataSetConnection;
RvProjetoClientes: TRvProject;
BtnRelatorioClientes: TMenuItem;
RvRenderPDF1: TRvRenderPDF;
RvRenderHTML1: TRvRenderHTML;
RvRenderText1: TRvRenderText;
DataSetProvider1: TDataSetProvider;
ClientDataSet1: TClientDataSet;
DataSetProvider2: TDataSetProvider;
ClientDataSet2: TClientDataSet;
RvProjetoPagamentos: TRvProject;
RvSistemaPagamentos: TRvSystem;
RvDataSetConnection2: TRvDataSetConnection;
BtnRelatorioPagamentos: TMenuItem;
DataSetProvider3: TDataSetProvider;
ClientDataSet3: TClientDataSet;
RvProjetoContas: TRvProject;
RvSistemaContas: TRvSystem;
RvDataSetConnection3: TRvDataSetConnection;
BtnRelatorioContas: TMenuItem;
RvDataSetConnection4: TRvDataSetConnection;
RvSistemaOrcamentos: TRvSystem;
Rvorcamento: TRvProject;
ClientDataSet4: TClientDataSet;
DataSetProvider4: TDataSetProvider;
CriarRelatriodeOramento1: TMenuItem;
GerarBackupBancodeDados1: TMenuItem;
SaveDialog1: TSaveDialog;
Oramentos1: TMenuItem;
procedure Sair1Click(Sender: TObject);
procedure Clientes1Click(Sender: TObject);
procedure Pagamentos1Click(Sender: TObject);
procedure Contas1Click(Sender: TObject);
procedure Clientes2Click(Sender: TObject);
procedure Contas2Click(Sender: TObject);
procedure Pagamentos2Click(Sender: TObject);
procedure BtnRelatorioClientesClick(Sender: TObject);
procedure BtnRelatorioPagamentosClick(Sender: TObject);
procedure BtnRelatorioContasClick(Sender: TObject);
procedure CriarRelatriodeOramento1Click(Sender: TObject);
procedure GerarBackupBancodeDados1Click(Sender: TObject);
procedure Oramentos1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmModelo: TFrmModelo;
implementation
uses UCadastroClientes, UPrincipal, UCadastroPagamentos, UCadastroContas, UConsultaClientes, UConsultaContas, UConsultaPagamentos, UCadastroOrcamento;
{$R *.dfm}
procedure TFrmModelo.Sair1Click(Sender: TObject);
begin
Halt(2);
Application.Terminate;
end;
procedure TFrmModelo.Clientes1Click(Sender: TObject);var
FrmCadastroClientes:TFrmCadastroClientes;
begin
FrmCadastroClientes:=TFrmCadastroClientes.Create(Self);
Try
FrmCadastroClientes.ShowModal;
Finally
FrmCadastroClientes.Free;
end;
end;
procedure TFrmModelo.Pagamentos1Click(Sender: TObject);var
FrmCadastroPagamentos:TFrmCadastroPagamentos;
begin
FrmCadastroPagamentos:=TFrmCadastroPagamentos.Create(Self);
Try
FrmCadastroPagamentos.ShowModal;
Finally
FrmCadastroPagamentos.Free;
end;
end;
procedure TFrmModelo.Contas1Click(Sender: TObject);var
FrmCadastroContas:TFrmCadastroContas;
begin
FrmCadastroContas := TFrmCadastroContas.Create(Self);
Try
FrmCadastroContas.ShowModal;
Finally
FrmCadastroContas.Free;
end;
end;
procedure TFrmModelo.Clientes2Click(Sender: TObject);var
FrmCOnsultaClientes:TFrmCOnsultaClientes;
begin
FrmCOnsultaClientes := TFrmCOnsultaClientes.Create(Self);
Try
FrmCOnsultaClientes.ShowModal;
Finally
FrmCOnsultaClientes.Free;
end;
end;
procedure TFrmModelo.Contas2Click(Sender: TObject);var
FrmCOnsultaContas:TFrmCOnsultaContas;
begin
FrmCOnsultaContas := TFrmCOnsultaContas.Create(Self);
Try
FrmCOnsultaContas.ShowModal;
Finally
FrmCOnsultaContas.Free;
end;
end;
procedure TFrmModelo.Pagamentos2Click(Sender: TObject);var
FrmConsultaPagamentos:TFrmConsultaPagamentos;
begin
FrmConsultaPagamentos := TFrmConsultaPagamentos.Create(Self);
Try
FrmConsultaPagamentos.ShowModal;
Finally
FrmConsultaPagamentos.Free;
end;
end;
procedure TFrmModelo.BtnRelatorioClientesClick(Sender: TObject);begin
RvProjetoClientes.Execute;
end;
procedure TFrmModelo.BtnRelatorioPagamentosClick(Sender: TObject);begin
RvProjetoPagamentos.Execute;
end;
procedure TFrmModelo.BtnRelatorioContasClick(Sender: TObject);begin
RvProjetoContas.Execute;
end;
procedure TFrmModelo.CriarRelatriodeOramento1Click(Sender: TObject);begin
Rvorcamento.Execute;
end;
procedure TFrmModelo.GerarBackupBancodeDados1Click(Sender: TObject);var
Origem, Destino, Arquivo: string;
begin
if MESSAGEBOX(Application.Handle, 'Deseja Fazer o Backup do Banco de Dados?', 'Por favor, confirme:', MB_ICONQUESTION + MB_YESNOCANCEL + MB_DEFBUTTON2) = ID_YES then
Origem := 'C:\Smart Business\db\SMART.FDB';
SaveDialog1.FileName := Arquivo;
SaveDialog1.InitialDir := Origem;
SaveDialog1.Filter := '.fdb';
if SaveDialog1.Execute then
begin
Arquivo := SaveDialog1.FileName+SaveDialog1.Filter;
if not CopyFile(PChar(Origem), PChar(SaveDialog1.FileName+'.FDB'), false) then
ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino)
Else
ShowMessage('Backup efetuado com sucesso.');
end;
end;
procedure TFrmModelo.Oramentos1Click(Sender: TObject);var
FrmCadastroorcamentos:TFrmCadastroorcamentos;
begin
FrmCadastroorcamentos := TFrmCadastroorcamentos.Create(Self);
Try
FrmCadastroorcamentos.ShowModal;
Finally
FrmCadastroorcamentos.Free;
end;
FrmPrncipal.Close;
end;
procedure TFrmModelo.FormClose(Sender: TObject; var Action: TCloseAction);begin
Action := CaFree;
end;
end.
Discussão (10)
Carregando comentários...