Código SQL
[-]SQL := 'SELECT Nombre, Departamento FROM dbo.Empleados WHERE Codigo=' + EdNCodigo.Text + ' and Activo = 1';
Código:
Query1.SQL.Text := SQL;
Query1.Active := True;
EdSNombre.text := Query1.FieldByName( 'Nombre' ).Value;
Hacé referencia directamente por el nombre del campo y no te preocupes si te trae en el primer, segundo o enésimo lugar.
Seguramente es algo que tenés mal en los campos del query, borralo y creá uno nuevo. La sentencia SQL está bien, pero los campos del Query seguramente no.
Hacé doble click sobre el query y te abre una ventana de propiedades con los campos, click derecho y le das a la opcion Select All, Delete y Add all fields despues. Seguramente acá te quedará bien.
Yo te aconsejo que cambies la propiedad SQL del Query en diseño, fijate que estará mal.
Saludos y espero serte util.