Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: WordWrap : Перенос метки происходит раньше запланированного!  (Прочитано 12356 раз)
0 Пользователей и 1 Гость смотрят эту тему.
malor
Опытный

ru
Offline Offline

« : 24-11-2011 14:06 » 

Я визуально прикинул, что меня бы устроила метка длиной 200 пикселей, потому код будет такой:

Код: (Delphi)
  lbLong.Top := 200;
  lbLong.Width := 200;
  lbLong.AutoSize := true;
  lbLong.WordWrap := true;
  lbLong.Caption := 'Длинный текст метки 01234567890123456789';

Как это в результате:



Стрелка - это место где примерно те самые 200 пикселей по существу б должны заканчиваться. Что он тогда так рано принялся переносить на следующую строку текст?

* LongLabel.png (10.64 Кб - загружено 984 раз.)
« Последнее редактирование: 29-11-2011 15:07 от RXL » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 24-11-2011 14:12 » 

как считал?
какие типы шрифтов знаешь?
какой шрифт используешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
malor
Опытный

ru
Offline Offline

« Ответ #2 : 24-11-2011 14:19 » 

Шрифт тот, что стоял по умолчанию.


Если в данный дизайнтаймовский момент у нас 96, то значит примерно перед началом кнопки будет 200 пикселей.

Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 24-11-2011 14:44 » 

Строка  "Длинный текст метки 01234567890123456789" больше 200 пикселов, что явно видно в сравнении со
строкой "Здесь будет текст". (96 пикселов)

« Последнее редактирование: 24-11-2011 14:50 от Oldy » Записан

С уважением, Oldy.
malor
Опытный

ru
Offline Offline

« Ответ #4 : 24-11-2011 14:51 » 

Поэтому, Oldy, т.к. строка больше пары сотен пикселов, то метка должна была выглядеть так:
Длинный текст метки 012345678901
23456789

а она выглядит:
Длинный текст метки
01234567890123456789


Почему ?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 24-11-2011 14:55 » 

WordWrap-перенос по словам. Ну а так как  01234567890123456789 набрано без пробелов - это ОДНО слово.
« Последнее редактирование: 24-11-2011 15:01 от Oldy » Записан

С уважением, Oldy.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 24-11-2011 15:01 » 

потому что ты не ответил на вопросы.

какие типы шрифтов знаешь?
какой шрифт используешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
malor
Опытный

ru
Offline Offline

« Ответ #7 : 24-11-2011 15:06 » 

1) Пропорциональные и моноширинные.

2) Вы не про то, что изображено на  1-м скрине спрашиваете?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 24-11-2011 15:07 » 

какой тип шрифта используешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #9 : 24-11-2011 15:16 » 

malor, если тебе перенос нужен именно по ширине в пикселах, а не по пробелам, то отключи WordWrap, а перенос делай программно ручками.
Записан
malor
Опытный

ru
Offline Offline

« Ответ #10 : 24-11-2011 15:21 » 

какой тип шрифта используешь?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 24-11-2011 15:24 » 

malor, это ты мне сказал какой шрифт используешь.
Я у тебя спросил
КАКОЙ ТИП ШРИФТА используешь?

предварительно задав наводящий вопрос-  какие типы шрифты знаешь.

Тебе нужно было подчеркнуть не только Tahoma, но и ПРОПОРЦИОНАЛЬНЫЕ


А чем отличаются Пропорциональные от Моноширинных?


« Последнее редактирование: 24-11-2011 15:26 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
malor
Опытный

ru
Offline Offline

« Ответ #12 : 24-11-2011 15:29 » 

Согласно последнему скрину шрифт Tahoma относят к типу пропорциональных.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 24-11-2011 15:39 » 

Отличия в ЧЕМ?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
malor
Опытный

ru
Offline Offline

« Ответ #14 : 24-11-2011 20:18 » 

Sla>>Отличия в ЧЕМ?

Цитата
   В моноширинном шрифте все символы имеют одинаковую ширину. В ранних компьютерах это позволяло упростить задачу вывода текста на экран: каждый символ располагался в пределах своего знакоместа, а изображение символа рисовалось в виде рисунка фиксированного размера, поэтому не требовалось задание ширины символа, и процедура задания положения символа на экране становилась чрезвычайно простой. Другим достоинством моноширинных шрифтов является однозначность относительного расположения символов на экране вне зависимости от гарнитуры шрифта, что является необходимым условием для печати с преформатированием. Это позволяет выводить таблицы и псевдографику с использованием одних только символов шрифта, а также создавать ASCII-арт. Однако моноширинные шрифты имеют определённые недостатки: прежде всего, бо́льшую ширину набора, неравномерный рисунок, а также сложности с отображением «широких» букв, таких как «Ш» или «W»: при небольшом разрешении они могут и вовсе стать трудноузнаваемыми. Моноширинные шрифты применяются прежде всего в эмуляторах терминалов, а также в интерфейсах сред разработки. Также моноширинный шрифт применяют для отображения листингов кода, чтобы подчеркнуть их «компьютерное» происхождение.
    В пропорциональном шрифте символы могут иметь разную ширину. К примеру буква l будет занимать значительно меньше места, чем буква W. Это позволяет в значительной степени уменьшить средний размер символа, сохранив при этом удобочитаемость. Текст, набранный пропорциональным шрифтом, выглядит более аккуратно и лучше читается при больших объёмах. Для печати и отображения текстов пропорциональный шрифт применяется почти всегда.

=================================================================================

А вот здесь слову "посещения" должно было бы места хватить...

укатило на 2-ю строку.

* LongLabel_4.png (1.62 Кб - загружено 570 раз.)
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 24-11-2011 20:22 » 

ага, я не силен во всех этих штучках, но... ты видишь это уже в runtime.
а при проектировании? label вмещается?

Я уверен, что существует метод, позволяющий определить размеры компонента. На момент runtime выведи размер label
« Последнее редактирование: 24-11-2011 20:24 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #16 : 25-11-2011 01:36 » 

malor, выключите AutoSize и задайте метке такие размеры, чтобы переносимый текст вмещался  в длину и высоту.
Записан

malor
Опытный

ru
Offline Offline

« Ответ #17 : 25-11-2011 08:46 » 

Sla>>а при проектировании? label вмещается?

Метки создаются динамически в программе.

выключите AutoSize и задайте метке такие размеры, чтобы переносимый текст вмещался  в длину и высоту.

Сделал так:
Код: (Delphi)
   lab.Width := 200;
   lab.AutoSize := false;
   lab.WordWrap := true;
   lab.Caption := MyText;
   k := Trunc(Length(MyText)/30);
   lab.Height := 13 + 13*k;
   Shift := 13*k;
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #18 : 25-11-2011 10:50 » 

Более грамотным, имхо, для данной задачи, было бы использовать GetTextExtentExPoint
Записан
DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #19 : 25-11-2011 15:08 » 

malor,
может не в тему - как установлено выравниваение по вертикали ?
Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 29-11-2011 15:08 » 

Offtopic:
malor, мне так и не понятно: зачем ты прикрепляешь картинки к посту и в тексте, в тегах img ссылаешься на radikal?...
Поставлю в угол.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
malor
Опытный

ru
Offline Offline

« Ответ #21 : 05-12-2011 13:15 » 

RXL>>в тегах img ссылаешься на radikal?...

Вы как предлагаете прикреплять?
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #22 : 05-12-2011 16:33 » 

к посту предполагается прикреплять. если вы хотите, чтобы ваши картинки были видны - копируете в буфер линк прикрепленного файла, открываете свой пост на редактирование, вставляете туда скопированный линг в тэге [img].
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 05-12-2011 18:08 » 

Игорь, все гораздо проще Ага

malor,

Сперва факты:
1. Ты прикрепляешь к посту картинку.
2. В тексте поста даешь ссылки на радикал, где лежит та же самая картинка.

Анализ:
1. Нафига прикреплял, если ссылаешься на радикал?
2. Нафига радикал, если уже прикрепил?

Теперь понятно мое недоумение? Улыбаюсь

Теперь технология. Т.с. мастер-класс:
1. Прикрепляем картинку.
2. Рядом с каждым атачем есть иконка: . Если ее нажать, в текущую позицию курсора в тексте вставится тег img со ссылкой на эту картинку.
3. Если картинка еще не отправлена на сервер, то ссылки пока еще нет и вместо нее вставляется что-то типа "#1" - позже сервер это заменит на полноценную ссылку.

Все просто и удобно.
А радикал - это гадость.
« Последнее редактирование: 05-12-2011 18:10 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines