§ 3. Праектаванне інтэрфейса аконнага дадатку з выкарыстаннем элементаў кіравання

3.4. Элемент кіравання Edit (тэкставае поле)

Edit (тэкставае поле) — кампанент, які прызначаны для ўводу і вываду тэкставай інфармацыі. На панэлі кампанентаў Standard тэкставае поле адлюстравана ў выглядзе  , імя аб’екта  — Edit.

Кампанент Edit, змешчаны на форму, атрымлівае імя — EditN, дзе N — нумар  1, 2, 3… (прыклад 3.10).

У адрозненне ад іншых разгледжаных кампанентаў Edit не валодае ўласцівасцю Caption. Некаторыя ўласцівасці кампанента Edit прыведзены ў табліцы (прыклад 3.11).

Значэнне ўласцівасці Text можна задаць на этапе канструявання, змяніўшы яго ў інспектары аб'ектаў. Пры выкананні праграмы карыстальнік, які ўводзіць тэкст у кампанент Edit, змяняе значэнне ўласцівасці Text. Таксама ўласцівасць Text кампанента Edit можа змяняцца праграмна. Асноўнай падзеяй кампанента Edit з'яўляецца падзея OnChange, якая адбываецца пры змяненні кампанента. Найбольш часта праграміруюць падзею OnKeyPress, якая дазваляе вызначыць, што за клавіша была націснута.

Прыклад 3.12. Стварыць праект, у якім карыстальніка папросяць увесці яго імя (напрыклад, Лізавета), а потым, пасля націскання клавішы Enter, будзе выдадзена паведамленне «Лізавета, прыемна з Вамі пазнаёміцца!».

Этапы выканання задання

  1. Змяніць уласцівасць Caption у формы на «Знаёмства».
  2. Змясціць на форме дзве меткі і тэкставае поле.
  3. Змяніць уласцівасць Caption у Label1 на «Увядзіце сваё імя і націсніце клавішу Enter».
  4. Ачысціць поле ўласцівасці Caption у Label2.
  5. Ачысціць поле ўласцівасці Text у Edit1.
  6. Напісаць апрацоўшчык падзеі OnKeyPress для кампанента Edit1, які будзе правяраць націсканне клавішы ўводу (код клавішы Enter — 13), і калі клавіша націснута, то памяняць уласцівасць Caption у  Label2:

  if key = #13 then
Label2.Caption := Edit1.Text +
', прыемна з Вамі пазнаёміцца';

Тэкставае поле Edit выкарыстоўваецца таксама і для ўводу і вываду лікаў. Пры гэтым неабходна выкарыстоўваць функцыі для ператварэння радкоў у лікі і лікаў у радкі. Гэтыя функцыі прыведзены ў табліцы (прыклад 3.13).

У PascalABC выкарыстоўваюцца гэтыя ж функцыі для ператварэння радковых даных у лікавыя і наадварот.

У рускамоўнай версіі Windows у якасці раздзяляльніка цэлай і дробавай часткі ліку па змоўчанні выкарыстоўваецца коска. Калі пры ўводзе лікаў у тэкставыя палі выкарыстоўваць кропку, то будзе ўзнікаць памылка ператварэння тыпаў.

Прыклад 3.14. Стварыць праект, у якім карыстальнік зможа ўвесці лік і атрымаць значэнне ліку ў квадраце і квадратны корань з гэтага ліку.

Этапы выканання задання

  1. Змяніць уласцівасць Caption у формы на «Квадрат і корань».
  2. Змясціць на форме тры меткі, тры тэкставыя палі і кнопку.
  3. У кампанентаў Edit1, Edit2, Edit3 ачысціць поле ўласцівасці Text.
  4. Змяніць уласцівасць Caption у Label1 на «Увядзіце неадмоўны лік». Для змяшчэння тэксту ў два радкі трэба ўстанавіць значэнне True ва ўласцівасці WordWrap.
  5. Змяніць уласцівасць Caption у Label2 на «Квадрат ліку».
  6. Змяніць уласцівасць Caption у Label3 на «Корань з ліку».
  7. Змяніць уласцівасць Caption у Button1 на «Разлік».
  8. Напісаць апрацоўшчык OnClick для кнопкі.

Прыклад 3.10. Кампанент Edit (тэкставае поле) на форме:

Прыклад 3.11. Уласцівасці кампанента Edit:

Уласцівасць

Прызначэнне

BorderStyle

Вызначае мяжу вакол тэкставага поля: bsNone (няма мяжы), bsSingle (ёсць мяжа). Выгляд мяжы можна змяняць з дапамогай ўласцівасцей  BevelInner, BevelKind, BevelOuter

MaxLength

Абмяжоўвае колькасць сімвалаў, якія можна ўвесці ў  Edit

ReadOnly

Значэнне True забараняе рэдагаванне тэксту, які адлюстроўваецца ў  Edit

Text

Змяшчае тэкст, які ўводзіцца і выводзіцца

Тэкставае поле часта называюць аднарадковым рэдактарам, паколькі яно забяспечана такімі функцыямі, як:

  • капіраванне вылучанага тэксту ў буфер абмену (камбінацыя клавіш Ctrl+З);
  • выразанне вылучанага тэксту ў буфер абмену (камбінацыя клавіш Ctrl+Х);
  • устаўка тэксту з буфера абмену ў пазіцыю курсора (камбінацыя клавіш Ctrl+V);
  • адмена апошняй каманды рэдагавання (камбінацыя клавіш Ctrl+Z).

Прыклад 3.12. Форма на этапе канструявання:

Дадатак у час работы:

Прыклад 3.13. Функцыі ператварэння лікаў і радкоў:

Назва функцыі

Дзеянне

Увод з дапамогай Edit

StrToInt

Ператварэнне радка ў цэлы лік

StrToFloat

Ператварэнне радка ў значэнне з плаваючай коскай (адпавядае тыпу экспаненцыяльны ў Excel)

Вывад з дапамогай Edit

IntToStr

Ператварэнне цэлага ліку ў радок

FloatToStr

Ператварэнне рэчаіснага ліку ў радок

FloatToStrf

Ператварэнне рэчаіснага ліку ў радок па зададзеным фармаце. Напрыклад, FloatToStrf(d, ffFixed,5,2) дазволіць вывесці лік, што займае 5 пазіцый, з якіх 2 адводзяцца для дробавай часткі ліку

Прыклад 3.14. Форма на этапе канструявання:

Апрацоўшчык падзеі OnClick для Button1.

procedure TForm1.Button1Click(Sender: TObject);

var a, b: integer;

    c: real;

begin

  a := StrToInt(Edit1.Text);

  b := a * a;

  c := sqrt(a);

  Edit2.Text := IntToStr(b);

  Edit3.Text := FloatToStrF(c,
              FFfixed,
7, 3 );

end;

Дадатак у час работы:

Замест двух кампанентаў Label і Edit можна выкарыстоўваць адзін LabeledEdit, што спалучае ў сабе ўласцівасці абодвух кампанентаў. Знаходзіцца кампанент на палітры Additional: .