Недавно добавленные исходники

•  3D Designer  435

•  Sik Screen Capture  311

•  Patch Maker  272

•  Айболит (remote control)  344

•  ListBox Drag & Drop  249

•  Доска для игры Реверси  4 761

•  Графические эффекты  299

•  Рисование по маске  232

•  Перетаскивание изображений  251

•  Canvas Drawing  267

•  Рисование Луны  252

•  Поворот изображения  147

•  Рисование стержней  144

•  Paint on Shape  109

•  Генератор кроссвордов  148

•  Головоломка Paletto  143

•  Теорема Монжа об окружностях  175

•  Пазл Numbrix  103

•  Заборы и коммивояжеры  183

•  Игра HIP  124

 

 

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Ссылки и Баннеры ...

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Зеркальный текст : .

 

Delphi - Создание эффекта отраженного и перевернутого текста

Исходник программы, показывающей пример создания эффекта отраженного и перевернутого текста.

Особенности исходника

  • Поворот текста заключается в изменении свойства шрифта, известного как «escapement», которое определяет угол для текстовой строки в десятых долях градуса. Это выполняется в процедуре InitInvertedText.
  • У InitInvertedtext есть еще одна задача - определить межстрочный интервал для текущего шрифта. Методом проб и ошибок я пришел к использованию суммы двух текстовых полей метрик (tmHeight и tmExternalLeading), полученных путем вызова функции GettextMetrics Windows API.
  • DrawInvertedText - это процедура, которая рисует строки на указанном холсте на указанной строке относительно правого нижнего угла страницы. Это, конечно же, становится верхним левым углом, когда вы переворачиваете страницу (или монитор) вверх ногами.
  • Не все шрифты можно повернуть - в документации указано, что допустимы только шрифты TrueType. Опять же методом проб и ошибок я обнаружил, что некоторые другие могут быть повернуты; некоторые дают странные результаты. Я добавил диалоговое окно выбора шрифта в основную форму, чтобы вы могли поиграть с характеристиками шрифта и увидеть результат.
  • Еще одна хитрость, обнаруженная при написании этого, - это вставка в Delphi пар возврата каретки / перевода строки (CR / LF) в текст, введенный в свойство TMemo Lines во время разработки. Эти жесткие разрывы приводят к ужасно выглядящему результату, если характеристики шрифта или размеры области отображения изменяются во время выполнения. Мое исправление - процедура MemoFixUp, которая удаляет все пары CR / LF, если не найдены две последовательные пары. Поэтому, если вы дважды нажмете Enter при вводе текста во время разработки, появится пустая строка. Это хороший визуальный разделитель абзацев, который MemoFixUp будет учитывать.
  • Я переместил три описанные выше процедуры в отдельный блок, U_InvertedText, чтобы упростить их использование в других программах. Они вызываются из модуля основной формы U_TextInvertedText.
  • Наконец, есть некоторые проблемы, характерные только для печати. Поскольку разрешение принтеров обычно намного выше, чем разрешение мониторов, простое растягивание изображения на мониторе до размера страницы обычно неадекватно. Лучшее решение - просто воссоздать изображение на холсте принтера таким же образом, как оно было создано изначально. Код Windows, который генерирует символы, достаточно умен, чтобы проверять разрешение устройств вывода и соответствующим образом настраивать размеры символов, чтобы поддерживать довольно однородный внешний вид.

Просмотры: 84
Дата: 08.07.2021, Автор: Gary Darby
Написать сообщение:
 

 

Скачать (23 Кб)   ↓ 2   Регистрация >>


 

Похожие исходники


Image2Text (изображение в текст)

Генератор текстур

TextureGen (генератор текстур)

Текст Drag & Drop

 

Текст по синусоиде

Текст внутри файла

 

© 2004-2021 "DS"

Соглашение пользователя / Реклама / Карта сайта             Created by BrokenByte Software