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

•  TDictionary Custom Sort  526

•  Fast Watermark Sources  889

•  3D Designer  1 820

•  Sik Screen Capture  1 467

•  Patch Maker  1 476

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

•  ListBox Drag & Drop  1 172

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

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

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

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

•  Canvas Drawing  968

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

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

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

•  Paint on Shape  493

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

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

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

•  Пазл Numbrix  616

 

 

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

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

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

 

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, который генерирует символы, достаточно умен, чтобы проверять разрешение устройств вывода и соответствующим образом настраивать размеры символов, чтобы поддерживать довольно однородный внешний вид.

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

 

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


 

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


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

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

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

Текст Drag & Drop

 

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

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

 

© 2004-2022 "DS"

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