DELPHI.Фишки для удобства пользователя продолжение

   Итак в прошлой статье я поделился с вами совсем простой фишкой для удобства работы пользователя. Что бы он не кричал на каждом шагу – что за фигня, да меня эта «прога не уважает»)), но вот проблемка… В том методе, который был предложен, рассматривалась форма без каких-либо элементов управления, и поэтому при добавлении элемента управления – эта фишка не срабатывала, т.к. фокус у формы меняется при добавлении на этот элемент управления. Ну что ж, исправим ситуацию))

Вот и всё)) приехали, наш метод не работает.

Предлагаю выход- продублировать в событиях кнопки и нашего Edit, такой же вызов процедуры при нажатии на кнопку.

То есть:


Можем использовать в вызовах событий – одну процедуру для всех элементов управления, чтобы не дублировать код, к примеру выбрав уже созданную ранее для формы процедуру.

   Не забываем предусмотреть при закрытии формы – если есть какие-либо введенные пользователем данные – предложить ему их сохранить!

В следующий раз рассмотрим еще интересную)  нелепость наших программ)).


 

DELPHI.Фишки для удобства пользователя продолжение: 5 комментариев

  1. idealist

    Примеры меня так поразили, что я даже зарегистрировался ;)
    IMHO: Не стоит учить на плохих примерах.

    И так недостакти в коде:
    1) магические константы (27 vs VK_ESCAPE)
    2) один и тотже код повторяется (функции)
    3) и кроме того у формы есть свойство KeyPreview, тогда onkeydown достаточно всего один раз у формы описать.
    4) и скорее всего (дизайн GUI) у меня на форме есть кнопки Ok\Cancel. В таком случае можно установить свойства кнопок Default и Cancel соответственно и не надо писать onkeydown вообще.

    1. slavik27 Автор записи

      Приветствую тебя, idealist!
      Каждый здесь берёт что-то для себя)), кто что находит, то и берёт!
      Вы решили взять ошибки, ну что ж это тоже неплохой выбор!!!
      Не буду проверять орфографию, она здесь ни к чему) приглашаю писать к нам статьи!!! Надеюсь этот мир не без добрых людей?
      Спасибо за уточнения!
      1) магические константы здесь ни к чему, не стоит усложнять код!
      2) Когда вы научились оптимизировать свой код, сколько лет, дней прошло?
      Начинающий программер должен сам пройти этот путь и сообразить, его нужно
      только лишь подталкивать в определенном направлении.

  2. idealist

    >Вы решили взять ошибки
    Я не решил. Это наболевшее. Подолгу службы, часто приходится видеть как люди в одной строчке три оплошности делают.
    >Не буду проверять орфографию
    Спасибо. Именно поэтому я пишу программы а не статьи.
    >магические константы здесь ни к чему, не стоит усложнять код!
    Что?!
    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?

  3. slavik27 Автор записи

    Основная идея статьи — обработка ситуации, когда пользователь открывает какую-либо форму для ввода данных и хочет ее закрыть обычным способом — нажатием клавишы ESC, а не нажатием кнопки закрытия окна при помощи мыши!

Добавить комментарий