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 !!!!


 

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

41357. Изучение зеркального гальванометра 208.5 KB
  Изучение зеркального гальванометра Изучение внутреннего сопротивления. r – внутреннее сопротивление гальванометра. Если при изменении положения ключа l показания гальванометра не меняются значит через отрезок B ток не течёт  потенциалы в точках А и В равны этого можно достичь меняя сопротивление R  R = r. Определение средней чувствительности гальванометра.
41358. Измерение сопротивления гальванометра 188 KB
  Цель работы: Определение внутреннего сопротивления гальванометра. Определение средней чувствительности и градуирование гальванометра. Измерение сопротивления гальванометра. =1ом ом ом 10000 500 10600 450 11200 400 11800 350 12600 300 I – сила тока в цепи гальванометра эдс источника питания 2В r сопротивление гальванометра.
41359. Исследование магнитооптического зеркального гальванометра 500.5 KB
  Лабораторная работа №138 Исследование магнитооптического зеркального гальванометра . Измерение сопротивления гальванометра. На схеме: При R=R получаем RG=R если при замыкании и размыкании ключа показания гальванометра не меняются. Определение средней чувствительности и градуировка гальванометра.
41361. Работа ионизационного манометра 266 KB
  Цель работы: Изучить работу ионизационного манометра зависимость ионного тока от изменения различных параметров ток накала напряжение на сетке между катодом и анодом. Таблица зависимости ионного тока от тока накала. мА 300В 50В 260В 50В 300В 33В 29 665 650 651 28 655 642 649 20 631 635 632 18 628 630 628 14 620 622 622 9 609 615 609 5 590 596 589 0 540 540 522 Таблица зависимости ионного тока от напряжения между катодом и анодом . 13 33В 12 50В 13 50В 75 30 5 70 30 65 29 45 28 60 28 ...
41362. Изучение работы форвакуумного насоса 99.5 KB
  Цель работы: определить предельный вакуум и скорость откачки ротационного насоса. Форвакуумная установка: где Б1 – баллон; Б2 – калибровочный баллон (Vк = 2,4 л.); К1 – К7 – краны; РМ – разница давлений (мм.масл.ст.). Для нахождения объема установки используем следующую формулу:
41363. Градуирование электроизмерительных приборов с помощью потенциометра собранного из двух магазинов сопроти 159 KB
  Градуирование электроизмерительных приборов с помощью потенциометра собранного из двух магазинов сопротивления Приборы приспособления: вольтметр магазины сопротивлений – нормальный элемент – реостаты ключи– гальванометр батарея вольтметр.