Не столько в качестве "ответов", сколько в качестве самостоятельного дополнения и пояснения к статье. >>Еще куча всяких "бонусов", просто лень описывать
>Никаких других бонусов не наблюдаю. Ну, что же, перечислю...
Первоначальный вариант Игоря Василенко
with TMyDlg.Create(nil) do try if execute then ... begin end; finally free; end; |
Мой вариант
ShowMessage('Вы ввели '+InputString('Начальное значение')); |
Другие Бонусы:
If ShowModal = mrOk Then Result:=Edit1.Text Else Result:='"Отмена"'; |
Итак...
Во первых, основная цель написания такого рода диалогов - СТАНДАРТИЗАЦИЯ процедур и интерфейсов ввода.
Вторая задача - РАЗГРУЗИТЬ код ОСНОВНЫХ модулей программы. Т.е. Чем короче вызов диалога - тем лучше. Крайне желательно, чтобы основной модуль получал ТОЛЬКО результат ввода (успех/НЕуспех) и, в случае успешного ввода - данные. Все. Все проверки, защита и т.д. ДОЛЖНЫ быть ВЫНЕСЕНЫ из рабочих модулей программы. Если ввод с ограничением диапазонов и т.д. - пишите диалог, принимающий на вход список ограничений и реализующий их! Не тащите это в основной модуль! > Возвращает единственное строковое значение, а зачастую их должно быть > несколько.
> Что делать? Запихивать все в строку, а после проводить разбор на мой взгляд
> неприемлемо. Ок. Приведу пример ввода МНОГИХ переменных. Да еще и по именам, да еще и в разных комбинациях и количествах...