Компоненты ввода и отображения текстовой информацииDelphi , Компоненты и Классы , КомпонентыАвтор: Павел Перечень компонентов ввода и отображения текстовой информации:
Помимо перечисленных компонентов отображать текстовые надписи можно непосредственно на свойстве Canvas (холст) любого компонента, имеющего это свойство (в частности , непосредственно на форме. Например:
Canvas.TextOut(60,16,'Canvas'); Тексты, отображаемые в компонентах Label, StaticText, Panel определяются их свойством Caption. Его можно задавать в процессе проектирования или изменять программно:
Label1.Caption:='Новый текст'; Если требуется отобразить числовую информацию, можно воспользоваться функциями FloatToStr и IntToStr:
Label1.Caption:='Число сотрудников: '+ IntToStr(I); Размещение всех рассматриваемых компонентов на форме определяется свойствами Top,Left, Height, Witch, Align - общими для всех оконных компонентов. Эти свойства определяют координаты компонента, его размеры и их изменение при изменении пользователем родительского компонента При изменении пользователем размеров окна приложения надо перерисовывать компоненты, изображающие текст, иначе выравнивание текста может нарушаться. Чтобы этого не было, надо в обработку события формы onResize вставить операторы, перерисовывающие компоненты методом Repaint:
StaticText1.Repaint; Размер меток Label, StaticText опередляется свойством AutoSize. Если AutoSize=true, то вертикальные и горизонтальные размеры определяются размером надписи. У метки Label свойство WordWrap при значении AutoSize=false задает возможность многострочных надписей. Окна редактирования Edit и MaskEdit Вводимый и выводимый текст содержится в свойстве Text. Его можно задавать в процессе проектирования или изменять программно. Выравнивание текста и перенос строк невозможен. Свойством AutoSize автоматически подстраивается только высота текста, но не ширина. Если текст не помещается в окне, то его можно прокручивать с помощью курсора. Для них предусмотрены типичные комбинации горячих клавиш:
Ctrl-C - копирование выделенного текста в буфер обмена ClipBoard Можно установить свойство ReadOnly=false и это не позволит редактировать текст. При использовании окон редактирования для ввода, вывода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Если вводимый текст не соответствует числу, то функция преобразования генерирует исключение EconvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения:
var A: integer; : .. try A := StrToInt(Edit1.Text); : : . except on EconvertError do ShowMessage('Вы ввели ошибочное число'); end; Свойство MaxLength определяет максимальную длину вводимого текста (при MaxLength=0 - длина не ограничена). Свойство Modified, доступное только во время выполнеия, показывает, проводило ли редактирование текста в окне (вначале устанавливается false, а затем проверяется. Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля, если установить PasswordChar=*, то при вводе пользователем текста, в окне будут появляться именно эти символы, обеспечивая секретность пароля. В компоненте MaskEdit можно задать строку маски в свойстве EditMask. Многострочные окна редактирования Memo и RichEdit. В них предусиотрены <горячие> клавиши:
Ctrl-C - копирование выделенного текста в буфер обмена ClipBoard В компоненте Memo формат(шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font компонента, помещенного на форму. Компонент RichEdit работает с текстом в формате rtf. Изменить арибуты вновь водимого текста можно свойством SelAttributes. Это свойство имеет тип TtextAttributes, которое в свою очередь имеет подсвойства: Color, Name(имя шрифта), Size, Style и др. Если поместить на форму со строницы Dialog палитры кмпонент стандартный диалог выбора шрифта FontDialog и кнопку, с помощью которой этот диалог будет вызываться, то можно связать возвращаемые даилогом атрибуты текста со свойствами текстового редактора: procedure TForm1.Button1Click(Sender: TObject); begin if FontDialog1.Execute then with RichEdit1.SelAttributes do begin Color.FontDialog1.Font.Color; Name.FontDialog1.Font.Name; Size.FontDialog1.Font.Size; Style.FontDialog1.Font.Style; end; RichEdit1.SetFocus; end; Можно присвоить сразу все свойства одного объекта другому, т.к. объекты SelAttributes и Font совместимы по типу: procedure TForm1.Button1Click(Sender: TObject); begin if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font); RichEdit1.SetFocus; end; Общие свойства этих окон редактирования:
Основное свойство окон редактирования Memo и RichEdit - Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings.
Компоненты выбор из списков ListBox, CheckListBox, ComboBox. Компоненты ListBox, ComboBox отображают списки строк. ListBox только отображает данные и позволяет выбирать. ComboBox позволяет также редактировать данные. Основное свойство обоих компонентов - Items, имеющее тип Tstrings. Его можно заполнить в процессе проектирования. Во врямя выполнения работать с этим свойством можно, пользуясь свойствами иметодами класса Tstrings - Clear, add, и др.!!!! CheckListBox выглядит как ListBox, но около каждой строки имеется индикатор, который пользователь может переключать, в том числе и программно. Все свойства компонета CheckListBox как списка аналогичны ListBox. Состояние индикаторов определяют два свойства - индексированные массивы: State и Checked, каждый элемент которых соответствует индексу строки, устанавливаемые в том числе и программно. При каждом щелчке пользователя на индикаторе его состояние изменяется, проходя в общем случае последовательно три значения: выделение(появление черной галочки), промежуточное (серое окно индикатора и серая галочка) и не выделенное ( пустое окно индикатора).Эти м трем состояниям соответствуют три значения свойства компонента State (при AllowGrayed=true): CbChecked, CbGrayed, сbUnchecked При AllowGrayed=false (значение по умолчанию) допускаются только два состояния: выделенное и не выделенное. Проверять состояние индикатора можно не только по значению State, но и по значению свойства Checked. Если Checked=true, то индикатор выбран, а если false, State равно либо CbGrayed либо сbUnchecked. Обращение к свойствам:
CheckListBox1.Checked[1]:= true CheckListBox1. State[2]:= CbGrayed Оператор for I := 0 to CheckListBox1.Items.Count - 1 do if CheckListBox1.Checked[i] then ... В компоненте CheckListBox имеется также событие onClickCheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения. Компоненты ввода и отображения текстовой информации в Delphi: Label, StaticText, Panel, Edit, MaskEdit, Memo, RichEdit, ListBox, CheckListBox, ComboBox, StringGrid. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Компоненты ::
|
||||||||||||||||||||||||||||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |