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


 

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

14845. ҚАЗАҚ ФИЛОСОФИЯСЫ ТАРИХЫН ЛОГИКАЛЫҚ-ҚҰРЫЛЫМДЫ КЕСТЕЛЕР АРҚЫЛЫ ОҚЫТУ ӘДІСТЕМЕСІ 79.5 KB
  ҚАЗАҚ ФИЛОСОФИЯСЫ ТАРИХЫН ЛОГИКАЛЫҚҚҰРЫЛЫМДЫ КЕСТЕЛЕР АРҚЫЛЫ ОҚЫТУ ӘДІСТЕМЕСІ Р.Е. Джуншеев Тараз мемлекеттік педагогикалық институты Тараз қ. Философия пәнін оқытуды талдау барысында соңғы кезде академиялық сабақтардың әсіресе практикалық мазмұнында эмп...
14846. Мағжан дүниетанымы 77.5 KB
  Мағжан дүниетанымы Жиырмасыншы ғасырдың басы қазақ философиясының даму тарихы тұрғысынан әлі күнге дейін толық және терең зерттелмеген кезең. Бұл кезеңде әйгілі ақындар мен жазушылардан ғалымдар мен қоғам қайраткерлерінен құралған демократиялық бағыттағы қазақ ...
14847. Махаббат пен ғадауат 71 KB
  Махаббат пен ғадауат Рисала Біздің ұлық Абайымыз айтпаған сөз қалған ба Жасың ұлғайып дүние сырына бұрынғыдан тереңірек үңілген сайын Абайға барып жүгінуің жиілей береді. Жаныңды қинаған сұрақтарға жауап іздейсің. Өлсем орным қара жер сыз болмай ма Өткір...
14848. «Мұтылған» философиясы 38.5 KB
  Мұтылған философиясы Ғарифолла ЕСІМ академик. Шәкәрім өзінеөзі €œМұтылған€ ұмытылған – Ғ.Е. деп ат қойған. Біздіңше бұл псевдоним. Мәселенің байыбына барсақ ақынның өзіне осылайша ат қоюында мән бар. Оның дәлелін €œМұтылғанның өмірі€ деген толғауөлеңнен ...
14849. Арифметикалық және геометриялық прогрессия 29 KB
  Арифметикалық және геометриялық прогрессия Ежелгі замандардан бастап адамзат арифметикалық және геометриялық прогрессиялардың заңдылықтарын қолдана білген.Мәселен Біздің заманымызға дейінгі ежелгі вавилондықтардың сына жазу клинопись кестелерінде ежелгі мысы...
14850. КВАДРАТ ТЕҢДЕУЛЕРДІ ШЕШУ ЖОЛДАРЫНЫҢ ӘР ТҮРЛІ ӘДІСТЕРІ 150.5 KB
  КВАДРАТ ТЕҢДЕУЛЕРДІ ШЕШУ ЖОЛДАРЫНЫҢ ӘР ТҮРЛІ ӘДІСТЕРІ З.Е.Темірғали Б.А.Қадырбаева І.Жансүгіров атындағы Жетісу мемлекеттік университеті Талдықорған қ. Білім өркениеттіліктің әрі өлшемі әрі тетігі болып табылатындықтан кез келген мемлекеттің рухани және ә...
14851. Өлшеулер теориясының негізгі түсініктері 326 KB
  1 тақырып Өлшеулер теориясының негізгі түсініктері Дәрістер жоспары 1. Физикалық қасиеттері мен шамалар 2. Өлшеу және негізгі операциялар Қоршаған ортаның барлық объектілері өз қасиеттерімен сипатталады. Қасиет – бұл объектінің құбылыстың процестің бір жағы о...
14852. Сызықтық функция 199 KB
  Сызықтық функция y = kx l мұндағы x тәуелсіз айнымалы k мен l – нақты сандар түріндегі формуламен берілетін фуннкцияны сызықтық функция деп атайды. у = kx l функциясының анықталу аймағы барлық нақты сандар жиыны. Егер у = kx l сызықтық функциясындағы l = 0 бол
14853. Үшбұрыштың ішкі бұрыштарының қосындысы 46.5 KB
  Үшбұрыштың ішкі бұрыштарының қосындысы. Сабақтың мақсаты: Білімділігі: Үшбұрыштың ішкі бұрыштарының қосындысы туралы теореманы қарастыру Үшбұрыштың сыртқы бұрыштары жөнінде түсінік енгізу. Дамытушылық: Творчестволық және логикалық ойлауқабі