Un detallito... Tu código no es simplón, es que testea una serie de condiciones
y actua en todos los casos posibles (con un MessageBox, pero hace algo), por eso quizás no he entendido tu objetivo principal.
Pensando de forma global (abstracta que dirían algunos) tu último ejemplo está bien, ya que se trata de saber si se puede conectar o no con MySql.
Si quieres obtener información detallada de por qué no se ha podido conectar, tendrás que mirar los tipos de excepciones que lanza MySql y detectar
el código de cada uno, a partir de ahí personalizar los mensajes.
Si quieres detalles, usa
on except y el tipo de excepción de MySql. Lo mismo es aplicable para el trabajo de excepciones en general, siempre puedes usar un código general (para todos los tipos de excepciones) y otro más concreto para excepciones con un código de error.
Lo más rápido para ver el tipo de error producido es:
Código Delphi
[-]
try
MySQL50Connection1.Open; except
on e:exception do
ShowMessage(e.ClassName); end;
A ver si un compañero que trabaje con MySql puede ponerte un código de ejemplo.
Saludos