Приемы

Контур текста в GDI с антиалиасом

GDI Text Contour

Контур текста довольно полезная штука. Не только в праздничном оформлении, но и во вполне деловой практике. Оконтуренный текст достаточно просто получить в GDI+ и, прямо скажем, совсем не просто в D2D. Однако, как быть в старом добром GDI?

Пользовательский стиль пера. Часть II: Бегущие муравьи

Это продолжение разговора, начатого в первой части, про эффект рамки «бегущие муравьи». Было также сказано, что лучше этого не делать в GDI. Поэтому сейчас сделаем бегущих муравьёв в GDI и GDI+, и сравним.

Пользовательский стиль пера. Часть I: GDI

В прошлой статье я наотрез отказался рассматривать два последних параметра в функции ExtCreatePen, отвечающих за пользовательский стиль пера. Хотя упоминал про ГОСТы и прочую формальность. Давайте теперь рассмотрим их.

Трюки с формой 2.0: ComboBox в заголовке

ComboBox в заголовке

Как разместить ComboBox в заголовке формы? Или CheckBox? Или DateTimePicker? Если кнопку (вернее, эмуляцию кнопки) можно «запихать» в заголовок формы, то что делать с другими компонентами? Есть несколько вполне рабочих трюков. Один из них сейчас рассмотрим.

Трюки с формой 1.0: Без заголовка с тенью и отзывчивой рамкой

Рамка - огонь!

Форма без заголовка служит в основном для того, чтобы сделать заставку, или показать какой-нибудь процесс. Как правило, такое окно автоматически лишается тени. И в ряде случаев требуется менять размеры мышкой, как у обычного окна.

Как подключить GDI+ для Delphi 7 и не иметь проблем в XE

Delphi GDI+

Оказывается, Delphi 7 по-прежнему популярна и любима многими. У меня практически все примеры написаны для XE с использованием «родного» GDI+, что делает невозможным их компиляцию в Delphi 7. А потребность, как подключить GDI+ для Delphi 7, есть.

Печать xls(x), doc(x), pdf на указанный принтер

Недавно понадобилось в один свой проект автоматической печати добавить возможность печати xls(x), doc(x) и pdf. Программа в фоне опрашивает указанные ссылки, и если что-то есть, делает скрины страниц и автоматически выводит на указанный принтер. Теперь люди хотят не только скрины.

Направить ось Y вверх

Ось Y вверх

По умолчанию, ось Y направлена вниз. Иногда требуется направить ось ординат снизу-вверх. Как правило, перенаправление оси влечет за собой неправильное отображение текста. Нарушается логика определения объектов под курсором. Для исправления ситуации привлекаются аффинные преобразования. Хотя всего этого можно избежать.

Запрет смены фокуса и обработка событий при нажатии стрелок

Бывает так. Пишешь какой-нибудь красочный визуальный CustomControl, и в какой-то момент хочешь добавить реакцию на клавиатурные кнопки влево-вправо-вверх-вниз. Как грамотный человек, переопределяешь методы KeyDown или KeyPress. И тут приходит жесткий облом…