Yo lo hago utilizando una funcion de clase, mas o menos el codigo es asi...
Código Delphi
[-]
Unit FormSelLote
...
class function TfrmSelLote.GetLote(AClient, ADoc: Integer): integer;
var
...
AFrmSelLote: TfrmSelLote;
begin
....
try
AfrmSelLote := TFrmSelLote.Create(Application);
if AfrmSelLote.ShowModal = mrOk then
result := AfrmSelLote.fLote
else
result := -1;
finally
AfrmSelLote.Free;
end;
end;
// la llamada desde otro modulo seria asi
unit OtraUnidad
.....
AselLote := TfrmSelLote.getLote(ACliente, ADoc);
espero que sirva sl2