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


 

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

85861. Разработка проекта системы наземного телевизионного вещания на территории Алексеевского района Белгородской области 9.69 MB
  Наиболее эффективным путем обеспечения удовлетворительного качества приема являются: выбор оптимального места установки приемной антенны и типа антенной системы; применение других способов подачи телевизионных программ радиорелейные линии волоконно-оптические линии связи спутниковые...
85863. Разработка проекта системы наземного телевизионного вещания на территории посёлка «Дубовое» Белгородской области 5.36 MB
  Основной целью развития телерадиовещания до 2015 года является обеспечение населения многоканальным вещанием с гарантированным предоставлением обязательных общедоступных телевизионных каналов и радиоканалов заданного качества, что позволит государству реализовать функции по обеспечению...
85865. Эффективное решение по ремонту и техническому обслуживанию оборудования с минимальными затратами для предприятия 243.35 KB
  Роль механика на современном деревообрабатывающем предприятии разнообразна и чрезвычайно ответственна требует отличного знания технологического оборудования его возможностей умения квалифицированно разрабатывать систему технического обслуживания и ремонта и своевременно реализовывать ее. Кроме ремонта существующего оборудования механику необходимо выполнять и множество других задач: совершенствовать конструкции машин модернизировать их разрабатывать нестандартное оборудование средства механизации и автоматизации разбираться в...
85866. Пяти этажный, пятнадцати квартирный жилой дом 218 KB
  Хранение плодородного грунта должно осуществляться в соответствии с ГОСТ 17.0285 и ГОСТ 17. Ведомость ссылочных и прилагаемых документов Обозначение Наименование Примечание ГОСТ 1358085 Фундаментные плиты ГОСТ 1357978 Бетонные блоки ГОСТ 94884 Перемычки бетонные ГОСТ 662988 Двери деревянные внутренние для жилых и общественных зданий ГОСТ 2459881 Двери деревянные наружные для жилых и общественных зданий ГОСТ 1628986 Окна и балконные двери с тройным остеклением для жилых и общественных зданий СЕРИЯ 1. Фундаменты ленточные сборные...
85867. Проектирование привод главного движения горизонтально фрезерного станка модели FU315 1.06 MB
  Фторопластовое покрытие направляющих стола и стойки обладает хорошими антифрикционными свойствами и антизадирной способностью что позволяет обеспечивает стабильность точностных параметров в течение длительного времени. Наличие механизма зажима стола при попутной подаче в продольной координате обеспечивает необходимую жесткость и исключает вибрацию. Высокие точностные характеристики фрезерного станка FU315 позволяют производить детали самого высокого качества; например неплоскостность поверхности стола на всей длине не превышает 16 мкм....
85868. Розробка лінії для пакування печива у термозварювальну плівку 2.31 MB
  Лінія складається із двох пристроїв, а саме автомат для фасування печива у термозварювальну плівку і пристрій для укладання пачок з печивом у ящики. При роботі пакувальної машини завантаження пряників (печива) в ячейки подаючого конвеєра виконується вручну із столів, входячих в комплект обладнання.
85869. Проект сварочного цеха 543.5 KB
  Проектируемый объект – сварочный цех. Размеры здания в плане 48000х18000 мм, размеры двухэтажной пристройки в осях Б-Г 48000х8500. Под пристройкой запроектирован подвал глубиной 2,0 метра. Здание каркасное с несущими железобетонными колоннами, стена пристройки по оси Г – несущая из кирпичной кладки...