GI.TextWidthAndHeight

From SunFlurry wiki
Jump to: navigation, search
  TextWidthAndHeight (Общие функции объекта GI)
Объект:Объект GI
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные аргументы.
Визуальность:Да

Функция находит ширину и, если требуется, высоту и правый выступ последнего символа текста, включаемый в общую ширину. Такие отступы обычно используются для кернинга символов. Функция помещает новые символы текста во внутренний буфер-текстуру (см. RenderText), для того, чтобы не пользоваться системными функциями при последовательных вызовах, что увеличивает скорость работы.

Синтаксис

GI.TextWidthAndHeight(<Текст для нахождения размеров (STRING)>,<Свойства шрифта (STRING)>,<Ширина текста в пикселях (INT)>,<Высота текста в пикселях (INT)>,<Правый отступ в пикселях (INT)>)

Аргументы

  • <Текст для нахождения размеров (STRING)> - Аргумент задает текст для нахождения ширины и высоты. В тексте можно использовать международные символы.
  • <Свойства шрифта (STRING)> - Аргумент задает наименование, размер и другие свойства шрифта текста в формате: <Имя шрифта>,<Размер>,<Стиль>,,,<Тип сглаживания (0..3)>. Стиль шрифта задается как совокупность начальный букв сл. свойств: Bold, Italic, Uderlined, Strikeout, при пустом значении, используется стиль по умолчанию. Доступны следующие типы сглаживания: 0 -- сглаживание по умолчанию на системном уровне, 1 (по умолчанию) -- стандартное сглаживание, 2 -- сглаживание типа ClearType (не рекомендуется), 3 -- без сглаживания. Смотрите также статью Формат записи шрифтов в системе.
  • <Ширина текста в пикселях (INT)> - (возможен аргумент-переменная (ByRef)) Переменная получает ширину текста в пикселях.
  • <Высота текста в пикселях (INT)> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Переменная получает высоту текста в пикселях.
  • <Правый отступ в пикселях (INT)> - (необязательный аргумент) (возможен аргумент-переменная (ByRef)) Переменная получает правый выступ последнего символа текста, включаемый в общую ширину.

Пример

...
аМинуты:=Trunc(лкВремяВИгре/60+0.0000000001);
аСекунды:=Trunc(лкВремяВИгре-аМинуты*60+0.0000000001);
тВремя:=Right("0"+аМинуты,2)+":"+Right("0"+аСекунды,2)+"."+Right("00"+Trunc(Frac(лкВремяВИгре)*1000),3);

Шрифт:="Tahoma,"+лкРазмерШрифта+",BI,"+ЦветШрифта+",,1";
Шрифт2:="Arial,"+max(0,(лкРазмерШрифта-1))+",B,"+ЦветШрифта+",,1";
аШир:=0;
аВыс:=0;
aGI.TextWidthAndHeight("Время",Шрифт,аШир,аВыс);
aGI.RenderText("Время",Шрифт,0,x0,y0,0.5,"0,1,0,2");
aGI.TextWidthAndHeight(тВремя,Шрифт2,аШир);
aGI.RenderText(тВремя,Шрифт2,0,x0,y0+аВыс,0.5,"0,1,0,2");
...