код Дэниелса работает до ...
ShowWindow(Form2.Handle, SW_SHOWNOACTIVATE);
Form2.Visible := True;
Пока ваша вторая форма не будет создана динамически . Тогда ваша вторая форма находится в позиции 0,0 с шириной и высотой по умолчанию.
На короткое время при выполнении ShowWindow
вы увидите вторую форму на экране, исчезающую при выполнении следующей строки.
Я использую код для прозрачной оверлейной формы, которая создается динамически. Следующий код представляет собой комбинацию данных ответов и помещает вторую форму без активации поверх родительской формы.
SetWindowPos(Form2.Handle, HWND_TOP, Left, Top, Width, Height, SWP_NOACTIVATE);
Form2.Visible := True;