Сделала так
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(Form2.Handle, SW_RESTORE);
end;
С
Form2 исчезла кнопка и эта же форма не реагирует на закрытие + теряет активность (тёмный Caption формы) после события
ShowWindow, но зато остаётся в последнем заданном состоянии
Однозначно "Бага" совсем в другом месте Вашего кода. Скорее всего в обработчиках на самой форме Form2.
Где-то Вы над ней серьезно "поиздевались"...
Если Вы говорите что "исчезают кнопки", то это явно указывает на то что в области памяти выделенной приложением для формы Form2 данные испорчены.
К примеру в обработчиках (на Form2) Вы используете методы пересоздающие окно этой формы.
Либо другая форма (или поток) уничтожает/пересоздаёт Form2 в то время как сама форма об этом "не знает" (например находится в состоянии ShowModal).
Кстати внутри обработчиков формы Form2 и ее контролов вместо
Form2.чегонибудь... следует писать
Self.чегонибудь...
Либо Вы Вашу Form2 в первый раз пытаетесь показывать точно таким же способом (вызываете ShowWindow вместо Form2.Show)
Либо где нибудь в другом месте кода неправильно управляете созданием/показом/уничтожением этой формы.
Причины могут быть разные. Надо искать где.
Советую поочередно "отключать" (обернуть в коммент) куски кода которые что либо производят с самой формой Form2 и контролов на ней расположенных (в части геометрии и отображения /скрытия), пока при вызове (из кода на Form1) ShowWindow(Form2.Handle, SW_RESTORE) не перестанет проявляться "эффект исчезания кнопки и реагирования на закрытие".
Ищите... Чудес не бывает...