Tenes dos alternativas:
A: Mandas por parametro un TStrings al cual se le vas a hacer el .Add(nombre empleado)
Código Delphi
[-]
Unit UEmpleados;
interface
uses System, Classes,
procedure CargarEmpleados(ListaEmpleados: TStrings);
implementation
procedure CargarEmpleados(ListaEmpleados: TStrings);
begin
if not(Assigned(ListaEmpleados) then
ListaEmpleados := TStringList.Create;
with TZQuery.Create(NIL) do
begin
Connection := < Tu conexion a la BD acá >
SQL.Clear;
SQL.Add('Select * From Empleados');
Open;
ListaEmpleados.Items.Clear;
First;
while not Eof do
begin
ListaEmpleados.Items.Add(FieldByName('NombreEmpleado').AsString);
Next;
end;
end;
end;
B: En ves de un procedure tenes una function la cual te retorna directamente la lista
Código Delphi
[-]
Unit UEmpleados;
interface
uses System, Classes,
function CargarEmpleados: TStrings;
implementation
function CargarEmpleados: TStrings;
begin
result := TStringList.Create;
with TZQuery.Create(NIL) do
begin
Connection := < Tu conexion a la BD acá >
SQL.Clear;
SQL.Add('Select * From Empleados');
Open;
result.Items.Clear;
First;
while not Eof do
begin
result.Items.Add(FieldByName('NombreEmpleado').AsString);
Next;
end;
end;
end;
No use nunca los componentes ZEOS, igual me los imagino muy similares a los ADO.
El tema del TZQuery que creo en tiempo de ejecucion es porque el que estabas usando vos no lo conoce la unit UEmpleados. Poner en el uses el principal para poder acceder a ese componente query me parece muy mala idea, si tenes que usar el mismo procedimiento en otro form y por casualidad ese form no existe no vas a poder usar el ZQuery1. El connection para asignarle al query, es el TZConnection creo para ZEOS, que tendras en un DataModule, obviamente tenes que incluir la unit del DataModule en el uses
Saludos!
EDITO: Se me adelanto el compañero nelson