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


 

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

61469. Интерактивный урок по физике: Излучение и поглощение света атомами. Виды спектров, спектральный анализ 23.73 KB
  Цели урока: образовательные: сформировать представление о том как происходит излучение света познакомить с различными видами источников света объяснить природу линейчатого полосатого и сплошного спектров суть спектрального анализа.
61477. Урок испанского языка. Familia, descripciones fisicas 17.28 KB
  Mi tia Juana es divorciada, tiene una hija y vive en union libre con Manuel que es viudo y tiene un hijo de 9 anos Mario, entonces los hijos de tu pareja son hijastros y mi tia es madastra y Manuel es padastro.