2010-07-23 10 views
5

Eseguiamo un'applicazione DataSnap Delphi 2009 su Windows 2003 Server. DataSnap Client e Server si trovano sullo stesso computer, utilizzando DCOM su Borland Socketserver. Il client esegue un processo batch in background.Come posso sopprimere le finestre di dialogo dei messaggi di errore di Delphi DataSnap?

A volte, scopriamo che il client non è in grado di connettersi all'applicazione server e visualizza una finestra di messaggio sul desktop del server che indica, ad esempio, "Impossibile connettersi al server. Impossibile trovare il percorso di rete." o "Objectexporter non trovato."

nostro Delphi codice client non utilizza una finestra di messaggio per mostrare gli errori o eccezioni, invece usiamo try ... except .. finalmente ... fine e la registrazione per gestire la connessione errori, quindi credo che il dialogo è stato creato da un Metodo DataSnap. C'è un modo per sopprimere questa finestra di dialogo modale?

Aggiornamento: tutte le eccezioni vengono gestite in routine di livello più basso, il ciclo principale si prende cura di scollegare e ricollegare quando viene sollevata un'eccezione (gestita o gestita):

while True do 
    begin 
    Connect; 
    while True do 
    begin 
     try 
     DoMyWork; 
     except 
     Break; 
     end; 
    end; 
    Disconnect; 
    end; 

risposta

3

soluzione 1) forse un hook globale l'application.onexception grado di gestire il problema

http://www.chami.com/tips/delphi/011497D.html

soluzione 2)

utilizza EurekaLog o MadExcept per scoprire da dove l'applicazione ha generato quell'errore e gestire l'errore.

soluzione 3)

un gancio globale negli finestre di dialogo del messaggio dell'applicazione, un esempio di gancio è muggito

http://delphi.about.com/gi/o.htm?zi=1/XJ&zTi=1&sdn=delphi&cdn=compute&tm=43&f=22&su=p284.9.336.ip_p504.1.336.ip_&tt=2&bt=1&bts=1&zu=http%3A//www.delphicorner.f9.co.uk/articles/apps7.htm

si esegue una query di tutti i messaggi dell'applicazione, e quando si cattura quella finestra poi si elabora il messaggio non l'applicazione. perché ora non ho il tempo in cui non so esattamente quale sia il wmessage sollevato da messagedlg.

speranza che ha aiutato.

migliori saluti,

+0

l'applicazione utilizza MadExcept e la registrazione eccezione, sembra che non fa eccezione viene generata quando viene visualizzata la finestra messaggio di errore – mjn

Problemi correlati