выход за пределы экрана

  • Автор темы BattleMage
  • Дата начала
B

BattleMage

#1
Опять вопрос не по теме. Создайте на конец раздел "Общие разделы по Delphi"!
Вот у меня есть строка какая-то, длина которой превышает размер экрана. Я хочу её записать в Label. Как сделать, чтобы при достижении края экрана ставился символ #13 (Enter) и она началась сначала? Некрасиво что-то получается :(
 
A

Azrael

#2
В Label:
1) ставишь свойство AutoSize = false
2) растягиваешь как надо
3) ставишь свойство WordWrap = true
 
B

BattleMage

#3
чё-то не так. он просто обрубает строку мою...

может я плохо объяснил, что хочу. пусть строка такая '11111122222223333333334444444455555'
выведет в лейбел
'1111111122222222222223333333333
444444444445555555555'


Так. А зачем ставили своство AutoSize = false? по-моему тут как раз truу нужно...
 
A

Azrael

#4
Тэкс... Если строка по-человечески написана, то wordWrap перенесет по пробелам. когда autoSize=false, то можно в форме растянуть (в Вашем случае) по ширине формы и некоторой высоте. Если же произвольная строка, как 123438н5928275437289067532809 то можно, к примеру, поступить следующим образом: программно создать переменную типа TCanvas, задать ей свойство font - такой же как у Label-а и играться с функцией ширины текста (точно не помню, дельфы под рукой нет, писал я на ней давненько).
Можно совместить подходы. попробовать, например, создать переменную типа TLabel, задать WordWrap, размеры, попытаться туда запихать строку, если размеры увеличились, разбиваем руками...
 
B

BattleMage

#5
Спасибо, но с "переменную типа TCanvas" это уже слишком :)
Нужно было всего лишь увеличить Label по высоте, про это я почему-то сразу не подумал ;)
 
A

Azrael

#6
Для: BattleMage
Ну, WordWrap нормально работает только если пробелы в строке встречаются более-менее часто... Мне как-то давно приходилось уродоваться с переносом строки без пробелов