forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Форматирование по центру (http://forum.boolean.name/showthread.php?t=12190)

Dimon 15.03.2010 16:09

Форматирование по центру
 
Можно ли мне сделать так, чтобы ввеённый текст всегда отображался по центру относительно ширины экрана.
Я могу например для каждого потстраивать
DrawText(text, wi/2 - 50, 4);
DrawText(text, wi/2 - 30, 4);
Можно ли сделать чтоб для любой переменной text, заданной ей текст был по центру относиттельно ширины? Высота мне не так важна.
т. Е если текст состоит из 10 символов, то DrawText(text, wi/2 - 5, 4); и.т.д чтоб сам определял. Я просто не знаю как получить кол-во символов в переменной string.

odd 15.03.2010 17:47

Ответ: Форматирование по центру
 
PHP код:

DrawText(textwi/GetStringWidth(text)/24); 


Dimon 17.03.2010 16:01

Ответ: Форматирование по центру
 
А как сделать, чтоб если длина текста не умещалась в экран, то рисовались только умещающие символы, а в конце ставились 3 точки.
Цитата:

if GetStringWidth(text) < wi then
DrawString(text, wi/2 - GetStringWidth(ver)/2, 4);
else ....
что правильно сделать, подскажите пожалуйста.

Bruteo 17.03.2010 19:14

Ответ: Форматирование по центру
 
Посчитать сколько букв уместится в ширине минус три точки. У каждой буквы ширина может быть уникальной. Поэтому примерно прикинуть сколько букв, а потом добавлять или удалять по одной, пока не будет достигнут нужный размер.
И вывести эти буквы, а потом три точки.

Dimon 17.03.2010 19:48

Ответ: Форматирование по центру
 
Цитата:

Сообщение от Bruteo (Сообщение 142164)
Посчитать сколько букв уместится в ширине минус три точки. У каждой буквы ширина может быть уникальной. Поэтому примерно прикинуть сколько букв, а потом добавлять или удалять по одной, пока не будет достигнут нужный размер.
И вывести эти буквы, а потом три точки.

я ничё не понял. мне нужно мулитиэкран чтоб был. пусть лучше скажет odd или кто-нибудь другой пояснее

cherepets 17.03.2010 22:17

Ответ: Форматирование по центру
 
просто условие с if убери (первую и 3ю строку)

Dimon 17.03.2010 22:34

Ответ: Форматирование по центру
 
Цитата:

Сообщение от cherepets (Сообщение 142194)
просто условие с if убери (первую и 3ю строку)

тогда если длина текста будет больше ширины экрана, то этот пункт не будет работать

cherepets 18.03.2010 00:58

Ответ: Форматирование по центру
 
сотри и посмотри

Dimon 18.03.2010 15:14

Ответ: Форматирование по центру
 
Цитата:

Сообщение от cherepets (Сообщение 142224)
сотри и посмотри

на больших экранах всё работает, а на маленьких нет!

Dimon 18.03.2010 15:20

Ответ: Форматирование по центру
 
ладно всё ухитрился так
if GetStringWidth(text) < wi then
DrawString(text, wi/2 - GetStringWidth(ver)/2, 4);
else DrawString(ver, 1, 4);


Часовой пояс GMT +4, время: 05:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot