Yo llevo perdido todo el día !!
Bueno, finalmente no sé ni porqué, ni como, pero hay veces que no le pienso buscar explicación al Delphi, pues resulta que a pesar de todo, si intento posicionar el Form2 en el evento OnCreate del propio Form2, con posición relativa a Form1, a pesar de poner correctamente el Use y todo eso no funciona.
Después la contestación que yo mismo dí, posicionando el Form2 antes del ShowModal, funcionaba y funciona correctamente en mi aplicación básica de prueba. Pero absolutamente el mismo procedimiento NO me funciona en mi aplicación. No sé por qué. No voy a entrar ahora aquí en detalle de todos los elementos que tengo en el form ni nada de eso.
Lo que si quiero detallar es que llamo a ShowModal desde un evento de un DBGrid contenido en ese Form.
Pues bien, si intento posicionar el Form que voy a abrir, desde mi aplicación, y con Form2.Left := Form1.Left + 100 me sigue dando error "Object reference not set to an instance on an object".
EN CAMBIO !! si la instrucción que pongo es
Código:
Form2 := TForm2.Create(Self);
Form2.Left := Self.Left + 100;
Form2.ShowModal;
me funciona perfectamente

! y posicionándome el Form2 correctamente con respecto al Form1, tal y como lo quiero.
Evidentemento no me explico el porqué de esto. A lo mejor alguien lo sabe ...
Un saludo a todos !
P.D. Adjunto el código completo de la rutina que me dá el quebradero de cabeza
Código Delphi
[-]procedure TBookingRoomingList.EditCurrentExecute(Sender: TObject);
begin
If (DataModule1.IBQuery9.Eof and DataModule1.IBQuery9.Bof) then abort;
BookingRoomingList1 := TBookingRoomingList1.Create(Self);
BookingRoomingList1.Left := Self.Left + 100;
BookingRoomingList1.Top := Self.Top + 65;
BookingRoomingList1.ShowModal;
BookingRoomingList1.Free;
DataModule1.IBQuery9SURNAME1.OnGetText := DataModule1.IBQuery9SURNAME1GetText;
DataModule1.IBQuery9DATEARRIVAL.DisplayFormat := 'dd/mm';
DataModule1.IBQuery9DATEDEPARTURE.DisplayFormat := 'dd/mm';
DataModule1.IBQuery9.Refresh;
end;