Lex Опубликовано 28 февраля, 2005 Жалоба Поделиться Опубликовано 28 февраля, 2005 Мне нужно закрыть форму2 и передать управление процедуре на форме1, но чтоб эта процедура выполнялась после того, как форма2 уже закрылась!! делаю так: form2.Close; form1.Ins; //ins - моя процедура ..но форма2 ещё не закрывается, а "Ins" уже выполняется!? (видимо из за того, что всё в одной процедуре) Подскажите, как на одно нажатие кнопки выполнить: 1). Закрыть форму2; 2). Запустить мою процедуру на форме 1. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 28 февраля, 2005 Жалоба Поделиться Опубликовано 28 февраля, 2005 Попробуй визват процедуро Ins в собитие onClose форме. Да и на всякий случай провер в процедуре существует ли форма 2. Может бит тебе будет необходим таймер что проследит когда Form2 перестала существоват и тогда виполнит процедуру Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lex Опубликовано 28 февраля, 2005 Автор Жалоба Поделиться Опубликовано 28 февраля, 2005 Через событие onClose не получится, т.к. Ins нужно вызывать только по нажатию необходимой кнопки, а не на всё onClose. А на счёт таймера - подскажи пожалуйста поконкретней!! Чтоб при нажатии кнопки он следил, когда форма перестанет существовать и тогда передалось управление процедуре Ins. Заранее благодарен!! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Сергей Плоткин Опубликовано 28 февраля, 2005 Жалоба Поделиться Опубликовано 28 февраля, 2005 Вызывай форму при помощи ShowModal примерно таким макаром: procedure TForm1.Button1OnClick(Sender:TObject);begin Form2.Tag:=0; Form2.ShowModal; If Form2.Tag=1 then Ins;end; У кнопки на форме 2 делай примерно такой код: procedure TForm2.Button1OnClick(Sender:TObject);begin Tag:=1; Close;end; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 28 февраля, 2005 Жалоба Поделиться Опубликовано 28 февраля, 2005 А если форма не модальная... лучше : procedure TForm2.Button1OnClick(Sender:TObject);beginFrom1.Timer1.enabled:=true;Close;end; а в собитие onTimer: if Assigned(Form2) thenInselseTimer1.enabled=trueend; К сожеленю Delphi у меня сейчаш се установлен чтоби написах несколько примера Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.