среда, 13 октября 2010 г.

Как правильно закрывать форму по Escape. Обработка диалоговых клавиш

Очень часто требуется сделать так, чтобы окно закрывалось по нажатию на клавишу Escape. Это действительно удобно. Более того, есть негласное правильно: интерфейсы ввода данных должны уметь работать и без мыши. Т.е. чтобы после ввода данных с клавиатуры можно было нажать Enter или Escape, а не тянуться за мышкой и потом целиться курсором в маленький крестик.

Возможно Вам покажется, что тема избитая и этот вопрос может волновать лишь новичков. Однако даже опытные программисты не всегда знают, как это делать правильно. В этой заметке я также расскажу, как правильно обрабатывать и другие диалоговые клавиши.

среда, 6 октября 2010 г.

Как правильно уничтожать модальную форму. Release vs Free

Модальные формы довольно распространены в Delphi. Их основное удобство заключается в легкости контроля жизненного цикла формы (Create - ShowModal - Free), плюс мгновенное получение результата выбора пользователя (ModalResult). Не буду говорить о том, что приложение, перегруженное модальными формами отталкивает пользователя, это отдельная тема.

Однако довольно часто встречается, что программисты такие формы освобождают не совсем корректно, используя метод Release, вместо Free. В простых случаях это не страшно, в более сложных может привести иногда к странным "глюкам", а иногда и к AV (Access Violation).

вторник, 5 октября 2010 г.

Число прописью

Почему-то так получается, что в последнее время я всё больше и больше занимаюсь Oracle, нежели Delphi.

Сегодня публикую функцию, которая форматирует число в строку прописью (словами) на английском языке. Особо примечательно то, что для этого используется встроенная в Oracle функция to_char, а не массивы слов.

.

.