Спасибо, Ваш ответ очень помог.Сначала общие советы/замечания:
Код - примерно так:
- Кнопке "Отмена" поставьте ModalResult = mrCancel, Cancel = True.
- Вместо TextEdit + кнопка я бы посоветовала использовать компонент TcxButtonEdit, в котором кнопки встроенные. Зайдите в редактор свойства Properties.Buttons и установите кнопке Kind = bkText и Caption = Очистить. Получится так, как на скриншоте в аттаче.
Так лучше в плане user experience - понятно, что кнопка "Очистить" относится именно к данному полю.
К тому же, компоненту TcxButtonEdit можно назначить маску, чтобы запретить ввод невалидных символов (букв и т.п.).- На кнопку "OK" я бы навесила дополнительную проверку, что текст непустой.
function Main() { var frm = UserForms.Form1; var res = frm.ShowModal(); if (res == mrOk) { NumProject = parseInt(frm.cxButtonEdit1.Text); } else { Runner.Stop(); } } // Этот обработчик надо прикрутить к событию OnButtonClick компонента TcxButtonEdit function Form1_cxButtonEdit1_OnButtonClick(Sender, AButtonIndex) { UserForms.Form1.cxButtonEdit1.Text = ""; } // Этот обработчик надо прикрутить к событию OnClick кнопки "ОК" function Form1_cxButton1_OnClick(Sender) { if (UserForms.Form1.cxButtonEdit1.Text == "") { ShowMessage("Пожалуйста, введите номер проекта."); } else { UserForms.Form1.ModalResult = mrOk; } }
Только у меня после появления сообщения о вводе номера проекта и нажатия в нем кнопки "Ок" скрипт прерывается