VectorTextWidth()
Синтаксис
Result.d = VectorTextWidth(Text$ [, Flags])
Описание
Измеряет ширину данного текста при использовании текущего шрифта Векторной графики.
Параметры
Text$ Текст (одна строка), ширину которого требуется измерить. Flags (дополн.) Может быть комбинация следующих значений: #PB_VectorText_Default: Вернуть логическую ограничительную рамку ограничивающую текст. #PB_VectorText_Visible: Вернуть видимую ограничительную рамку ограничивающую текст. #PB_VectorText_Offset : Вернуть смещение ограничительной рамки из текущей позиции, а не ширины.
Возвращаемое значение
Возвращает ширину указанного текста в единицах измерения устройства (поверхности) вывода Векторной графики.
Комментарии
Размеры выводимого текста могут быть определены в терминах двух ограничивающих рамок:
"Логическая ограничительная рамка" символа или текста определяет пространство, которое курсор должен считать как часть строки, чтобы правильно выводить строки текста рядом друг с другом (не впритык). Однако некоторые символы могут выходить за пределы этой рамки (например, в случае шрифтов cursive или serif). Логическая ограничительная рамка представляет интерес в определении места, где выводить текст. На примере ниже, она обозначена синим пунктиром.
"Видимая ограничительная рамка" символа или текста определяет область, в которой текст действительно нарисован. Эта область обычно больше, чем логическая ограничительная рамка. Видимые размеры текста можно получить, указав флаг #PB_VectorText_Visible. Видимые размеры текста могут быть со смещением по отношению к логическим. Это смещение можно рассчитать, указав флаг #PB_VectorText_Offset. На примере ниже, она обозначена красным пунктиром.
В следующем примере показан пример текста с логической ограничительной рамкой синего цвета, видимой ограничительной рамкой красного цвета и расположение базовой линии зеленого цвета (она описана в VectorTextHeight()). Начало текста - в верхнем левом углу логической ограничительной рамки (синего цвета).
Пример
If OpenWindow(0, 0, 0, 500, 250, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) CanvasGadget(0, 0, 0, 500, 250) LoadFont(0, "Monotype Corsiva", 20, #PB_Font_Italic) If StartVectorDrawing(CanvasVectorOutput(0)) VectorFont(FontID(0), 125) Text$ = "Sample" ; Выводим текст MovePathCursor(25, 25) DrawVectorText(Text$) ; Выводим логическую ограничивающую рамку AddPathBox(25, 25, VectorTextWidth(Text$), VectorTextHeight(Text$)) VectorSourceColor(RGBA(0, 0, 255, 255)) DashPath(2, 10) ; Выводим видимую ограничивающую рамку AddPathBox(25 + VectorTextWidth(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), 25 + VectorTextHeight(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), VectorTextWidth(Text$, #PB_VectorText_Visible), VectorTextHeight(Text$, #PB_VectorText_Visible)) VectorSourceColor(RGBA(255, 0, 0, 255)) DashPath(2, 10) ; Выводим базовую линию MovePathCursor(25, 25 + VectorTextHeight(Text$, #PB_VectorText_Baseline)) AddPathLine(VectorTextWidth(Text$), 0, #PB_Path_Relative) VectorSourceColor(RGBA(0, 255, 0, 255)) DashPath(2, 10) StopVectorDrawing() EndIf Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow EndIf
См. также
VectorTextHeight(), DrawVectorText(), DrawVectorParagraph(), VectorParagraphHeight(), VectorFont()
Поддерживаемые OS
Все