Hola...
Deberías poder hacer algo como esto:
Código Delphi
[-]
if not Assigned(DBGrid1.DataSource) and not Assigned(DBGrid1.DataSource.DataSet) then
ShowMessage('No tiene asignado un DataSet')
else
if DBGrid1.DataSource.DataSet.ClassType is TTable then
ShowMessage('El DataSet es un TTable')
else
if DBGrid1.DataSource.DataSet.ClassType is TQuery then
ShowMessage('El DataSet es un TQuery')
Saludos...