Witam,
mam następujący problem, korzystam z ZEOSów i chciałbym obsłużyć wyjątki, oto kod:

unit Unit12;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, INIFiles, ComCtrls, Buttons;

type
  TLogowanie_do_MySQL = class(TForm)
    pass: TLabeledEdit;
    login: TLabeledEdit;
    Label1: TLabel;
    okbutton: TBitBtn;
    StatusBar1: TStatusBar;
    procedure okbuttonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure MyAppException(Sender: TObject; E : Exception);
  public
    { Public declarations }
    baza:string;
  end;

    EZSQLException = class(Exception);
    EERROR_ACCESS_DENIED=ezsqlexception;
    EERROR_ACCESS_DENIED_FOR_USER=class(Exception);
    ESQL_ERROR=class(Exception);

var
  Logowanie_do_MySQL: TLogowanie_do_MySQL;

implementation

uses Unit1;

{$R *.dfm}

procedure TLogowanie_do_MySQL.MyAppException(Sender: TObject; E: Exception);
begin
{ wyświetlenie komunikatów wyjątków }

//  Application.ShowException(E);
  statusbar1.SimpleText:=E.Message;

  if E is EERROR_ACCESS_DENIED then
  begin
   ShowMessage('zle dane do logowania');
  end;
end;

procedure TLogowanie_do_MySQL.FormCreate(Sender: TObject);
begin
 Application.OnException := MyAppException;
end;

procedure TLogowanie_do_MySQL.okbuttonClick(Sender: TObject);
var
zapytanie:String;
INI : TINIFile;
host, login, passwd:string;
logged:boolean;
x:Integer;
begin
logged:=true;
    INI := TINIFile.Create(ExtractFilePath(Application.ExeName) + 'test.ini');
    try
      host := INI.ReadString('Baza', 'Host','');
      baza := INI.ReadString('Baza', 'Baza','');
    finally
      INI.Free;
end;
if ((host='') or (baza='')) then showmessage('blad danych') else
  with test.ZConnection1 do
    begin
      try
        Connected:= False;
        LoginPrompt := false;
        HostName := host;
        user:=Logowanie_do_MySQL.login.Text;
        Password:=Logowanie_do_MySQL.pass.Text;
        Connected:=true;
        test.polaczony:=true;
      except
      on  EERROR_ACCESS_DENIED do
  begin
   ShowMessage('zle dane do logowania');
      test.polaczony:=false;
      end;
 end;
 end;
begin
  zapytanie:='';
  zapytanie:='CREATE DATABASE ' +baza+';';
  test.ZQuery3.SQL.Clear;
  test.ZQuery3.SQL.Add(zapytanie);

  test.ZQuery3.ExecSQL;
  test.ZConnection1.Database:=baza;
  ShowMessage('Utworzono baze danych');
  Logowanie_do_MySQL.Visible:=false;
  test.okbuttonClick(sender);
end;

end;

problem w tym że wyjątki nie są przechwytywane, albo ja nie umiem ich poprawnie przechwycić?
Chodzi o sytuację, gdy użykownik poda niepoprawne dane do logowania na serwer MySQL, co prawda program wyświetla (w moim przypadku na Statusbar) komunikat "Access denided"
user image
ale nie wyświetla Message - "'zle dane do logowania".
Dlateog proszę was o pomoc. Może ktoś już się spotkał z po podobnym problemem?