Компоненты Delphi страницы Standart

Компонент Delphi Label




Уроки Delphi
  1.  Первая программа
  2.  Использование компонентов
  3.  События Delphi
  4.  Типы данных Delphi
  5.  Создание своих типов данных
  6.  Выражения и операторы
  7.  Работа с файлами в Delphi
  8.  Дополнительные формы
  9.  Подпрограммы в Delphi
  10. Исключительные ситуации
  11. Взаимодействие приложения с пользователем
  12. Указатели в Delphi
  13. Обзор компонентов
  14. Работа со строками
  15. Создание интерфейса
  16. Графика в Delphi
  17. Многопоточность в Delphi
  18. Динамическое создание
        компонентов
Поиск по сайту




 Это важно:
   Метод Application.ProcessMessages;

 Это полезно:
   Параметр Sender в обработчиках событий;










Бояться не надо



   Delphi компонент Label предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы. Конечно, текст надписи, отображаемый компонентом Label можно изменить, но не непосредственно, а только программно.

   Свойством компонента Label, которое используется для задания отображаемого текста, является Caption (Заголовок англ.). Вот типичные способы использования этого Delphi компонента:


Способ использования


Вид Формы


Комментарий


 Метка (пояснительный текст)  на  Форме

Использование Delphi Label


 Размещённый  на  Форме  Компонент Label  указывает  пользователю,  что  именно  он  должен  ввести  в  поле  ввода.  Для  этого  достаточно  в  Инспекторе  объектов  в  свойстве  Caption  ввести  нужный  текст.

 Вывод результатов работы  программы


Использование Delphi Label


 Пользователь  вводит  слагаемые,  программа  рассчитывает  результат  и  выводит  его  в  компонент  Label.  Вот  обработчик:

 Label1.Caption:=IntToStr(Edit1.Text)+IntToStr(Edit2.Text);

   Хотя считается, что компонент Delphi Label предназначен для отображения именно однострочного текста, это не совсем верно. Свойство WordWrap компонента Label позволяет выводить текст в несколько строк.


Устанавливаем свойство WordWrap в True и смотрим на результат. Как видим, в этом случае происходит автоматический переход на новую строку слова, не помещающегося на текущую строку. Очевидно, если растянуть компонент Label на всю Форму, он способен отобразить достаточно большой текст. Так как свойство Caption компонента Label имеет тип String, то размер текста может достигать 2 Гбайт! Свойство WordWrap компонента Label


   Свойство Font компонента Label предоставляет возможности по изменению шрифта выводимого текста. При переходе на строку Font в Инспекторе объектов появляется кнопочка, предоставляющая доступ к диалоговому окну выбора шрифта, такому же, с каким мы встречаемся работая, например, в Worde. Плюсик слева на строке Font раскрывает атрибуты шрифта для установки прямо в Инспекторе объектов:

Свойство Font компонента Delphi Label


   В комментариях возник вопрос, как отобразить с помощью метки только текст. Дело в том, что метка - это и текст, и проямоугольник фона. Так вот, как сделать так, чтобы был виден только текст, а фон не был заметен? Если фон метки совпадает по цвету с компонентом, на который она установлена, то фон метки незаметен. А если нужно разместить метку на цветной картинке (компонент Image)?
   Как раз для этого существует свойство Transparent. Установленное в True, оно делает фон метки прозрачным, и на рисунке будет виден только текст.


Обзор компонентов Delphi           В начало урока          Delphi компонент Edit  

Уроки Delphi начинающим



Вопросы и комментарии (34)      Решение задач в Delphi

Ольга, добавлено 31.01.10, 19:51:09 
Андрей! Извиняюсь, а разве не так надо написать?
Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
Автор (Андрей!), добавлено 31.01.10, 20:48:42 
Да, признаю ошибку. Ольга, Вы правильно составили сумму.
Сергей, добавлено 11.05.10, 18:09:58 
А можно както у label'а убрать фон, т.е. чтобы был только текст?
Автор, добавлено 11.05.10, 18:37:26 
А Вы сделайте цвет Формы и цвет фона у метки одного цвета (хотя изначально они и так одинаковы!):
Label1.Color:=Form1.Color;
Вот и будет заметен только текст метки. Кстати, цвет текста определяется через шрифт, то есть
Label1.Font.Color:=clRed; (например)
Сергей, добавлено 11.05.10, 20:34:37 
Нет, вы не так поняли. У меня такая проблемка: я вставил картинку и растянул, получился фон, он не одноцветный, поэтому и надо убрать фон Label\'a. Но я уже нашел ответ: надо в свойстве Transparent указать True и все.
Лейла, добавлено 9.05.11, 02:07:33 
привет! хотела спросить, как можно теперь сверх результата(допустим 579) еще цифры записывались!? 579 сохранялось и прибавилось другое значение... надеюсь ясна объяснила? )))
Автор, добавлено 9.05.11, 05:28:49 
Ну,

Label1.Caption:=Label1.Caption+'Text';

Или объясните ещё яснее...
Лейла, добавлено 9.05.11, 13:19:49 
(((( нет, не то... нужно так чтобы он сохранял изменение...пример: ClientDataSet1.Post; //сохраняем изменения... ))))
Лейла, добавлено 9.05.11, 13:22:51 
мне нужно вывести общий счет... чтобы все на Label записывалось!
Автор, добавлено 9.05.11, 14:12:23 
1. На ваш вопрос я ответил (как сверх результата чтобы ещё цифры записывались).
2. Вот как правильно задавать вопрос: сначала ваш вариант, затем указать, что в нём не выходит.
Это я к тому, что из одного оператора всё равно не ясно что вы хотите.
Кош, добавлено 16.06.11, 19:32:17 
Инфа отличная, но это мы всё знаем. У меня вот вопрос. Можно ли в label, в уже набраном тексте выделить отдельное слово?
Автор, добавлено 16.06.11, 20:12:23
Я бы сказал что нет, но не хочу сразу ограничивать полёт вашей фантазии. А вдруг? )))
Кош, добавлено 16.06.11, 21:03:47 
Я с вами согласен Автор. С фантазией у меня всё отлично.
P.S Можно обойтись тем же компонентом label, с теми же параметрами с помощью накладывания. лейблов друг на друга
Автор, добавлено 16.06.11, 21:31:40 
Не совсем понятно, что понимается под накладыванием. Один большой текст, на который в нужном месте кладётся невидимый Label и в нужный момент показывается? Я бы воспользовался двумя-тремя Label'ами, поставленными не над, а вслед друг за другом.
Кош, добавлено 16.06.11, 21:46:27 
Согласен с вашим вариантом. Мой label идёт с тем же определённым словом, но только с другим цветом.
P.S Благодарю вас Автор.
Автор, добавлено 16.06.11, 21:57:10 
До сих пор не уверен, что мы поняли друг друга. Ставится три Label'а одинакового цвета, а в нужный момент цвет нужного меняется, чтобы слово выглядело выделенным. Возможно, также нужно поменять и цвет шрифта.
Кош, добавлено 19.06.11, 10:39:42 
Здравствуй Автор. Скажите пожалуйста можно ли в label выровнять текст с обеих сторон?
Автор, добавлено 19.06.11, 12:09:19 
Ну я понимаю - в таблице разместить текст в центре колонки. А в Label вы что хотите выровнять? Поясните пожалуйста.
Аноним, добавлено 17.11.11, 19:22:18 
Как сделать так чтобы при создание формы label не отображался,а после нажатия кнопки отображались?может какое то свойство есть у label
Автор, добавлено 17.11.11, 19:30:36 
Свойство Visible
Аноним, добавлено 6.02.12, 09:30:44 
ПОМОГИТЕ ПЛИЗ.В ДЕЛЬФИ НАДО СДЕЛАТЬ ЗАДАЧУ.Y=Z*Z ГДЕ Z ПЕРЕМЕННАЯ ОТ 1 ДО 8.ВЫВЕСТИ ОТВЕТ ИСПОЛЬЗУЯ КНОПКУ.
Автор, добавлено 6.02.12, 10:05:29 
Мне оно надо? Ничего интересного для меня. А вам учиться надо, а не ответы клянчить.
Евгения, добавлено 18.02.12, 13:13:11 
Здравствуйте, Автор. У вас замечательный сайт. :)
Если можно, подскажите, пожалуйста, как придать тексту в label свойство "полужирный" без использования инспектора объектов. В смысле, он полужирный становится после нажатия на кнопку. Как это прописать?
Автор, добавлено 18.02.12, 13:32:14 
Во-первых, открыв в Инспекторе Объектов свойство Font, можно увидеть, что там не полужирный, а жирный стиль. Стиль это множество свойств. Соответственно, нужно добавить в текущее множество свойство "жирный":

Label1.Font.Style:=Label1.Font.Style+[fsBold];
Евгения, добавлено 18.02.12, 15:42:57 
Спасибо большое.)
Борис, добавлено 15.03.12, 18:37:53 
Здравствуйте.Вопрос такой-на первой форме в эдит вводится слово, после чего, по нажатию кнопки открывается новая форма. В ней лабел присвоено значение из эдита первой формы. Как сделать, чтобы текст выводился во второй форме СРАЗУ с появлением второй формы, а не после нажатия на лабел, а то не красиво выглядит - появилась форма - а там Label, нажал, появился нужный текст...
Автор, добавлено 15.03.12, 19:48:08
Form2.Label1.Caption:=Form1.Edit1.Text; в обработчике OnActivate второй Формы.
Борис, добавлено 15.03.12, 23:25:46 
Спасибо большое :)
Борис, добавлено 16.03.12, 13:49:42 
Ещё один вопрос,не посоветуете какую-нибудь книгу по Delphi Желательно ту,по которой разрабатывался этот ресурс,чтобы как можно полнее описывались компоненты
Автор, добавлено 16.03.12, 14:06:52 
Одной книгой не обойдёшься. У меня - несколько. Зайдите в магазин, и выберите потолще - авось больше информации. Например, А.Я. Архангельский "Программирование в Delphi 7". Это учебник. А есть и справочник его же - той же толщины. И в инете есть информация, нужно только правильно запрос сформулировать. А вообще всё только опытом нарабатывается.
Любовь, добавлено 18.04.12, 20:11:31 
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Math, Grids;

type
  TForm1 = class(TForm)
  Edit1: TEdit;
  Edit2: TEdit;
  Button1: TButton;
  Label1: TLabel;
  Label2: TLabel;
  Memo1: TMemo;
  StringGrid1: TStringGrid;
  Label3: TLabel;
  procedure Button1Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var
  x,y,z: Real;

procedure TForm1.Button1Click(Sender: TObject);
begin
  x:=StrToFloat(Edit1.Text);
  y:=StrToFloat(Edit2.Text);

  if x=0 then
  begin ShowMessage('Значение X не может быть равно 0');
  end

  else
  begin
  z:=power(x,2)*power(cos(y),3)+(sin(x))/x;
  Memo1.Lines.Add(FloatToStr(z));
  Stringgrid1.Cells [0,0]:= FloatToStr(z);

  end;
end;

end.

Подскажите пожалуйста как можно сделать чтобы Label3 тоже давал ответ?
Автор, добавлено 18.04.12, 20:37:31 
Label3.Caption:=FloatToStr(z);

Разве не это выше написано? Ну, посмотрю, может нужно что-то изменить для доходчивости...
Алекс, добавлено 6.11.13, 17:34:59 
Здравствуйте! как сделать так, чтоб при выводе в лэйбл длиииииной строки она автоматически переносилась, а не появлялся скролл?
Автор, добавлено 6.11.13, 17:45:46 
Используйте свойство WordWrap=True
При этом будет многострочный вывод. Соответственно, размер области Label нужно растянуть по вертикали на сколько нужно.
Оставить комментарий:

Имя  

Текст комментария