Olá pessoal, eu estou fazendo meu TCC em delphi, minha aplicação da um som de 
erro quando é fechada, vou colocar o código gostario muito que alguem me 
ajudace. No final vou desponibilizar a aplicação para a nossa comunidade 
delphi-br.

Grato,
Ricardo Rocha

unit uLogin;

interface

uses

type

  private
    { Private declarations }
    Iniconf: TIniFile;
  public
    { Public declarations }
  end;

var
  frmLogin: TfrmLogin;

implementation

uses uDMPrincipal, uPrincipal;

{$R *.dfm}
{
  Está procedure é responsável pela verificação do usúario, quando ele clicar em
  login, a procedure verifica no banco de dados se existe um usuário com este
  nome e senha
}
procedure TfrmLogin.BitBtnLoginClick(Sender: TObject);
begin
  if JvValidatorsUsuario.Validate then
  begin
      if DMPrincipal.ValidaUsuario(EditLogin.Text, EditSenha.Text) then
      begin
        {Se usuário válido}
        try
            ShowMessage('Usuário aceito com sucesso');
            Application.CreateForm(TfrmPrincipal, frmPrincipal);
            frmPrincipal.ShowModal;
            Application.Terminate;
            FreeAndNil(frmPrincipal);
        finally
          frmPrincipal.Free;
        end;
      end
  else
  {Usuáiro Inválido}
    raise Exception.Create('Usuário ou Senha inválidos');
  end;
end;

{
  Caso o usuário queira cacelar o login no programa está procedure termina a
  fecha o formulário de login
}
procedure TfrmLogin.BitBtnCancelarClick(Sender: TObject);
begin
    Application.Terminate;
end;

{

}
procedure TfrmLogin.FormCreate(Sender: TObject);
begin
    Iniconf := TIniFile.Create('F:\SIS\config\Config_Banco.ini');
    DMPrincipal.MDOConexao.Close;
    DMPrincipal.MDOConexao.DatabaseName := 
Iniconf.ReadString('Banco_Dados','Path','');
    DMPrincipal.MDOConexao.Open;
end;

procedure TfrmLogin.BuscarBandodeDados1Click(Sender: TObject);
begin
    if OpenDialogBancoDados.Execute then
    begin
        DMPrincipal.MDOConexao.Close;
DMPrincipal.MDOConexao.DatabaseName := OpenDialogBancoDados.FileName;
Iniconf.WriteString('Banco_Dados', 'Path', DMPrincipal.MDOConexao.DatabaseName);
        DMPrincipal.MDOQueryValidaUsuario.Open;
        DMPrincipal.MDOConexao.Open;
    end;
end;

end.



{
  Software: Sistema de Automação Comercial
  Autor: Ricardo Messis da Silva Rocha
  Orientador: Eduardo Ferroni
  Prof. Iliana

  Formulário principal do programa
}


unit uPrincipal;

interface

uses

type

  private
    { Private declarations }
  public
    { Public declarations }
    Iniconfiskin: TIniFile;
  end;

var
  frmPrincipal: TfrmPrincipal;

implementation

uses uLogin, uDMPrincipal, uSkin, uCadUser;

{$R *.dfm}
{
  Procedure responsável para colocar a hora, data e nome de usuário logado no
  StatusBarPrincipal
}
procedure TfrmPrincipal.TimerHaraDataTimer(Sender: TObject);
begin
    StatusBarPrincipal.Panels[3].Text:= 'Hora:'+' '+TimeToStr(Time)+'   
'+'Data:'+' '+DateToStr(Date);
    StatusBarPrincipal.Panels[1].Text:= 'Usuário:'+' 
'+DMPrincipal.MDOQueryValidaUsuario.Params[0].AsString;
end;

{
  Está procedure libera o formuário login da memoria assim que o login é feito 
e o formulário
  principal é carregado
}
procedure TfrmPrincipal.FormCreate(Sender: TObject);
begin
    FreeAndNil(frmLogin);
    Iniconfiskin := TIniFile.Create('F:\SIS\config\Config_Layout.ini');
    skinPricipal.SkinFile := Iniconfiskin.ReadString('Layout','Path','');
    skinPricipal.Active := True;
end;

procedure TfrmPrincipal.mSkinClick(Sender: TObject);
begin
    if frmLayout = NIL then
    begin
        frmLayout := TfrmLayout.Create(self);
        frmLayout.ShowModal;
        FreeAndNil(frmLayout);
    end;
end;

procedure TfrmPrincipal.mUsuarioClick(Sender: TObject);
begin
    if frmCadUser = NIL then
    begin
        frmCadUser := TfrmCadUser.Create(self);
        frmCadUser.ShowModal;
        FreeAndNil(frmCadUser);
    end;
end;

procedure TfrmPrincipal.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    Action := caFree;
end;


unit uSkin;

interface

uses
ShlObj;

type

  private
    { Private declarations }
  public
    { Public declarations }
    Iniconf: TIniFile;
  end;

var
  frmLayout: TfrmLayout;

implementation

uses uPrincipal;
{$R *.dfm}


procedure TfrmLayout.BitBtnProcurarSkinClick(Sender: TObject);
begin
    if OpenDialogSkin.Execute then
        frmPrincipal.Iniconfiskin.WriteString('Layout','Path', 
OpenDialogSkin.FileName);
end;

procedure TfrmLayout.BitBtnAtivarSkinClick(Sender: TObject);
begin
    frmPrincipal.skinPricipal.SkinFile := 
frmPrincipal.Iniconfiskin.ReadString('Layout','Path','');
    frmPrincipal.skinPricipal.Active := True;
    frmPrincipal.skinPricipal.SkinAllForms := True;
    frmLayout.SetFocus; 
end;

end.


Responder a