| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Узнать кто открыл форму |
| Автор: ТоляМБА 9.6.2015, 12:36 | ||
| Есть Form1 с двумя пунктами меню MenuItem1,2 Есть Form2 с двумя едитами Edit1,2 Надо чтобы при нажатии на MenuItem1 открывалась Form2 с Edit2.visible:=false, а при нажатии на MenuItem2 открывалась Form2 c Edit1.visible:=false; Можно сделать на процедуру нажатия меню Menuitem1 код
Но мне надо знать из формы 2 при открытии формы (например в procedure TForm2.FormShow(Sender: TObject); ) каким пунктом меню было вызвано Form2.ShowModal; Подозреваю что можно через Sender но не знаю как. |
| Автор: superVad 9.6.2015, 17:02 |
| Собственно, чего тут знать? если Edit2.Visible = false то Menuitem1 и наоборот. |
| Автор: ТоляМБА 9.6.2015, 17:21 |
| superVad, это если я из Form1 это значение задам. Я же хочу задавать это значение из Form2 в зависимости от того пункта меню на Form1 которым была открыта Form2. |
| Автор: Poseidon 10.6.2015, 09:09 | ||||
| В Form2 создаешь property. До вызова ShowModal заполняешь эту пропертю. В FormShow считываешь. Как-то так: Form1
Form2
Правда мне не очень нравится обращение к Form1 из метода TForm2.FormShow. Возможно я бы сделал через Tag или еще как-нибудь. Но общий принцип, думаю. понятен. |
| Автор: Агрох 16.6.2015, 17:58 | ||||||
В Form2 добавь процедуру
Ну и из Form1 вызывай не Form2.ShowModal а Form2.MyShowModal(SomeIndex); Можно аналогично предложенному Poseidonом:
Ну и вызов при нажатии кнопки будет
|