Итак в прошлой статье я поделился с вами совсем простой фишкой для удобства работы пользователя. Что бы он не кричал на каждом шагу – что за фигня, да меня эта «прога не уважает»)), но вот проблемка… В том методе, который был предложен, рассматривалась форма без каких-либо элементов управления, и поэтому при добавлении элемента управления – эта фишка не срабатывала, т.к. фокус у формы меняется при добавлении на этот элемент управления. Ну что ж, исправим ситуацию))
Вот и всё)) приехали, наш метод не работает.
Предлагаю выход- продублировать в событиях кнопки и нашего Edit, такой же вызов процедуры при нажатии на кнопку.
То есть:
Можем использовать в вызовах событий – одну процедуру для всех элементов управления, чтобы не дублировать код, к примеру выбрав уже созданную ранее для формы процедуру.
Не забываем предусмотреть при закрытии формы – если есть какие-либо введенные пользователем данные – предложить ему их сохранить!
В следующий раз рассмотрим еще интересную) нелепость наших программ)).
Примеры меня так поразили, что я даже зарегистрировался
IMHO: Не стоит учить на плохих примерах.
И так недостакти в коде:
1) магические константы (27 vs VK_ESCAPE)
2) один и тотже код повторяется (функции)
3) и кроме того у формы есть свойство KeyPreview, тогда onkeydown достаточно всего один раз у формы описать.
4) и скорее всего (дизайн GUI) у меня на форме есть кнопки Ok\Cancel. В таком случае можно установить свойства кнопок Default и Cancel соответственно и не надо писать onkeydown вообще.
Приветствую тебя, idealist!
Каждый здесь берёт что-то для себя)), кто что находит, то и берёт!
Вы решили взять ошибки, ну что ж это тоже неплохой выбор!!!
Не буду проверять орфографию, она здесь ни к чему) приглашаю писать к нам статьи!!! Надеюсь этот мир не без добрых людей?
Спасибо за уточнения!
1) магические константы здесь ни к чему, не стоит усложнять код!
2) Когда вы научились оптимизировать свой код, сколько лет, дней прошло?
Начинающий программер должен сам пройти этот путь и сообразить, его нужно
только лишь подталкивать в определенном направлении.
>Вы решили взять ошибки
Я не решил. Это наболевшее. Подолгу службы, часто приходится видеть как люди в одной строчке три оплошности делают.
>Не буду проверять орфографию
Спасибо. Именно поэтому я пишу программы а не статьи.
>магические константы здесь ни к чему, не стоит усложнять код!
Что?!
if key = chr(27) then close;
проще читать чем
if key = chr(VK_ESCAPE) then close;
Sorry, но я незнаю ASCII наизусть, думаю начинающий читатель тоже.
>Когда вы научились оптимизировать свой код…
Я еще не умею. Но если я покупаю книги или подписываюсь на блоги, то стараюсь избегать с посредственными примерами.
PS:
Незнаю как мой mail попал в рассылку (наверно по наследству), но месяц назад когда увидел первую статью в блоге XP, я подумал Extreme Programming, как круто, наконец-то на русском. Тема 1C — странно, но ладно может будет еще о XP. А последнее про Delphi… извените, a где XP?
спасибо за комменты,
экстримальное не путать с экстремальным
не считаю здесь какие-то ошибки, т.к. описываю общую концепцию
Основная идея статьи — обработка ситуации, когда пользователь открывает какую-либо форму для ввода данных и хочет ее закрыть обычным способом — нажатием клавишы ESC, а не нажатием кнопки закрытия окна при помощи мыши!