Claro que sí, pero para hacerlo desacoplado y que puedas usarlo en otras situacione s(osea no ligarlo al CheckBox por aquello de que hoy es checkbox mañana es primavera en el corte inglés
(vamos que puede cambiar))
Supon que el formulario a crear es:
TMiMaravillosoForm
Haz, por ejemplo:
Variable o Propiedad o Función (pública) por la que le pases un string a almacenar (por ejemplo, el nombre del checkbox).
Ahora, el truco está en saber que el Sender de un evento es el objeto sobre el cual se realiza la acción (click, drag, etc...)
Llama a este form (supongamos que estamos en la función que crea el Form, por ejemplo, en el OnCheck, que tiene un parámetro Sender).
MiCheckBoxCheck(Sender: TObject);
begin
// un poner
with TMiMaravillosoForm.Create(Self)
try
Caption := TCheckBox(Sender).Text;
MiPropiedadMagica := TCheckBox(Sender).Name;
ShowModal;
finally
free;
end;
end;
Obviemente deberías declarar en TMiMaravillosoForm algo tal que:
TMiMaravillosoForm = class(TForm)
private
// solo si caso b
FNombreAGuardar: string;
public
// a
procedure AsignaNombreAGuardar(const Nombre: string);
// b
property NombreAGuardar: string read FNombreAGuardar write FNombreAGuardar;
// c
NombreAGuardar: string; // antes que esto, mejor b.
end;
Como verás, he usado b, pero con otro nombre...