Делфи label перенос строки

Делфи label перенос строки

На этом шаге мы рассмотрим компонент TLabel

Компонент TLabel (Надпись) используется для отображения текста в форме , который нельзя изменять непосредственно через графический интерфейс пользователя, хотя в программе с помощью надписи можно выводить любой текст, что часто и делается.

Рассмотрим свойства компонента TLabel .

Метка Label может отображать длинную текстовую строку своего свойства Caption в виде нескольких строк: для этого установите в AutoSize значение False , задайте достаточно большие размеры метки и поместите в Wordwrap значение True . Для отображения действительно многострочного текста используйте компоненты TMemo и TRichEdit .

Попробуйте реализовать это сами. Если не сможете, то текст этого примера можно взять здесь.

На следующем шаге мы рассмотрим компонент TEdit

Программированию нельзя научить, можно только научится

Главная » Уроки по ООП » Урок 9. Компоненты ввода-вывода и редактирования.

Font — шрифт отображения текста в компонентах

Во всех компонентах ввода и отображения текстовой и цифровой информации шрифт текста, его размер, стиль (жирный, курсив и т.п.) определяются свойством Font. Это свойство в свою очередь является объектом типа TFont, который имеет множество подсвойств, устанавливаемых в процессе проектирования или программно во время выполнения приложения.
Основные свойства шрифта следующие:

Определяет набор символов шрифта.
Каждый вид шрифта, определяемый его именем (свойство Name), поддерживает один или более наборов символов. Для шрифтов, поддерживающих несколько наборов символов, важно правильно задать Charset.
В Delphi предопределено много констант, соответствующих стандартным наборам символов. Отметим только одно значение — 204, обозначаемое также константой RUSSIAN_CHARSET, которое соответствует символам кириллицы. По умолчанию в объектах типа TFont задается значение Charset, равное 1 или DEFAULT_CHARSET.

Color

Определяет цвет текста.

Height

Характеризует высоту шрифта в пикселях.

Name

Pitch

Определяет способ установки ширины символов. Возможные значения:
fpDefault — ширина устанавливается равной по умолчанию, т.е. описанной в шрифте заданного вида Name.
fpFixed — установка одинаковой ширины всех символов
fpVariable — установка различной ширины символов.
Задание значения отличного от fpDefault заставляет Windows искать наилучший способ удовлетворить всем заданным характеристикам шрифта.

Size

Размер шрифта в кеглях (пунктах).

Style

Стиль шрифта: полужирный — fsBold, курсив — fsItalic, подчеркнутый — fsUnderline, перечеркнутый — fsStrikeout.

Значения свойств объекта Font можно задавать все сразу методом Assign, который записывает значения всех свойств одного объекта в другой.

Отображение текста в надписях компонентов Label, StaticText

Тексты, отображаемые в компонентах, определяются значением их свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например:

Во всех компонентах цвет фона определяется свойством Color, а цвет надписи — подсвойством Color свойства Font. Например, можно задать цвет фона равным clWhite — белый.
Компонент StaticText имеет свойство BorderStyle, определяющее рамку текста — бордюр.
Размер определяется свойством AutoSize.
Если AutoSize=true, то вертикальный и горизонтальный размеры компонента определяются размером надписи. Если AutoSize=false, то выравнивание текста внутри компонента определяется свойством Alignment, которое позволяет выравнивать текст по левому краю, правому краю или центру клиентской области метки.

Перенос текста в Label по строкам
WordWrap=true допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку.
При этом свойство AutoSize = false (чтобы размер компонента не определялся размером надписи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк.
В метке StaticText перенос длинного текста осуществляется автоматически, если AutoSize=false и размер компонента достаточен для размещения нескольких строк.

Задание 1. Рассмотреть свойства компонента Label, создав следующие две формы. Можно все выполнить на одной форме.

Рисунок 1.

Окна редактирования Edit и MaskEdit

Внешнее оформление окон редактирования определяется свойством BorderStyle.
Вводимый и выводимый текст содержится в свойстве Text. Выравнивание текста невозможно. Перенос строк тоже невозможен. Текст, не помещающийся по длине в окно, просто сдвигается и пользователь может перемещаться по нему с помощью курсора.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Его имеет смысл задавать равным true в случаях, когда при переключении в данное окно пользователь будет скорее заменять текущий текст, чем исправлять его.

Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Например, если в окне имеется текст «выделение текста» и в нем пользователь выделил слово «текста», то SelLength = 6, SelStart = 10 и SelText = ‘текста’. Если выделенного текста нет, то свойство SelStart просто определяет текущее положение курсора.

Окна редактирования можно использовать и просто как компоненты отображения текста. Для этого надо установить в true их свойство ReadOnly и целесообразно установить AutoSelect в false.

Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength=0, то длина текста не ограничена. В противном случае значение MaxLength указывает максимальное число символов, которое может ввести пользователь.

Свойство Modified, доступное только во время выполнения, показывает, проводилось ли редактирование текста в окне. Если вы хотите использовать это свойство, то в момент начала работы пользователя с текстом Modified надо установить в false. Тогда при последующем обращения к этому свойству можно по его значению (true или false) установить, было или не было произведено редактирование.

Окно ввода пароля

Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. По умолчанию значение PasswordChar равно #0 — нулевому символу. В этом случае это обычное окно редактирования. Но если в свойстве указать иной символ (например, символ звездочки «*»), то при вводе пользователем текста в окне будут появляться именно эти символы, а не те, которые вводит пользователь. Тем самым обеспечивается секретность ввода пароля.

Компонент MaskEdit (на стр. Additional)

Он отличается от Edit тем, что в нем можно задать строку маски в свойстве EditMask. Маска состоит из трех разделов, между которыми ставится точка с запятой:

  1. записываются специальным образом символы (см. таблицу), которые можно вводить в каждой позиции, и символы, добавляемые самой маской;
  2. записывается 1 или 0 в зависимости от того, надо или нет, чтобы символы, добавляемые маской, включались в свойство Text компонента;
  3. указывается символ, используемый для обозначения позиций, в которых еще не осуществлен ввод.

Прочитать результат ввода можно или в свойстве Text, которое в зависимости от вида второго раздела маски включает или не включает в себя символы маски, или в свойстве EditText, содержащем введенный текст вместе с символами маски.

Для по­строения маски используются специальные символы:
! Поле заполняется слева направо
0 Цифра (0-9) или знак (+/-) обязательны
__ Автоматически вставляет пробел в указанной позиции
> Все символы справа от указанной позиции переводятся в верхний регистр

  • Инструкционная карта
  • Лекция
  • Контроль
  • Доброго времени суток, Уважаемые!
    Проблема такая, в репорте весь текст непомещается на одном Label"е, нужно сделать перенос текста с одного Label"a на другой, т.е. текст на одном Label"е начинается, а на другом заканчивается. Спасибо!


    Lion ( 2003-03-02 09:13 ) [1]

    Неужели никто не знает?? 🙁


    Anatoly Podgoretsky ( 2003-03-02 09:56 ) [2]

    Не понятно, что ты хочешь сделать, разделить строку на две, тогда Copy, что бы одна строка занимала несколько строк, тогда настройка свойств.
    Можешь привести пример или выразись понятнее. Обычно достаточно описать задачу, а не решение.


    Song ( 2003-03-02 09:59 ) [3]

    Да просто поставь у QRLabel AutoSize:=False WordWrap:=True

    дальше расширь его высоту на 2 строчки или сколько там тебе надо и пиши туда текст, он сам перенесётся по строкам.


    Lion ( 2003-03-02 10:04 ) [4]

    Нет, дело не в этом, это не подходит, т.к. после перехода текста на 2-ю строчку, он находится слишком близко друг от друга, нужно сделать строчки как в школьной тетрадке, расстояние между строчками должно быть немного больше..


    Lion ( 2003-03-02 10:54 ) [5]

    Суть вот в чем, пишется длинный текст, примерно строчек на 5 и под каждой строчкой идет подпись маленьким шрифтор, и если поставить AutoSize:=False WordWrap:=True , то обычный текст будет сливаться с подписью (маленьким шрифтом), расстояние между строчками маленькое, для этого и нужно сделать не один Label , а несколько, и текст который не помещается в первом, переносится на второй и т.д.
    Так вот, как можно решить эту проблему.


    Иван Брылёв ( 2003-03-02 11:46 ) [6]

    Все, что приходит в голову — считать кол-во символов в Label. Например, у тебя кол-во символов N, LongString — та самая длинная строка. И тогда
    if Length(LongString) > N then
    begin
    Label1.Caption:=Copy(LongString, 1, N);
    Label2.Caption:=Copy(LongString, N+1, N);
    .
    LabelM.Caption:=Copy(LongString, M*N + 1, N);
    end;

    Ну вот в таком духе. Понятно, что число символов может зависеть и от шрифта. Но это уже другая история.


    Lion ( 2003-03-02 19:16 ) [7]

    Вот, что и требовалось, большое СПАСИБО. 🙂

    Charset
    Ссылка на основную публикацию
    Где находится облачное хранилище на андроиде самсунг
    Не все владельцы мобильных устройств Samsung знают, что в их распоряжении есть полезный сервис Samsung Cloud. В данной статье мы...
    Во время записи произошла неопознанная ошибка obs
    Если вы хотите начать потоковую передачу своим бесчисленным неиспользованным и в настоящее время неизвестным поклонникам по всему миру, Open Broadcast...
    Возобновить работу системы или удалить данные
    После включения, через некоторое время появляется надпись на экране: Загрузчик возобновления Windows Последняя попытка возобновления работы системы из прежнего места...
    Где находятся сервера steam
    Please complete the security check to access youhack.ru Why do I have to complete a CAPTCHA? Completing the CAPTCHA proves...
    Adblock detector