77976

Компоненты ввода-вывода информации

Лекция

Информатика, кибернетика и программирование

Свойство IsMasked: Boolean доступно только для чтения и содержит True, если строка шаблона задана. Свойство EditText: string содержит текст до наложения на него маски шаблона (т. е. то, что ввел пользователь), а свойство Text: String может (в зависимости от шаблона см. ниже) содержать либо исходный текст, либо результат наложения на него маски шаблона.

Русский

2015-02-05

125 KB

1 чел.

Компоненты  ввода-вывода информации

Для ввода и вывода информации используются следующие компоненты: Label, Edit, Memo (на странице Standard, рис 11), MaskEdit, LabelEdit (на странице Additional, рис 12).

Рис 11 - Страница Standard

Рис 12 -  Страница Additional

Компоненты класса TLabel (метка) -  предназначены для размещения на форме различного рода текстовых надписей.

Свойства представлены в таблице 5:

Таблица 5 -  Свойства компоненты Label

Название

Назначение

Name:

string

Наименование компоненты (по умолчанию Label1)

Caption:string

Определяет текст внутри компоненты

Color: перечесл.

Определяет цвет  фона (прилож 1)

Font: вложененный

Определяет цвет, стиль, размер шрифта (прилож 1)

Alignment : перечесл

Определяет выравнивание текста по горизонтали относительно границ компонента (для AutoSize=False):

AutoSize: Boolean;

Указывает, будет ли метка изменять свои размеры в зависимости от помещенного в ее свойство Caption текста: True - будет

Transparent: Boolean;

Определяет прозрачность фона метки. Если False, фон закрашивается собственным цветом Color, в противном случае используется фон родительского компонента

Wordwrap: Boolean;

Разрешает/запрещает разрыв строки на границе слова. Для вывода многострочных надписей задайте AuroSize=False, wordwrap=True и установите подходящие размеры метки

Visible : boolean

Определяет видимость компоненты

Компоненты класса TEdit  -  предназначены для ввода и отображения строковой информации (однострочный редактор текста). С его помощью можно вводить и/или отображать достаточно длинные текстовые строки.

Свойства, методы и события  представлены в таблице 6:

Таблица 6 -  Свойства, методы и события  компоненты Edit

Название

Назначение

Свойства

Name:string

Наименование компоненты (по умолчанию Edit1)

Text : string

Содержит весь текст

Color: перечесл.

Определяет цвет  фона (прилож 1)

Font: вложен.

Определяет цвет, стиль, размер шрифта (прилож 1)

AutoSize: Boolean;

Если содержит True и BorderStyle=bsSingle, высота компонента автоматически меняется при изменении свойства Font. Size

BorderStyle : перечесл

Определяет стиль обрамления компонента:

bsNone - нет обрамления; bsSingle - компонент

обрамляется одной линией

CharCase : перечисл

Определяет автоматическое преобразование высоты букв:

ecNormal - нет преобразования;

ecUpper Case - все буквы заглавные;

ecLowerCase - все буквы строчные.

MaxLength: Integers;

Определяет максимальную длину текстовой строки. Если имеет значение 0, длина строки не ограничена

PasswordChar: Char

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

ReadOnly: Boolean

Если содержит True, текст не может изменяться

Методы

Сlear

Удаляет весь текст

Методы

SetFocus

Передача фокуса компоненте

SelectAll

Выделяет весь текст

События

OnChange

Возникает при изменении значения в компоненте

OnClick

Возникает при нажатии кнопки мыши

OnKeyDown (Up)

Возникает при нажатии (опускании) клавиши

OnKeyPress

Возникает при нажатии клавиши

OnMouseDown (Up)

Возникает при нажатии (опускании) кнопки мыши

Компоненты класса TMemo  -  предназначены для ввода,  редактирования и отображения информации более одной строки (многострочный редактор текста). С его помощью можно вводить и/или отображать достаточно длинный текст.

Свойства BorderStyle, HideSelection, MaxLentgh, , OnChange, ReadОnly,  и аналогичны соответствующим свойствам класса TEdit. Свойство WordWrap аналогично свойству TLabel. WordWrap.

Свойства, методы и события  представлены в таблице 7:

Таблица 7 -  Свойства, методы и события  компоненты Memo

Название

Назначение

Свойства

Name:string

Наименование компоненты (по умолчанию Memo1)

Lines : Tstring

Представляет собой пронумерованный набор строк (нумерация начинается с нуля). Содержит строки текста

ScrollStyle: перечисл

Определяет наличие в окне редактора полос прокрутки: ssNone - нет полос;

ssHorizontal -есть горизонтальная полоса;

ssVertical - есть вертикальная полоса;

ssBoth - есть обе полосы

Методы

Count

Определяет количество строк в тексте

Clear

Удаляет весь текст

Add

Добавляет новую строку в текст

Delete

Удаляет определённую строку из текста

LoadFromFile :

TString.

Для загрузки в компонент текста из файла

SaveToFile :

TString.

Для сохранения текста в файле

TMaskEdit - специальный редактор

Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: String. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit.

Свойство IsMasked: Boolean доступно только для чтения и содержит True, если строка шаблона задана. Свойство EditText: string содержит текст до наложения на него маски шаблона (т. е. то, что ввел пользователь), а свойство Text: String может (в зависимости от шаблона см. ниже) содержать либо исходный текст, либо результат наложения на него маски шаблона.

Шаблон состоит из трех частей, отделенных друг от друга символами “;”. Первая часть задает маску ввода, вторая - это символ “О” или “I”, определяющий, записывается ли в Text результат наложения маски или исходный текст (“О” - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов (текст в редакторе может содержать символы маски; например, для ввода семизначного номера телефона текст в начале ввода может выглядеть так: (095)ХХХ-ХХ-ХХ где доступные для ввода пользователя поля указаны символом “X” -последним символом в шаблоне).

Маска состоит из описателей полей ввода, специальных символов и литералов. Описатель указывает, какой именно символ может ввести пользователь в данное поле (описатель всегда описывает поле единичной длины, т. е. рассчитанное на ввод одного символа). Литерал вставляется в текст, показываемый в окне редактора, но при вводе курсор перескакивает через литерал и не дает пользователю возможности изменить его. Литералами считаются любые символы, кроме описателей полей и специальных символов, а также любой символ, которому предшествует символ “\”. Специальные символы формируют дополнительные указания редактору.

Описатели полей ввода представлены в следующей таблице 8:

Таблица 8 - Описатели полей ввода

Символ

Поле...

L

должно содержать букву

с

может содержать любой символ

1

может содержать букву

0

должно содержать цифру

А

должно содержать букву или цифру

9

может содержать цифру

а

может содержать букву или цифру

# может содержать цифру, “+”, “-”

С

должно содержать любой символ

Примеры (таблица 9):

Таблица 9 – Примеры описаний шаблонов

Маска

Вид в редакторе

Свойство EditText

Свойство Text

(095)000-0000;0;х

(095)ххх-хххх

123456

1234567

(095)0000000;1;х

(095)ххх-хххх

7 12345

(095)1234567

(095)\0\00-0000;1;

(095)00.-....

1234567

(095)0012345

TLabelEdit - однострочный редактор с меткой.

Представляет собой удобную комбинацию однострочного редактора с меткой. Надпись в метке определяет свойство EditLabel.

Для того чтобы использовать компоненты ввода/вывода  необходимо знать  типы данных (приложение 3) и функции преобразования этих данных. В таблице 10 представлены функции преобразования.

Таблица 10 -  Функции преобразования

Наименование

Описание работы функции

FloatToStr

Конвертирует значение типа Extended в значение типа string.

FloatToStrF

Конвертирует значение типа Extended в строку, используя заданный формат.

FloatToText

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

FormatFloat

Конвертирует значение типа Extended в строку, используя заданную маску.

StrToFloat

Преобразовывает строковое представление числа с плавающей запятой в значение типа Extended.

TextToFloat

Преобразовывает строковое представление числа в значение типа Currency или Extended.

IntToStr

Возвращает строковое представление целого числа.

StrToInt

Преобразовывает строковое представление десятичного или шестнадцатеричного целого числа в значение типа Integer.

StrToInt64

Преобразовывает строковое представление десятичного или шестнадцатеричного целого числа в значение типа Int64.

Пример1: Найти сумму 2 чисел – целого и вещественного.

Загрузить Delphi (ПУСК  -> Программы  -> BorlandDelphi6  -> Delphi6.

Открыть новое приложение File| New|Application , если новое приложение не создалось.

Перенесите на пустую форму, кнопку TButton со страницы Standard палитры компонент. Затем щелкните курсором  мыши в нужном месте формы. На форме появится кнопка, Delphi присвоит имя по умолчанию – Button1.

Так же перенесите 2 компоненты TEdit, 4 -  TLabel.

Выделите на форме компонент Button1 – кнопку. Перейдите в Инспектор Объектов и измените свойство Caption (надпись), которое по умолчанию равно Button1 на «Выполнить».

Аналогично измените свойство Caption у компонет Label на : Label1  >> «Число1» , Label2  >> «Число 2», Label3 >> «Результат», а у компоненты Labe4 свойство Caption  удалить.

Удалите в Edit1 и в  Edit2  значение в свойстве Text.

Расположите компоненты как на рисунке 13

Рис. 13 – Пример приложения

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

procedure TForm1.Button1Click(Sender: TObject);

var a :integer;

   b,c :real;

begin

   a:= StrToInt(Edit1.text);        {ввод числа из компонеты Edit}

   b:=StrToFloat (Edit2.Text);  {и перевод из строки в число}

   c:=a+b;

   Label4.Caption:=FloatToStr(c);  {вывод результата в Label4}

end;

Запустите приложение Run | Run F9.

Введите числа в поля «Число 1» и «Число 2», а затем нажмите кнопку «Выполнить».

Для завершения приложения нажмите «Х» на заголовке формы.

Сохраните приложение File| Save Project as  , создайте свою папку и нажмите «Сохранить»

Существует ряд стандартных функций и процедур для работы со строками.

Функция Length(s) выдает длину строки s.

Функция Concat(s1,s2,..,sn) возвращает строку s1+s2+..+sn.

Функция Copy(s,p,k) возвращает фрагмент строки s, который начинается в позиции p и имеет длину k.

Функция Pos(s1,s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли.

Процедура Delete(s,p,k) удаляет из строки s фрагмент, который начинается в позиции p и имеет длину k.

Процедура Insert(s,s1,p) вставляет в строку s подстроку s1, начиная с заданной позиции p.

В Delphi  можно  производить преобразования числовых значений в строковые и наоборот. Для этого используются процедуры Str(X:n:d,S) и Val(S,X,e). Первая получает их числа X строку S с изображением этого числа, в которой не менее n символов и из них d знаков после запятой. Параметры n и d необязательные. Вторая процедура получает из строки S число X. При успешном результате e=0.

Пример 2: Заменить в строке «А» на «О».

Переместить  на форму компоненты : 2 Edit, Label, Button1 и измените значения их свойств.

Расположите компоненты как показано на рисунке 14 (это размещение не обязательное, но предпочтительное).

Ппри двойном нажатии на кнопке введите текст программы в процедуру обработки нажатии на кнопке:

procedure TForm1.Button1Click(Sender: TObject);

var s1 :string;    i : integer;

begin

   s1:= Edit1.text; {ввод строки в переменную s1}

   

for i:=0 to length(s1) do

      begin

        if s1[i]='А' then

          begin

            delete (s1 , i , 1);

            insert('О' , s1 , i);

          end;

      end;

   Edit2.Text:=s1; {вывод новой строки}

end;

Рис. 14 - Пример приложения

Пример 3: Найти сумму 5 чисел в одномерном массиве.

Разместите на форме компоненты Memo1,  2 - Label, Button, Edit, как на рисунке 15.

Рис. 15 - Пример приложения

В свойстве Memo Lines| TString…  удалить текст «Memo1» и «OK». И при нажатии на кнопке опишите процедуру:

procedure TForm1.Button1Click(Sender: TObject);

var a: array [0..9] of integer;

       sum, i:integer;

begin

sum:=0;

     for i:=0 to 4 do

      begin

          a[i]:=StrToInt(Memo1.Lines[i]);

          sum:=sum+a[i];

      end;

Edit1.Text:=IntToStr(sum);

end;

Вводите все значения в Memo1 !!!!


 

А также другие работы, которые могут Вас заинтересовать

25920. Электромеханические реле времени. Тепловые реле. Принцип работы. Область применения 24 KB
  Электромеханические реле времени. Тепловые реле. реле времени. Схема защиты реле автоматикичасто требуется выдержка времени когда выдержка устанавливается для предотвращения срабатывания защиты от пусковых токов.
25921. Реле тока и реле напряжения. Принцип работы. Область применения 24.5 KB
  Реле тока и реле напряжения. Реле тока. Реле предназначены для отключения неприоритетных цепей при превышении допустимой величины потребляемого тока. Возможно использование реле для защиты цепей и источников питания от перегрузки по току и короткого замыкания Принцип работы: Потенциометром на передней панели изделия устанавливаем величину тока в цепи при превышении которого реле отключает цепь.
25922. Газовое реле. Принцип работы. Область применения 44 KB
  Использование масла решает проблему охлаждения однако создаёт новую проблему связанную с повышенной опасностью эксплуатации электрического аппарата. В случае повреждения токоведущих частей например при коротком замыкании между обмотками трансформатора масло начинает нагреваться происходит усиленное газообразование резко поднимается давление масла в баке что может привести к взрыву сопровождающемуся пожаром. Принцип действия [Расширитель масляного бака В процессе эксплуатации аппарата уровень масла в баке может меняться. Расширитель...
25923. Промежуточные реле. Указательные реле. Принцип работы. Область применения 22.5 KB
  Промежуточные реле. Указательные реле. Реле промежуточные предназначены для коммутации электрических нагрузок в цепях переменного и постоянного тока в схемах устройств релейной защиты противоаварийной и системной автоматики электроэнергетических объектов промышленной аппаратуре различного назначения и являются комплектующими изделиями. Могут использоваться в качестве вспомогательных реле в цепях постоянного тока.
25924. Магнитоуправляемые герметизированные контакты (герконы). Сухие язычковые герконы. Смоченные (жидкометаллические) язычковые герконы. Герконовые реле. Конструктивные особенности. Область применения 21 KB
  Герконовые реле. МК помещенный в герметизированный баллон называется герконом Герконовые реле могут содержать один или несколько МК; одну или несколько обмоток или шин; поляризующие постоянные магниты ПМ; дополнительные ферромагнитные детали играющие роль магнитопровода кожуха магн. На основе МК создают и многоцепные реле располагая например в обмотке несколько коммутационных элементов. Существуют конструкции герконовых реле и с внешним по отношению к обмотке расположением МК.
25925. Контроллеры, командоаппараты, реостаты. Определения. Область применения 33 KB
  КОМАНДОАППАРАТ электрический аппарат для различного рода переключений электрических цепей в системах управления объектами или технологическими процессами. Простейшие командоаппараты кнопки управления концевые выключатели контроллеры. Командоаппараты предназначены для автоамтического дистационного управления электроприводами в качестве путевых конечных выключателей где требуется особая точность и надежность управления.Командоаппараты рассчитаны для работы в цепях управления постоянного тока напряжением до 440 В и до 380 В переменного...
25927. Контакторы электромагнитные. Назначение контакторов. Контакторы постоянного и переменного тока. Конструктивные особенности. Выбор контакторов 42 KB
  Контакторы постоянного и переменного тока. Классификация электромагнитных контакторов Общепромышленные контакторы классифицируются: по роду тока главной цепи и цепи управления включающей катушки постоянного переменного постоянного и переменного тока; по числу главных полюсов от 1 до 5; по номинальному току главной цепи от 15 до 4800 А; по номинальному напряжению главной цепи: от 27 до 2000 В постоянного тока; от 110 до 1600 В переменного тока частотой 50 60 500 1000 2400 8000 10 000 Гц; по номинальному напряжению включающей...
25928. Магнитные пускатели. Назначение пускателей. Схема включения. Выбор пускателей 24.5 KB
  Магнитные пускатели. Характеристики пускателей Современные магнитные пускатели классифицируются: по назначению нереверсивные реверсивные наличию или отсутствию тепловых реле и кнопок управления степени защиты от воздействия окружающей среды уровням коммутируемых токов рабочему напряжению катушки. Магнитные пускатели применяются для управления электрическими нагрузками в диапазоне мощностей от 75 до 80 кВт. Чаще всего пускатели располагают максимальной защитой от перегрузок недопустимой продолжительности и от токов повышенной...