Несколько форм Delphi
У меня есть две формы дельфи; frmHome и frmStats. На главной форме есть кнопка (frmHome), и когда вы нажимаете на нее, вы переходите к frmStats.
На btn щелкните в frmHome:
frmStats.ShowModal;
Hide;
Это работает нормально, но в frmStats есть также кнопка, по которой я бы хотел вернуть пользователя в основную форму при нажатии. Проблема в том, что я получаю сообщения об ошибках.
Если я сделаю ссылку на форму, как это, я получаю сообщение об ошибке "не могу сделать видимое окно модальным"
implementation
uses frmHome_u;
Однако, если я сделаю ссылку, как это, то я получу сообщение "ссылка на круговую единицу"
interface
uses {a bunch of uses} , frmHome_u;
Нажмите btn в frmStats:
frmHome.ShowModal;
Hide;
Как мне это сделать?
2 ответа
Если я понимаю, что вы пытаетесь сделать, то это должно работать нормально.
frmStats.Enabled := True;
frmStats.Show;
Enabled := False;
Hide;
И у вас есть обратный код в другой форме.
Поскольку другая форма отключена, ее нельзя сфокусировать, пока вы ее не включите.
РЕДАКТИРОВАТЬ
Если пользователи закрывают FrmStats, а FrmHome является основной формой, вы должны включить ее в событии onclose.
Модальные формы имеют владельцев. Эти формы владения отключены, когда отображается модальная форма. Форма всегда отображается над ее владельцем.
Вы пытаетесь сделать form1 владельцем формы2, а затем, в свою очередь, иметь форму2 собственной формы1. Это круговое владение не допускается. Это будет означать, что оба окна будут отключены, и каждое окно будет располагаться поверх другого.
Что вам нужно сделать, это закрыть модальную форму. замещать
frmHome.ShowModal;
Hide;
с
ModalResult := mrOK;
Если вы хотите, чтобы обе формы были видны и включены одновременно, вы не должны показывать их модально.