Мой DELPHI – Программирование

Всё для программера

Как перехватить события в неклиентской области формы, в заголовке окна, например?

Вопрос:
Как перехватить события в неклиентской области формы, в заголовке окна, например?
Ответ:
Создайте обработчик одного из сообщений WM_NC (non client - не клиентских) (посмотрите
WM_NC в Windows API help). Пример показывает как перехватить вижение мыши во всей
неклиенстской области окна (рамка и заголовок). Прочитать остальную часть записи »

При попытке создать обьект класса TPrinter (TPrinter.Create) я получаю exception

Вопрос:
При попытке создать обьект класса TPrinter (TPrinter.Create) я получаю exception.
Почему?
Ответ:
В создании обьекта класса TPrinter с использованием TPrinter.Create нет необходимости,
так как обьект класса TPrinter (называемый Printer) автоматически создается при
использовании модуля Printers. Прочитать остальную часть записи »

Как перемещать компонент мышкой во время работы программы “runtime”?

Вопрос:
  Как перемещать компонент мышкой во время работы программы "runtime"?

Ответ:

Перехватить событие OnMouseDown,
запомнить x и y координты курсора мыши. Отслеживать движение мыши по событию
OnMouseMove и перемещать компонент вслед за курсором мыши до тех пор пока не
произойдет событие OnMouseUp. В примере показано перемещение компонента TButton.
Перемещение начинается, когда пользователь “берет” TButton мышью, удерживая
нажатой клавишу “Сontrol”. Прочитать остальную часть записи »

Как сохранить обьект TFont в реестре/ini/файле/таблице базы данных?

Вопрос:
Как сохранить обьект TFont в реестре/ini/файле/таблице базы данных?

Ответ:

Нужно сохранять атрибуты
шрифта (имя, размер и т.п.) а не сам обьект TFont. После считывания этой информации
следует проверить существует ли такой шрифт, прежде чем его использовать. Чтобы
не показаться голословным дополню ответ Borland’а своим примером сохранения/чтения
шрифта в/из реестра Прочитать остальную часть записи »

Как ограничить длинну текста, вводимого в TEdit

Вопрос:
Как ограничить длинну текста, вводимого в TEdit, так чтобы ширина текста не превышала
ширину TEdit'а?

Ответ:

В примере приведено два
способа ограничить длинну текста в TEdit так чтобы она не превышала ширину клиентской
области окна TEdit’а и не появлялась прокрутка текста. Первый способ устанавливает
свойство TEdit’а MaxLength равным числу букв “W”, которые поместятся в TEdit.
“W” выбрана потому, что является, наверное, самой широкой буквой в любом шрифте.
Этот метод сносно работает для шрифтов с фиксированной шириной букв, но для
шрифтов с переменной шириной букв вряд ли сгодится. Второй способ перхватывает
событие KeyPress TEdit’а и измеряет ширину уже введенного текста и ширину нового
символа. Если ширина больше чем клиентская область TEdit’а новый символ отбрасывается
и вызывается MessageBeep. Прочитать остальную часть записи »