Содержание материала

Используйте DT_WORD_ELLIPSIS и (или) DT_PATH_ELLIPSIS если необходимо вывести длинный текст, который не помещается в одну строку. Выглядит это примерно так: надо вывести "C:\Program Files\Borland\Delphi3\Source\VCL", а выведется "C:\Program Files\...\VCL". В этом случае, значение DT_MODIFYSTRING обязательно.

 

DT_NOPREFIX позволяет выводить "&", а не подчерк под следующим по тексту символом. Без этого значение в строке придется записывать "&&".

function DrawTextEx(DC: HDC; lpchText: PChar; cchText: Integer;

var p4: TRect; dwDTFormat: UINT; DTParams: PDrawTextParams): Integer;

Оговорюсь, что практически все функции, в названиях которых есть окончание "Ex", являются расширением одноименных функций без "Ex". В файле справки упоминается, что функции без "Ex" являются "пережитками" Windows 3.1, по этому рекомендуют использовать расширенные функции. По моему личному опыту могу судить, что разницы никакой, если Вам не нужны дополнительные параметры, и хлопоты по их заполнению :).

 

В данном случае добавился дополнительный параметр DTParams. При помощи него можно задать левый, правый отступ текста, величину табуляции, а также получить число символов или строк, которые не поместились в отведенный прямоугольник.

function TabbedTextOut(hDC: HDC; X, Y: Integer; lpString: PChar; nCount,

nTabPositions: Integer;

var lpnTabStopPositions; nTabOrigin: Integer): Longint;

Имя функции говорит само за себя - выводится текст с использованием фиксированной табуляции. В качестве lpnTabStopPositions нужно передать переменную типа array [0.. nTabPositions-1] of integer. Параметр nTabOrigin содержит х-координату начала для табуляции. Если в тексте встречается символ табуляции #9, то дальнейший вывод начинается с указанной в lpnTabStopPositions позиции.

 

Горизонтальное выравнивание не влияет на результат вывода.

function PolyTextOut(DC: HDC; const PolyTextArray; Strings: Integer): BOOL;

Вывод многострочного текста. В качестве параметра PolyTextArray нужно передавать переменную типа array [0.. Strings-1] of TPolyText. Структура TPolyText содержит все те же параметры, которые передаются функции ExtTextOut.

Под Windows 95/98 не поддерживается.

 

Примечание:

Кстати, советую всегда, перед начало освоения нового "камня преткновения" обращать на этот пункт. Лично у меня был случай, когда пишешь, пишешь, приносишь клиенту - не работает. Почему?! Читаешь MSDN: "Windows 95/98: Unsupported".

 

 

Должен огорчить всех любителей "красоты" - в Windows нет стандартной поддержки выравнивания текста по ширине. Теперь, думаю понятно, почему даже в tRichEdit нет этого.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить