|
Основной форум Сюда все проблемы связанные с программированием. |
15.03.2010, 16:09
|
#1
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Форматирование по центру
Можно ли мне сделать так, чтобы ввеённый текст всегда отображался по центру относительно ширины экрана.
Я могу например для каждого потстраивать
DrawText(text, wi/2 - 50, 4);
DrawText(text, wi/2 - 30, 4);
Можно ли сделать чтоб для любой переменной text, заданной ей текст был по центру относиттельно ширины? Высота мне не так важна.
т. Е если текст состоит из 10 символов, то DrawText(text, wi/2 - 5, 4); и.т.д чтоб сам определял. Я просто не знаю как получить кол-во символов в переменной string.
|
(Offline)
|
|
15.03.2010, 17:47
|
#2
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Форматирование по центру
DrawText(text, wi/2 - GetStringWidth(text)/2, 4);
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
17.03.2010, 16:01
|
#3
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Ответ: Форматирование по центру
А как сделать, чтоб если длина текста не умещалась в экран, то рисовались только умещающие символы, а в конце ставились 3 точки.
if GetStringWidth(text) < wi then
DrawString(text, wi/2 - GetStringWidth(ver)/2, 4);
else ....
|
что правильно сделать, подскажите пожалуйста.
|
(Offline)
|
|
17.03.2010, 19:14
|
#4
|
ПроЭктировщик
Регистрация: 31.01.2007
Сообщений: 128
Написано 20 полезных сообщений (для 43 пользователей)
|
Ответ: Форматирование по центру
Посчитать сколько букв уместится в ширине минус три точки. У каждой буквы ширина может быть уникальной. Поэтому примерно прикинуть сколько букв, а потом добавлять или удалять по одной, пока не будет достигнут нужный размер.
И вывести эти буквы, а потом три точки.
|
(Offline)
|
|
17.03.2010, 19:48
|
#5
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Ответ: Форматирование по центру
Сообщение от Bruteo
Посчитать сколько букв уместится в ширине минус три точки. У каждой буквы ширина может быть уникальной. Поэтому примерно прикинуть сколько букв, а потом добавлять или удалять по одной, пока не будет достигнут нужный размер.
И вывести эти буквы, а потом три точки.
|
я ничё не понял. мне нужно мулитиэкран чтоб был. пусть лучше скажет odd или кто-нибудь другой пояснее
|
(Offline)
|
|
17.03.2010, 22:17
|
#6
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Форматирование по центру
просто условие с if убери (первую и 3ю строку)
|
(Offline)
|
|
17.03.2010, 22:34
|
#7
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Ответ: Форматирование по центру
Сообщение от cherepets
просто условие с if убери (первую и 3ю строку)
|
тогда если длина текста будет больше ширины экрана, то этот пункт не будет работать
|
(Offline)
|
|
18.03.2010, 00:58
|
#8
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Форматирование по центру
сотри и посмотри
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.03.2010, 15:14
|
#9
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Ответ: Форматирование по центру
Сообщение от cherepets
сотри и посмотри
|
на больших экранах всё работает, а на маленьких нет!
|
(Offline)
|
|
18.03.2010, 15:20
|
#10
|
Оператор ЭВМ
Регистрация: 22.02.2010
Сообщений: 48
Написано одно полезное сообщение
|
Ответ: Форматирование по центру
ладно всё ухитрился так
if GetStringWidth(text) < wi then
DrawString(text, wi/2 - GetStringWidth(ver)/2, 4);
else DrawString(ver, 1, 4);
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:33.
|