Function ExpandLine(TextLine as String, WidthNeed as Single) as String
Dim s() as String
Dim TextWidth, SpacesNeed, SpacesReplace, SpacesRest
Dim ret as String
s = Split(Trim(TextLine)," ")
TextWidth = Form.TextWidth(Trim(TextLine))
SpacesNeed = (WidthNeed - TextWidth)/Form.TextWidth(" ")
SpacesReplace = Fix(SpacesNeed / (UBound(s) + 1))
SpacesRest = SpacesNeed Mod (UBound(s) + 1)
If SpacesReplace>1 then
ret = Replace(Trim(TextLine)," ",Space(SpacesReplace))
Else
ret = Trim(TextLine)
End If
If SpacesRest > 0 Then
y = 1
For x=1 to SpacesRest
y = Instr(y, ret, Space(SpacesReplace))
ret = Replace(ret, Space(SpacesReplace), Space(SpacesReplace + 1), y, 1)
y = y + SpacesReplace + 1
Next x
End If
ExpandLine = ret
End Function
Sun07 писал(а):
1. Для выравнивания текста по ширине достаточно подставить нужное число пробелов в строку или такое выравнивание осуществляется прорисовкой символов со смещением до пиксела?
2. Может, для выравнивания существуют пустые символы шириной в 1 пиксел?
3. Может, для выравнивания существуют спец. символы форматирования (в Юникоде, например)?
.!Viper! писал(а):Form.TextWidth - функция, определяющая ширину строки, выводимой шрифтом формы.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 132