Para que la asignación de la segunda sentencia que presentás sea válida, la primera debiera tener un constructor y no un método cualquiera. Por ejemplo:
Código Delphi
[-]
type
TFor = class(TForm)
...
public
constructor Create(AOwner: TComponent; Lista: TList);
...
procedure TMainForm.Button10Click(Sender: TObject);
begin
For := TFor.Create(Self, Lista);
end;
Esto sería perfectamente válido, solamente tener cuidado de en el constructor de la clase debe llamarse a algún constructor de la clase padre, para que la creación e inicialización de, en este caso, la forma se realice correctamente.
También tener en cuenta que el constructor create declarado en este caso no sustituye al constructor create de la clase TForm, aun cuando tenga el mismo nombre, por lo que por ejemplo, una llamada a Application.CreateForm, seguirá usando el constructor create de TForm y no el create de TFor.
Hasta luego.
