Si está más claro y de hecho puedo sugerirte que cambies el enfoque. ¿Qué pasa si en el futuro necesitas seleccionar un proveedor para otros formularios? Sería muy engorroso añadir un botón "Seleccionar" en el listado de proveedores por cada formulario que lo necesite.
Piénsalo de esta forma: escoger un proveedor es, en cierto sentido, similar, por ejemplo, a escoger un archivo con el cuadro de diálogo de "abrir archivo"
Windows. El cuadro de diálogo no tiene un botón por cada aplicación desde la cual se pueda escoger un archivo. Dicho cuadro no tiene ningún conocimiento de las otras aplicaciones, únicamente se limita a devolver a la aplicación que llama el nombre del archivo seleccionado por el usuario.
A tu listado de proveedores puedes añadirle alguna propiedad que indique el proveedor selecionado. La implementación exacta dependerá de la manera en que estés manejando tus datos, pero, por ejemplo, podría ser una propiedad Integer con el ID del proveedor (suponiendo que la llave primaria de tu tabla de proveedores sea un entero):
Código Delphi
[-]type TListaProveedores = class(TForm) private FProveedorId: Integer; public property ProveedorId: Integer read FProveedorId write FProveedorId; end;
Cuando el usuario oprima el (único) botón "Seleccionar" de la lista de proveedores, tú asignas a FProveedorID el ID del proveedor seleccionado. El formulario que mandó llamar la lista podrá leer dicho ID. Esta podría ser una forma de llamar la lista:
Código Delphi
[-]if ListaProveedores.ShowModal = mrOk then begin ShowMessage('El ID del proveedor es: ' + IntToStr(ListaProveedores.ProveedorId)); end;
// Saludos