<!--
  <!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">

 -->

  <sect1 id="designing-forms">
    <title
>Розробка форм</title>

    <sect2 id="most-important-terms">
      <title
>Найважливіші терміни</title>
      <glosslist>
        <glossentry id="gloss-form">
          <glossterm
>Форма</glossterm>
          <glossdef>
            <para
>Вікно, призначене для простого введення даних і показу цих даних на екрані комп’ютера. </para>
          </glossdef>
        </glossentry>
        <glossentry id="gloss-form-data-source">
          <glossterm
>Джерело даних форми:</glossterm>
          <glossdef>
            <para
>Таблиця бази даних або запит, у яких містяться дані, показані на формі. Джерело даних потрібне, оскільки самі форми є лише <emphasis
>інструментами</emphasis
> для показу і введення даних, джерелом же даних є таблиці і запити. У нових щойно створених форм немає призначених джерел даних, отже у них не буде показано ніяких даних з вашої бази даних аж доти, доки ви не пов’яжете з формою певне джерело даних. </para>
          </glossdef>
        </glossentry>
        <glossentry id="gloss-form-field">
          <glossterm
>Поле форми</glossterm>
          <glossdef>
            <para
>Прямий аналог стовпчика у таблиці або запиті. Найчастіше поля використовують для показу тексту і чисел. Введення нового значення або зміна існуючого значення такого поля призводить до зміни у відповідному стовпчику таблиці або запиту (після підтвердження зміни). </para>
          </glossdef>
        </glossentry>
        <glossentry id="gloss-form-design">
          <glossterm
>Компонування форми</glossterm>
          <glossdef>
            <para
>Виконане вами визначення вигляду і функціональних можливостей форми. Для того, щоб виконати таке визначення, вам слід вказати <glossterm linkend="gloss-form-data-source"
>джерело даних</glossterm
>, вставити <glossterm linkend="gloss-form-field"
>поля форми</glossterm
> різноманітних типів і певним чином розташувати ці поля на формі. </para>
          </glossdef>
        </glossentry>
        <glossentry id="gloss-form-widget">
          <glossterm
>Віджет форми</glossterm>
          <glossdef>
            <para
>Елемент форми. Основними типами віджетів є:</para>
            <itemizedlist>
              <listitem>
                <para
>Віджети, призначені для показу інформації, наприклад, поле для показу тексту або зображення. Кожен з віджетів такого типу можна <emphasis
>пов’язати</emphasis
> з певним полем джерела даних (стовпчиком таблиці або запиту). Тому такі віджети скорочено називаються <glossterm linkend="gloss-form-field"
>полями форми</glossterm
>. </para>
              </listitem>
              <listitem>
                <para
>Віджети, які можуть виконувати вказану для них дію, наприклад, кнопка, за допомогою якої можна закрити поточну форму. У інших програмах подібні віджети іноді називають <firstterm
>керуванням формою</firstterm
>, оскільки такі віджети можуть виконувати заздалегідь визначену дію з <emphasis
>керування</emphasis
> поведінкою вашої програм для роботи з базами даних. </para>
              </listitem>
              <listitem>
                <para
>За допомогою інших віджетів можна збагатити вигляд форми, наприклад, «віджет лінії» може візуально відокремити дві області форми. </para>
              </listitem>
            </itemizedlist>
          </glossdef>
        </glossentry>
        <glossentry id="gloss-container-widget">
          <glossterm
>Віджет контейнера</glossterm>
          <glossdef>
            <para
>Віджет, який може <emphasis
>містити</emphasis
> інші віджети у відведеній для цього віджета ділянці. Наприклад, віджет блоку або віджет вкладки є контейнерами. Сама площа форми є також контейнером. Кнопку команди не можна вважати контейнером, оскільки на неї не можна додати віджета. У складніших випадках віджети контейнерів може бути додано у інші контейнери, тобто можливе вкладення контейнерів. </para>
            <!--
            <screenshot>
              <screeninfo
>Example container widgets</screeninfo>
              <mediaobject>
                <imageobject>
                  <imagedata fileref="img/05_04_01_widget_containers.png" format="PNG"/>
                </imageobject>
                <textobject>
                  <phrase
>Example container widgets</phrase>
                </textobject>
              </mediaobject>
            </screenshot
>-->
          </glossdef>
        </glossentry>
      </glosslist>
    </sect2>

    <sect2 id="forms-versus-tables">
      <title
>Порівняння форм з таблицями</title>
      <para
>У розділі 5.2 ми навчилися вводити дані безпосередньо до таблиць за допомогою панелі перегляду аркуша даних. Але здебільшого форми є придатнішими для введення даних: </para>
      <itemizedlist>
        <listitem>
          <para
>У таблиці може бути багато стовпчиків: показ всіх цих стовпчиків на екрані буде неможливим. У формі такі дані може бути показано за допомогою декількох рядків. </para>
        </listitem>
        <listitem>
          <para
>За допомогою форми можна візуально поділити <glossterm linkend="gloss-form-field"
>поля</glossterm
> даних на логічні групи з метою полегшення прийняття. На форму можна додати мітки з додатковими відомостями, які нададуть користувачам змогу легше зрозуміти способи користування формою та призначення <glossterm linkend="gloss-form-field"
>полів</glossterm
> даних. </para>
        </listitem>
        <listitem>
          <para
>Кнопками команд форм можна скористатися для виконання найпоширеніших команд. Користувачі таких форм зможуть працювати з ними як зі знайомими окремими програмами. </para>
        </listitem>
        <listitem>
          <para
>На панелі перегляду аркуша даних показати рядки даних з текстом <glossterm linkend="gloss-form-field"
>полів</glossterm
> або зображення так само просто, як і на формах. </para>
        </listitem>
      </itemizedlist>
    </sect2>

    <sect2>
      <title
>Робота з компонуванням форм</title>
      <para
>Під час розробки таблиці або запиту ви зможете користуватися двома режимами перегляду: <interface
>Перегляд даних</interface
> і <interface
>Перегляд дизайну</interface
>. Компонування форми виконується у режимі <interface
>Перегляду дизайну</interface
>. Ми будемо називати вікно дизайну форми <interface
>Дизайнером форми</interface
>. </para>
      <procedure>
        <step>
          <para
>Щоб створити порожню форму, скористайтеся пунктом меню <menuchoice
><guimenu
>Вставка</guimenu
> <guimenuitem
>Форма</guimenuitem
></menuchoice
>. Якщо ви хочете, ви можете скористатися пунктом <menuchoice
><guimenuitem
>Створити форму</guimenuitem
></menuchoice
> у спадному списку панелі інструментів <interface
>Навігатора проектом</interface
> або пунктом <menuchoice
><guimenuitem
>Створити об’єкт: Форма</guimenuitem
></menuchoice
> контекстного меню. </para>
        </step>
        <step>
          <para
>Програма відкриє нову панель. Змінити розміри форми можна за допомогою пересування меж панелі. Форму буде вкрито сіткою для полегшення точного розташування віджетів. </para>
          <!--<screenshot>
            <screeninfo
>A window with design of a new form</screeninfo>
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/05_04_03_new_empty_form.png" format="PNG"/>
              </imageobject>
              <textobject>
                <phrase
>A window with design of a new form</phrase>
              </textobject>
            </mediaobject>
          </screenshot
>-->
        </step>
      </procedure>
      <para
>Так само, як і у компонуванні таблиць, у <interface
>Дизайнері форм</interface
> передбачено <interface
>Панель властивостей</interface
>. Для того, щоб зекономити місце на екрані, на панелі буде показано три вкладки, пов’язані з поточною позначеною формою: </para>
      <variablelist>
        <varlistentry>
          <term
>Вкладка <guilabel
>Властивості</guilabel
></term>
          <listitem>
            <para
>Містить список властивостей для поточного вибраного віджета.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
>Вкладка <guilabel
>Джерело даних</guilabel
> </term>
          <listitem>
            <para
>Містить властивості, пов’язані безпосередньо зe <glossterm linkend="gloss-form-data-source"
>джерелом даних</glossterm
> поточного позначеного віджета або самої форми. </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
>Вкладка <guilabel
>Віджети</guilabel
> </term>
          <listitem>
            <para
>Містить ієрархію всіх віджетів форми. За допомогою списку спрощується пошук віджетів за назвою та навігація між ними. </para>
          </listitem>
        </varlistentry>
      </variablelist>
      <para
>Буде показано відомості щодо назви і типу поточного позначеного віджета на першій і другій вкладці. </para>
      <para
>Доступні також додаткові панелі інструментів:</para>
      <itemizedlist>
        <listitem>
          <para
>Панель інструментів <guilabel
>Віджети</guilabel
> призначено для додавання нових віджетів на форму. </para>
        </listitem>
        <listitem>
          <para
>Панель інструментів <guilabel
>Формат</guilabel
> призначено для форматування елементів форми (наприклад, зміни розмірів віджетів, групування). Доступ до команд форматування можна отримати за допомогою меню <guimenu
>Формат</guimenu
>. Докладніше про ці команди можна дізнатися з розділу <xref linkend="formatmenu"/>. </para>
        </listitem>
      </itemizedlist>
    </sect2>

    <sect2 id="using-the-widgets-tab">
      <title
>Користування вкладкою <guilabel
>Віджети</guilabel
></title>
      <para
>На вкладці <guilabel
>Віджети</guilabel
> <interface
>панелі «Властивості»</interface
> буде показано список віджетів форми та їх ієрархічну підпорядкованість. Всі віджети у ієрархії буде показано за рівнями (віджети одного рівня буде показано у їх спільному батьківському контейнері). Пункти дочірніх віджетів (віджетів, що містяться у контейнерах) буде показано з відступом. </para>
      <!--<para
>In the picture below, the form (a container) contains two widgets:
        <guilabel
>groupBox2</guilabel
> and <guibutton
>options</guibutton
> command button. In
        turn, <guilabel
>groupBox2</guilabel
> (being a container itself) contains two check box
        widgets.
      </para>
      <screenshot>
        <screeninfo
>Using the <quote
>Widgets</quote
> tab</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_04_widgets_tab.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Using the <quote
>Widgets</quote
> tab</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <para
>Для кожного з віджетів буде показано назву і тип. Для позначення типу буде також використано піктограм (ту саму, яку було показано на кнопці панелі інструментів, яку ви натискали, щоб додати відповідний віджет під час компонування). </para>
      <note>
        <itemizedlist>
          <listitem
> 
            <para
>Зміна поточного позначеного пункту у списку призводить до позначення відповідного елемента на формі. Така взаємодія полегшує пошук віджетів за назвою і спрощує навігацію формою. Наприклад, можна обрати віджет за назвою, а потім перейти на вкладку <guilabel
>Властивості</guilabel
>, щоб змінити властивості віджета.</para>
          </listitem>
          <listitem>
            <para
>Утримування натиснутою клавіші &Ctrl; під час позначення пунктів у списку віджетів надасть вам змогу позначити декілька віджетів одночасно. Якщо утримувати натиснутою клавішу &Shift;, можна позначати послідовності віджетів у списку.</para>
          </listitem>
          <!--<listitem>
            <para>
              When widget is inserted, it is recommended to give it a reasonable name.
              For example, <guilabel
>green</guilabel
> check box widget has been named specifically
              for its meaning, using the <guilabel
>Properties</guilabel
> tab
              (<guilabel
>Name</guilabel
> property has been used to do that). Such change
              can make it easier to find a widget within the list.
            </para>
            <screenshot>
              <screeninfo
>Naming the widget as <guilabel
>green</guilabel
></screeninfo>
              <mediaobject>
                <imageobject>
                  <imagedata fileref="img/05_04_04_renaming_widgets.png" format="PNG"/>
                </imageobject>
                <textobject>
                  <phrase
>Naming the widget as <guilabel
>green</guilabel
></phrase>
                </textobject>
              </mediaobject>
            </screenshot>
          </listitem
>-->
        </itemizedlist>
      </note>
      <para
>Надання віджетам змістовних назв є корисним, але не обов’язковим кроком. Зауважте, що назва віджета є властивістю, яку не буде показано користувачеві вашої форми. Користувачі бачитимуть лише текст віджета, який визначається властивістю <varname
>Text</varname
> або іншою подібною властивістю. </para>
    </sect2>
    
    <sect2 id="inserting-widgets-text-fields">
      <title
>Додавання віджетів — текстові поля</title>
      <para
>Давайте створимо форму з відомостями щодо осіб, тобто форму, пов’язану з таблицею <literal
>Persons</literal
>. </para>
      <para
>Якщо на формі, яку ви розробляєте, має бути показано дані, отримані з бази даних, вам слід розташувати на цій формі відповідні <glossterm linkend="gloss-form-field"
>поля</glossterm
>. Для подібного розташування слід скористатися кнопками панелі інструментів <guilabel
>Віджети</guilabel
>. Кожна з кнопок відповідає певному типу віджета. </para>
      <procedure>
        <step>
          <para
>Натисніть кнопку <guibutton
>Текстове поле</guibutton
> на панелі інструментів <guilabel
>Віджети</guilabel
>. </para>
        </step>
        <step>
          <para
>Наведіть вказівник миші на форму і клацніть <mousebutton
>лівою</mousebutton
> кнопкою миші. У точці, де знаходився вказівник миші, буде розташовано новий віджет поля для введення тексту. Перш ніж відпускати кнопку миші ви можете спробувати перетягти вказівник миші, щоб змінити розміри віджета на бажані. </para>
        </step>
        <step>
          <para
>Якщо потрібно, пересуньте доданий віджет за допомогою перетягування зі скиданням вказівником миші у потрібну позицію. Пізніше ви зможете змінити розміри віджета перетягуванням одного з маленьких квадратиків, розташованих у кутах віджета. Зауважте, що ці квадратики можна буде побачити, лише якщо віджет буде позначено. Якщо ви позначите інший віджет або всю поверхню форми, квадратики буде приховано. </para>
        </step>
        <step>
          <para
>Натисніть кнопку <guibutton
>Текстове поле</guibutton
> ще раз, а потім наведіть вказівник миші на поверхню форми і клацніть лівою кнопкою миші, щоб вставити ще один віджет. Повторіть цю процедуру ще раз так, щоб на вашій формі опинилося три поля для введення тексту. Для простоти ми обмежимося роботою з трьома <glossterm linkend="gloss-form-field"
>полями</glossterm
> даних. </para>
        </step>
      </procedure>
      <note>
        <itemizedlist>
          <listitem>
            <para
>У режимі компонування форм передбачено також контекстне меню, доступ до якого можна отримати наведенням вказівника на бажаний віджет або поверхню форми з наступним клацанням <mousebutton
>правою</mousebutton
> кнопкою миші. У цьому меню ви знайдете команди <guimenuitem
>Вирізати</guimenuitem
>, <guimenuitem
>Копіювати</guimenuitem
>, <guimenuitem
>Вставити</guimenuitem
>, <guimenuitem
>Вилучити</guimenuitem
> та інші, складніші команди. Доступ до багатьох з цих команд можна отримати також і у меню, зазвичай, меню <guimenuitem
>Правка</guimenuitem
>. Крім того, для виконання цих команд передбачено клавіатурні скорочення. Деякими з цих команд можна скористатися лише для віджетів певних типів. </para>
          </listitem>
          <listitem>
            <para
>За допомогою пунктів <guimenuitem
>Вирізати</guimenuitem
>, <guimenuitem
>Скопіювати</guimenuitem
> і <guimenuitem
>Вставити</guimenuitem
> можна пересувати або копіювати віджети між формами, навіть між окремими проектами баз даних. </para>
          </listitem>
          <listitem>
            <para
>Утримування натиснутою клавіші &Ctrl; під час клацання кнопкою миші надає змогу позначати декілька віджетів одразу. </para>
          </listitem>
          <listitem>
            <para
>Окрім використання пунктів меню <guimenuitem
>Копіювати</guimenuitem
> і <guimenuitem
>Вставити</guimenuitem
> для дублювання віджета на одній формі, ви можете натиснути і утримувати натиснутою клавішу &Ctrl;, а потім пересунути віджет. Після відпускання клавіші &Ctrl; перетягнутий віджет не буде пересунуто, а скопійовано у нову позицію. </para>
          </listitem>
        </itemizedlist>
      </note>
    </sect2>

    <sect2 id="assigning-data-sources">
      <title
>Визначення джерел даних</title>
      <para
>Для вставлених вами <glossterm linkend="gloss-form-field"
>полів</glossterm
> ще не призначено <emphasis
>джерела даних</emphasis
>, отже у цих полях не може бути показано даних з бази даних. Щоб призначити джерело даних, скористайтеся вкладкою <guilabel
>Джерело даних</guilabel
> <interface
>панелі властивостей</interface
>. </para>
      <para
>На першому кроці слід вказати <glossterm linkend="gloss-form-data-source"
>джерело даних форми</glossterm
>, тобто вказати сховище даних звідки слід брати показані дані. Як ми вже раніше згадували, нам слід скористатися таблицею <literal
>persons</literal
> як <glossterm linkend="gloss-form-data-source"
>джерелом даних</glossterm
> для нашої нової форми. </para>
      <procedure>
        <step>
          <para
>Наведіть вказівник миші на вікно форми і клацніть лівою кнопкою миші, так само, як під час зміни його властивостей.</para>
        </step>
        <step>
          <para
>Перемкніться на вкладку <guilabel
>Джерело даних</guilabel
> і введіть назву таблиці <literal
>persons</literal
> (особи) у спадний список <guilabel
>Джерело даних форми</guilabel
>. Крім того, ви можете просто обрати цю назву зі спадного списку. </para>
          <!--<screenshot>
            <screeninfo
>Entering <glossterm linkend="gloss-form-data-source"
>form's data source</glossterm
> name</screeninfo>
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/05_04_05_entering_form_data_source.png" format="PNG"/>
              </imageobject>
              <textobject>
                <phrase
>Entering <glossterm linkend="gloss-form-data-source"
>form's data source</glossterm
> name</phrase>
              </textobject>
            </mediaobject>
          </screenshot
>-->
        </step>
      </procedure>
      <para
>Отже ми призначили <glossterm linkend="gloss-form-data-source"
>джерело даних форми</glossterm
>. Тепер нам треба визначити джерело даних віджетів. </para>
      <procedure>
        <step>
          <para
>Наведіть вказівник миші на перший з віджетів текстових полів у верхній частині форми і клацніть лівою кнопкою миші.</para>
        </step>
        <step>
          <para
>На вкладці <guilabel
>Джерело даних</guilabel
> панелі властивостей введіть назву поля <varname
>name</varname
> (ім’я) у спадному списку <emphasis
>Джерело даних віджета</emphasis
>. Крім того, ви можете обрати цю назву зі спадного списку. </para>
          <!--<screenshot>
            <screeninfo
>Entering widget's data source name</screeninfo>
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/05_04_05_entering_text_field_data_source.png" format="PNG"/>
              </imageobject>
              <textobject>
                <phrase
>Entering widget's data source name</phrase>
              </textobject>
            </mediaobject>
          </screenshot
>-->
        </step>
        <step>
          <para
>Натисніть наступне поле тексту і введіть у поле джерела даних <varname
>surname</varname
> (прізвище).</para>
        </step>
        <step>
          <para
>Введіть джерела даних для текстових <glossterm linkend="gloss-form-field"
>полів</glossterm
> <varname
>street</varname
> (вулиця), <varname
>house_number</varname
> (номер будинку) і <varname
>city</varname
> (місто) у подібний же спосіб. </para>
        </step>
      </procedure>
      <para
>Тепер можна зберегти компонування форми (випробовувати форму у дії не обов’язково). Щоб зберегти компонування, натисніть кнопку панелі інструментів <guilabel
>Зберегти зміни у об’єкті</guilabel
> або скористайтеся пунктом меню <menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>S</keycap
></keycombo
></shortcut
> <guimenu
>Файл</guimenu
><guimenuitem
> Зберегти</guimenuitem
></menuchoice
>. У процесі зберігання програма попросить вас ввести назву форми. Введіть <literal
>Persons</literal
> у поле підпису і натисніть кнопку <guibutton
>Гаразд</guibutton
>. Поле назви форми буде заповнено автоматично. </para>
      <para
>Настав час перевірити нашу форму у дії. Натисніть кнопку панелі інструментів <guibutton
>Перемкнути у режим перегляду даних</guibutton
>. Якщо під час введення даних ви не помилилися, ви побачите <glossterm linkend="gloss-form-field"
>поля форми</glossterm
>, заповнені даними з таблиці <literal
>persons</literal
>. </para>
      <!--<screenshot>
        <screeninfo
>The <literal
>Persons</literal
> form in data view after inserting text fields and assigning data sources</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_06_form_with_text_fields.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>The <literal
>Persons</literal
> form in data view after inserting text fields and assigning data sources</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <note>
        <itemizedlist>
          <listitem>
            <para
>Якщо ви бажаєте вилучити прив’язку <glossterm linkend="gloss-form-data-source"
>джерела даних</glossterm
> до віджета форми, натисніть кнопку <guibutton
>Очистити джерело даних віджета</guibutton
>, розташовану поруч зі спадним списком <guilabel
>Джерело даних віджета</guilabel
>. Крім того, ви можете скористатися натисканням кнопки <guibutton
>Очистити джерело даних форми</guibutton
>, розташованої поряд зі спадним списком <guilabel
>Джерело даних форми</guilabel
>. </para>
          </listitem>
          <listitem>
            <para
>Скористайтеся натисканням кнопки <guibutton
>Перейти до вибраного джерела даних форми</guibutton
>, щоб обрати відповідну таблицю або запит у <interface
>Навігаторі проектом</interface
>. Таким чином, ви зможете швидко відкрити таблицю або запит, який буде <glossterm linkend="gloss-form-data-source"
>джерелом даних</glossterm
> форми. </para>
          </listitem>
        </itemizedlist>
        <!-- TODO: mention about creating Auto Fields by using drag & drop -->
      </note>
    </sect2>

    <sect2 id="inserting-text-labels">
      <title
>Додавання текстових міток</title>
      <para
>Для того, щоб полегшити користувачеві форми визначення призначення полів віджета, до цих полів слід долучати текстові мітки з відповідними написами. Для створення текстових міток використовують віджет <literal
>Label</literal
>. </para>
      <para
>Додайте на форму три віджети текстових міток, розташувавши їх ліворуч від полів для введення тексту (або праворуч, якщо у вашій операційній системі використовується лівописне компонування). Після додавання нової мітки на формі з’являтиметься курсор у місці, куди слід вводити текст. Послідовно введіть мітки: <literal
>Name</literal
> (ім’я), <literal
>Surname</literal
> (прізвище) та <literal
>Street</literal
> (вулиця). Крім того, у верхній частині форми додайте ще одну мітку, яка визначатиме назву форми, тобто <literal
>Persons</literal
>. Збільшіть розміри цієї мітки та розмір шрифту її тексту за допомогою пункту меню <menuchoice
><guimenu
>Формат</guimenu
> <guimenuitem
>Шрифт...</guimenuitem
></menuchoice
>. </para>
      <!--<screenshot>
        <screeninfo
>Ready to use form after adding text labels</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_06_form_with_labels.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Ready to use form after adding text labels</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
    </sect2>

    <sect2 id="actions">
      <title
>Дії</title>
      <para
><literal
>Action</literal
> (дія) — це якась виокремлена функціональна можливість програми, дію якої може бути активовано користувачем. Дію може бути виконано і у автоматичному режимі у відповідь на вказану подію (наприклад, відкриття форми). </para>

      <sect3 id="assigning-actions-to-form-buttons">
        <title
>Призначення дій до кнопок форми</title>
        <para
>З кнопками форми можна пов’язати багато дій. Призначену дію буде виконано після натискання кнопки. </para>
        <para
>Для призначення дії:</para>
        <procedure>
          <step>
            <para
>Перемкніть програму у режим <interface
>Перегляд дизайну</interface
>, якщо ви ще цього не зробили.</para>
          </step>
          <step>
            <para
>Позначте вже існуючий віджет кнопки наведенням на нього вказівника миші з наступним клацанням лівою кнопкою миші або додайте на форму новий віджет кнопки. Якщо ви додали нову кнопку, введіть її назву і натисніть клавішу <keycombo action="press"
>&Enter;</keycombo
>. </para>
          </step>
          <step>
            <para
>Наведіть вказівник миші на віджет кнопки і клацніть правою кнопкою миші для відкриття контекстного меню. </para>
          </step>
          <step>
            <para
>З контекстного меню оберіть пункт <guimenuitem
>Призначити дію...</guimenuitem
>. </para>
          </step>
          <step>
            <para
>У відповідь програма відкриє діалогове вікно <guilabel
>Призначення дії для кнопки</guilabel
>, де буде показано список можливих дій. Якщо для віджета вже було призначено дію, один з пунктів дій у цьому списку буде позначено. Якщо ж дії ще не було призначено, у спадному списку <guilabel
>Тип дії</guilabel
> буде позначено пункт <guilabel
>Без типу</guilabel
>. </para>
          </step>
          <step>
            <para
>У спадному списку <guilabel
>Тип дії</guilabel
> оберіть пункт <guilabel
>Програма</guilabel
>. У відповідь програма покаже список можливих дій програми. </para>
          </step>
          <step>
            <para
>Оберіть одну з дій у списку (наприклад, <guilabel
>Вилучити рядок</guilabel
>).</para>
          </step>
          <step>
            <para
>Натисніть кнопку <guibutton
>Гаразд</guibutton
> або клавішу <keycombo action="press"
>&Enter;</keycombo
>, щоб підтвердити ваш вибір. </para>
          </step>
        </procedure>
        <!--<screenshot>
          <screeninfo
>Assigning <guilabel
>Delete Row</guilabel
> action to a form's button</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/05_04_07_assigning_action_to_button.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Assigning <guilabel
>Delete Row</guilabel
> action to a form's button</phrase>
            </textobject>
          </mediaobject>
        </screenshot
>-->
        <para
>Після перемикання форми у режим <emphasis
>перегляд даних</emphasis
> ви зможете перевірити, чи буде програма виконувати вказану дію. Наприклад, якщо ви призначили дію <guilabel
>Вилучити рядок</guilabel
> до натискання кнопки, поточний рядок бази даних буде вилучено. Результат дії буде тим самим, що і результат вибору пункту меню <menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>Delete</keycap
></keycombo
></shortcut
><guimenu
>Правка</guimenu
> <guimenuitem
>Вилучити рядок</guimenuitem
></menuchoice
> (залежно від вказаних вами параметрів, програма попросить вас підтвердити вилучення). </para>

      <note>
        <itemizedlist>
          <listitem>
            <para
>Щоб вилучити прив’язку дії, оберіть пункт <guilabel
>Без типу</guilabel
> у спадному списку <guilabel
>Тип дії</guilabel
> діалогового вікна <guilabel
>Призначення дії для кнопки</guilabel
>. </para>
          </listitem>
          <listitem>
            <para
>Дії працюють лише у режимі <emphasis
>перегляду даних</emphasis
> форми. Не кожне з призначення дій має сенс. Наприклад, ви можете отримати доступ до дії <guimenuitem
>Шрифт...</guimenuitem
> у режимі перегляду даних, але лише якщо у <interface
>Перегляді дизайну</interface
> позначено якийсь віджет. Якщо ви внесете зміни до параметрів шрифту, зміни буде застосовано до тексту цього позначеного віджета. </para>
          </listitem>
        </itemizedlist>
      </note>
      </sect3>
    </sect2>

    <sect2 id="widget-layouts">
      <title
>Компонування віджетів</title>
      <para
>Віджети форми варто розташувати зручно для користувача та вирівняти. Розташування, вирівнювання і зміна розмірів віджетів вручну не є простою справою. Ці параметри віджета не коригуватимуться, коли користувач змінюватиме розміри форми. Фактично, стан справ ще гірший, оскільки ви не зможете передбачити потрібний для віджетів простір за умови, що на комп’ютері користувача буде встановлено інші розміри шрифтів і іншу роздільну здатність екрана. </para>
      <!--
      <para>
        The following example presents a form where text fields and labels were
        placed by hand. Some of them cannot fit in the form's window.
      </para>
      <screenshot>
        <screeninfo
>An example form with widgets that cannot not fit in the window</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_no_fit.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>An example form with widgets that cannot not fit in the window</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <para
>За допомогою особливого інструменту, який називається «компонування віджетів» можна автоматично розкласти віджети формою. Компонування віджетів — це дія з групування декількох віджетів так, щоб їх було розташовано у відповідних місцях, і так, щоб вони мали відповідні розміри. </para>
      <para
>Використання компонування покращує вирівнювання елементів форми. Крім того, краще використовується площа форми. Текстові поля наближаються одне до одного, інтервали стають однорідними. </para>
      <!--<screenshot>
        <screeninfo
>Example form with layout used</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_well_fit.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Example form with layout used</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <para
>Існує два способи створення компонування віджетів.</para>
      <itemizedlist>
        <listitem>
          <para
>Оберіть декілька віджетів, для яких слід використати одне зі стандартних компонувань, а потім оберіть тип компонування за допомогою пункту контекстного меню <guilabel
>Розкласти віджети</guilabel
> . </para>
        </listitem>
        <listitem>
          <para
>Наведіть вказівник миші на контейнер віджетів (або на поверхню самої форми), куди слід додати віджети, клацніть лівою кнопкою миші і оберіть один з типів компонування з контекстного меню компонування віджетів. Всі віджети контейнера або форми, розташовані на одному рівні з позначеним віджетом, буде розташовано у межах спільного компонування. </para>
        </listitem>
      </itemizedlist>
      <para
>У кожному з цих випадків ви також можете скористатися пунктом меню <menuchoice
><guimenu
>Формат</guimenu
><guimenuitem
>Розкласти віджети</guimenuitem
></menuchoice
>. </para>
      <!--<screenshot>
        <screeninfo
>Selecting widgets that will be put into a layout</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_layout_selecting.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Selecting widgets that will be put into a layout</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
      <screenshot>
        <screeninfo
>Four widgets are selected</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_layout_selected.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Four widgets are selected</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
      <screenshot>
        <screeninfo
>Using the context menu for putting the widgets into a grid layout</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_layout_popup.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Using the context menu for putting the widgets into a grid layout</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <para
>У режимі перегляду компонування компонування віджетів буде показано за допомогою синіх, зелених і червоних прямокутників накреслених штрихованою лінією. Цю лінію буде показано лише у режимі перегляду компонування форми. </para>
      <!--<screenshot>
        <screeninfo
>Widgets within a grid layout</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/05_04_08_form_layout_grid.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Widgets within a grid layout</phrase>
          </textobject>
        </mediaobject>
      </screenshot
>-->
      <para
>Окрім типу ґратки, існують інші типи компонування віджетів.</para>
      <variablelist>
        <varlistentry>
          <term
>вертикальне</term>
          <listitem>
            <para
>Вертикальне компонування віджетів</para>
            <!--<screenshot>
              <screeninfo
>Vertical widget layout</screeninfo>
              <mediaobject>
                <imageobject>
                  <imagedata fileref="img/05_04_08_form_layout_vertical.png" format="PNG"/>
                </imageobject>
                <textobject>
                  <phrase
>Vertical widget layout</phrase>
                </textobject>
              </mediaobject>
            </screenshot
>-->
          </listitem>
        </varlistentry>
        <varlistentry>
          <term
>горизонтальне</term>
          <listitem>
            <para
>Горизонтальне компонування віджетів</para>
            <!--<screenshot>
              <screeninfo
>Horizontal widget layout</screeninfo>
              <mediaobject>
                <imageobject>
                  <imagedata fileref="img/05_04_08_form_layout_horizontal.png" format="PNG"/>
                </imageobject>
                <textobject>
                  <phrase
>Horizontal widget layout</phrase>
                </textobject>
              </mediaobject>
            </screenshot
>-->
          </listitem>
        </varlistentry>
        <!-- TODO podzia poziomy / pionowy 
         <br
><img src="img/05_04_08_form_layout_vertical_splitter.png">
         <br
><br>
         <br
><img src="img/05_04_08_form_layout_horizontal_splitter.png">
         <br
><br>
        </li
> -->
      </variablelist>

      <sect3 id="springs-in-widget-layouts">
        <title
>Пружинки у компонуваннях віджетів</title>
        <para
><emphasis
>Пружиною</emphasis
> у компонуванні віджетів називається особливий невидимий елемент, за допомогою якого можна скоригувати розташування віджетів і їх розмір у компонуванні. Така пружина розтягує або стискає віджет у вертикальному або горизонтальному напрямку так, щоб надати цьому віджету бажаних розмірів і розташування. </para>
        <para
>Щоб скористатися пружинкою, виконайте такі дії:</para>
        <procedure>
          <step>
            <para
>Натисніть піктограму з пружинкою на панелі інструментів <guilabel
>Віджети</guilabel
>. </para>
          </step>
          <step>
            <para
>Наведіть вказівник миші на точку на формі, куди ви бажаєте вставити пружинку і клацніть лівою кнопкою миші.</para>
          </step>
        </procedure>
        <!--<para>
          For the following example, the spring has been inserted on the left
          hand of the text label "Persons". The label is thus displayed on the
          right hand of the form. To make the spring work, it has been put into
          a common horizontal layout with the label.
        </para>
        <screenshot>
          <screeninfo
>Horizontal layout containing a spring and a text label</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/05_04_08_form_spring.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Horizontal layout containing a spring and a text label</phrase>
            </textobject>
          </mediaobject>
        </screenshot
>-->
        <para
>Для того, щоб пружини виконали свою роль, вам слід створити загальне компонування віджетів, тобто компонування самої форми. Після цього пружини зможуть скористатися краями форми як опорою під час стискання або розтягування. </para>
      </sect3>
      <!--
      
      TODO: The entire text in this section is built around a screenshot
            example, so it's commented out for now.

      <sect3 id="advanced-widget-layouts">
        <title
>Advanced widget layouts</title>
        <para>
          Widget layouts can be combined (or nested). On the following example
          you can identify two nested layouts:
        </para>
        <orderedlist>
          <listitem>
            <para>
              Horizontal layout with a spring, aligning the <literal
>Persons</literal>
              text label to the right.
            </para>
          </listitem>
          <listitem>
            <para
>Grid layout grouping widgets on the whole form.</para>
          </listitem>
        </orderedlist>
        <screenshot>
          <screeninfo
>Two widget layouts combined: horizontal layout inside of a grid layout</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/05_04_08_form_advanced_layout.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Two widget layouts combined: horizontal layout inside of a grid layout</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
        <para>
          The horizontal layout is treated in the example as a single widget by
          the grid layout - it takes exactly one <quote
>cell</quote
> of the grid.
          After opening a form designed this way in the data view, you can notice
          (by resizing the form) that:
        </para>
        <itemizedlist>
          <listitem>
            <para>
              <literal
>Persons</literal
> text label thanks to the spring used is constantly
              aligned to the to the right side of the form.
            </para>
          </listitem>
          <listitem>
            <para>
              Text fields take all of the available width thanks to putting them
              into the grid layout.
            </para>
          </listitem>
          <listitem>
            <para>
              All the form's widgets are pushed to the top thanks to the spring
              used at the bottom of the form.
            </para>
          </listitem>
        </itemizedlist>
        <screenshot>
          <screeninfo
>The form using the two layouts displayed in data view</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/05_04_08_form_advanced_layout_view.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>The form using the two layouts displayed in data view</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </sect3
>-->

      <sect3 id="removing-widget-layouts">
        <title
>Вилучення компонувань віджетів</title>
        <para
>Щоб вилучити компонування віджетів без вилучення самих віджетів, виконайте одну з таких дій: </para>
        <itemizedlist>
          <listitem>
            <para
>Наведіть вказівник миші на рамку компонування, клацніть <mousebutton
>правою</mousebutton
> кнопкою миші і оберіть пункт <guimenuitem
>Забрати розкладку</guimenuitem
> у контекстному меню. </para>
          </listitem>
          <listitem>
            <para
>Наведіть вказівник миші на рамку компонування, клацніть <mousebutton
>лівою</mousebutton
> кнопкою миші і скористайтеся пунктом меню <menuchoice
><guimenu
>Формат</guimenu
><guimenuitem
>Забрати розкладку</guimenuitem
></menuchoice
>. </para>
          </listitem>
        </itemizedlist>
        <note>
          <para
>Вилучення компонування віджетів за допомогою пункту <guimenuitem
>Забрати розкладку</guimenuitem
> не призведе до вилучення віджетів самого компонування. Якщо ви бажаєте вилучити і самі віджети, просто позначте компонування наведенням вказівника на рамку компонування з наступним клацанням лівою кнопкою миші, а потім натисніть клавішу <keycap
>Delete</keycap
> або скористайтеся пунктом <menuchoice
><guimenu
>Правка</guimenu
> <guimenuitem
>Вилучити</guimenuitem
></menuchoice
> головного або контекстного меню. </para>
        </note>
      </sect3>

      <sect3 id="size-policies-for-widgets-within-a-layout">
        <title
>Правила розмірів для віджетів у компонуванні</title>
        <para
>Замість встановлення для віджетів фіксованого розміру у &kexi; ви можете скористатися одним з декількох правил встановлення розмірів віджетів. <emphasis
>Правила розмірів</emphasis
> — це гнучка стратегія керування способом розтягування (або стискання) віджета залежно від розміру і розташування сусідніх віджетів і доступного місця на формі. </para>
        <para
>Зазвичай, після розташування віджетів у <emphasis
>компонуванні</emphasis
> для кожного з віджетів буде встановлено правило пропорційних розмірів (<guilabel
>Бажаний</guilabel
>). Розмір цих віджетів буде автоматично змінено відповідно до параметрів типу і розмірів самого компонування. Наприклад, розміри трьох кнопок у горизонтальному компонуванні буде змінено так, щоб на них можна було показати весь призначений для показу текст. </para>
        <para
>Параметри правил розмірів для кожного з віджетів доданих на форму можна встановити за допомогою <interface
>Редактора властивостей</interface
>. Параметри буде зібрано у групі властивостей з назвою <guilabel
>Правила розміру</guilabel
>. </para>
        <!--<screenshot>
          <screeninfo
>A group of properties for defining a widget's size policy</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/05_04_09_size_policy_properties.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>A group of properties for defining a widget's size policy</phrase>
            </textobject>
          </mediaobject>
        </screenshot
>-->
        <para
>Ця група властивостей містить:</para>
        <variablelist>
          <varlistentry>
            <term
><guilabel
>Правила горизонтальних розмірів</guilabel
></term>
            <listitem>
              <para
>визначення горизонтального розміру віджета,</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term
><guilabel
>Правила вертикальних розмірів</guilabel
></term>
            <listitem>
              <para
>визначення вертикального розміру віджета,</para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term
><guilabel
>Горизонтальне розтягнення</guilabel
></term>
            <listitem>
              <para
>визначення рівня застосування <guilabel
>Правил горизонтальних розмірів</guilabel
>, </para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term
><guilabel
>Вертикальне розтягнення</guilabel
></term>
            <listitem>
              <para
>визначення рівня застосування <guilabel
>Правил вертикальних розмірів</guilabel
>, </para>
            </listitem>
          </varlistentry>
        </variablelist>

        <sect4>
          <title
>Величини правил розмірів</title>
          <para
>У спадних списках властивостей панелі <interface
>Редактор властивостей</interface
> <guilabel
>Правила горизонтальних розмірів</guilabel
> і <guilabel
>Правила вертикальних розмірів</guilabel
> можна буде обрати такі пункти: </para>
          <variablelist>
            <varlistentry>
              <term
><guilabel
>Фіксований</guilabel
></term>
              <listitem>
                <para
>таке значення означає, що розміри віджета не будуть змінюватися автоматично, його розміри завжди залишатимуться такими, якими їх було визначено під час компонування. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Мінімальний</guilabel
></term>
              <listitem>
                <para
>такий варіант означає, що програма встановить мінімальний можливий розмір для віджета, цього буде достатньо для того, щоб не збільшувати розміри віджета, але початкові розміри буде збільшено, якщо це буде потрібно. Цим типом правил можна скористатися для примусового збільшення віджета до повної ширини або висоти, особливо, якщо ви встановите значення параметра розтягування, більше за 0. </para>
                <!--<screenshot>
                  <screeninfo
>Text field and two buttons within a grid layout (Minimum horizontal size policy is set for both buttons, so these are slightly wider than needed)</screeninfo>
                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="img/05_04_09_size_policy_minimum.png" format="PNG"/>
                    </imageobject>
                    <textobject>
                      <phrase
>Text field and two buttons within a grid layout (Minimum horizontal size policy is set for both buttons, so these are slightly wider than needed)</phrase>
                    </textobject>
                  </mediaobject>
                </screenshot
>-->
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Максимальний</guilabel
></term>
              <listitem>
                <para
>такий варіант означає, що початково програма встановить максимальний можливий розмір віджета, цей розмір буде зменшено без шкоди для зручності користування віджетом та перегляду його тексту, якщо для показу інших віджетів потрібен додатковий простір, </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Бажаний</guilabel
></term>
              <listitem>
                <para
>цей варіант означає, що початковий розмір віджета є найкращим і бажаним; але розміри віджета буде зменшено або збільшено так, щоб розташований на ньому текст можна було читати, </para>
                <!--<screenshot>
                  <screeninfo
>Text field and two buttons within a grid layout (Preferred horizontal size policy is set for both buttons)</screeninfo>
                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="img/05_04_09_size_policy_preferred.png" format="PNG"/>
                    </imageobject>
                    <textobject>
                      <phrase
>Text field and two buttons within a grid layout (Preferred horizontal size policy is set for both buttons)</phrase>
                    </textobject>
                  </mediaobject>
                </screenshot
>-->
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Розширяється</guilabel
></term>
              <listitem>
                <para
>такий варіант означає, що хоча програма намагатиметься зберегти початкові розміри віджета, але їх може бути зменшено та збільшено з метою раціонального використання площі, </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Мінімально розширяється</guilabel
></term>
              <listitem>
                <para
>такий варіант означає, що хоча програма намагатиметься зберегти початкові розміри віджета, їх може бути збільшено так, щоб віджет займав якомога більшу площу, </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><guilabel
>Ігнорується</guilabel
></term>
              <listitem>
                <para
>такий варіант означає, що початкові розміри віджета буде проігноровано; розміри віджета може бути збільшено так, щоб вони стали найбільшими можливими, але, зазвичай, ці розміри буде обмежено іншими віджетами форми. </para>
              </listitem>
            </varlistentry>
          </variablelist>
          <para
>Для віджетів різних типів типово застосовуються різні правила встановлення розмірів; наприклад, для віджетів кнопок типово встановлюються правила розмірів <guilabel
>Мінімальний</guilabel
> (у обох напрямках), а для віджетів текстових полів встановлюються правила визначення вертикального розміру <guilabel
>Фіксований</guilabel
>. </para>
          <para
>Найпоширенішими правилами зміни розмірів віджетів є <guilabel
>Бажаний</guilabel
>, <guilabel
>Мінімальний</guilabel
> і <guilabel
>Максимальний</guilabel
>. </para>
        </sect4>

        <sect4>
          <title
>Вертикальне та горизонтальне розтягнення</title>
          <para
>Для властивостей <guilabel
>Вертикальне розтягування</guilabel
> і <guilabel
>Горизонтальне розтягування</guilabel
> використовуються цілі числа, більші або рівні 0. За допомогою цих властивостей ви можете скоригувати застосування правил встановлення розмірів. Типовим значенням для цих властивостей є 0. Більше значення розтягування означає, що віджет буде розтягнуто більше, ніж віджет з меншим значенням розтягування. </para>
          <!--<screenshot>
            <screeninfo
>Size of button widgets affected by setting Vertical Stretch property of the second button to 1</screeninfo>
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/05_04_09_size_policy_vertical_stretch.png" format="PNG"/>
              </imageobject>
              <textobject>
                <phrase
>Size of button widgets affected by setting Vertical Stretch property of the second button to 1</phrase>
              </textobject>
            </mediaobject>
          </screenshot
>-->
        </sect4>
      </sect3>
    </sect2>

    <sect2 id="setting-widgets-size-and-position-by-hand">
      <title
>Визначення розмірів та розташування віджетів вручну</title>
      <para
>Якщо для вашої форми не буде встановлено основного компонування для автоматичного розташування і автоматичної зміни розмірів її віджетів, ймовірно, вам захочеться змінити розташування і розміри віджетів так, щоб форма виглядала акуратнішою і простішою у користуванні. Дизайнер форм &kexi; спрощує це завдання за допомогою таких груп команд: </para>
      <itemizedlist>
        <listitem>
          <para
>Коригування розмірів позначених віджетів. Відповідні пункти можна знайти у підменю <menuchoice
><guimenu
>Формат</guimenu
> <guisubmenu
>Вирівняти розміри віджетів</guisubmenu
></menuchoice
> основного меню програми і підменю <menuchoice
><guisubmenu
>Вирівняти розміри віджетів</guisubmenu
></menuchoice
> контекстного меню. Крім того, ви можете знайти спадне меню <guibutton
>Вирівняти розміри віджетів</guibutton
> на панелі інструментів. </para>
          <variablelist>
            <varlistentry>
              <term
><!--<img src="img/aofit.png" class="icon"
>--><guilabel
>Влаштувати</guilabel
></term>
              <listitem>
                <para
>Програма змінить розміри позначених віджетів так, щоб ці розміри відповідали бажаному розміру і вмістові віджетів. Наприклад, розміри текстової мітки буде змінено так, щоб у її віджеті вмістився весь її текст. Розташування віджетів змінено не буде. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aogrid.png" class="icon"
>--><guilabel
>До ґратки</guilabel
></term>
              <listitem>
                <para
>Програма змінить розміри позначених віджетів так, що кожен з кутів віджета буде розташовано у точці перетину ліній ґратки форми (або іншого контейнера). Розташування віджета також може бути трошки змінено. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aoshortest.png" class="icon"
>--><guilabel
>До найкоротшого</guilabel
></term>
              <listitem>
                <para
>Програма змінить висоту позначених віджетів так, щоб кожен з них мав ту саму висоту, що і найкоротший віджет. Розташування віджетів змінено не буде. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aotallest.png" class="icon"
>--><guilabel
>До найвищого</guilabel
></term>
              <listitem>
                <para
>Програма змінить висоту позначених віджетів так, щоб кожен з них мав ту саму висоту, що і найвищий віджет. Розташування віджетів змінено не буде. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aonarrowest.png" class="icon"
>--><guilabel
>До найвужчого</guilabel
></term>
              <listitem>
                <para
>Програма змінить ширину позначених віджетів так, щоб кожен з них мав ту саму висоту, що і найвужчий віджет. Розташування віджетів змінено не буде. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aowidest.png" class="icon"
>--><guilabel
>До найширшого</guilabel
></term>
              <listitem>
                <para
>Програма змінить ширину позначених віджетів так, щоб кожен з них мав ту саму ширину, що і найширший віджет. Розташування віджетів змінено не буде. </para>
              </listitem>
            </varlistentry>
          </variablelist>
        </listitem>
        <listitem>
          <para
>Вирівнювання розташування позначених віджетів. Відповідні пункти можна знайти у підменю <menuchoice
><guimenu
>Формат</guimenu
> <guisubmenu
>Вирівняти позиції віджетів</guisubmenu
></menuchoice
> основного меню програми і у підменю <menuchoice
><guisubmenu
>Вирівняти позиції віджетів</guisubmenu
></menuchoice
> контекстного меню. Крім того, спадне меню <guibutton
>Вирівняти позиції віджетів</guibutton
> можна знайти на панелі інструментів. </para>
          <variablelist>
            <varlistentry>
              <term
><!--<img src="img/aoleft.png" class="icon"
>--><guilabel
>Наліво</guilabel
></term>
              <listitem>
                <para
>Всі ліві краї віджетів буде пересунуто так, щоб їх було розташовано на вертикальній лінії, що збігається з лівим краєм найлівішого віджета. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aoright.png" class="icon"
>--><guilabel
>Направо</guilabel
></term>
              <listitem>
                <para
>Всі праві краї віджетів буде пересунуто так, щоб їх було розташовано на вертикальній лінії, що збігається з правим краєм найправішого віджета. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aotop.png" class="icon"
>--><guilabel
>Наверх</guilabel
></term>
              <listitem>
                <para
>Всі верхні краї віджетів буде пересунуто так, щоб їх було розташовано на горизонтальній лінії, що збігається з верхнім краєм найвищого віджета. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aobottom.png" class="icon"
>--><guilabel
>Вниз</guilabel
></term>
              <listitem>
                <para
>Всі нижні краї віджетів буде пересунуто так, щоб їх було розташовано на горизонтальній лінії, що збігається з нижнім краєм найнижчого віджета. </para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <term
><!--<img src="img/aopos2grid.png" class="icon"
>--><guilabel
>До ґратки</guilabel
></term>
              <listitem>
                <para
>Всі верхні ліві кути віджетів буде пересунуто так, щоб їх було розташовано у найближчій точці перетину ліній сітки. </para>
              </listitem>
            </varlistentry>
          </variablelist>
          <para
>Жодна з наведених вище команд не змінює розмірів віджетів.</para>
        </listitem>
      </itemizedlist>
      <para
>Крім того, передбачено додаткові пункти: <guimenuitem
>Пересунути віджет на передній план</guimenuitem
> (тобто у позицію над усіма іншими віджетами) і <guimenuitem
>Пересунути віджет на задній план</guimenuitem
> (тобто у позицію під усіма іншими віджетами). Ці два пункти використовуються нечасто, оскільки розташування віджетів один над одним є досить рідкісним (окрім випадків віджетів-контейнерів, які містять у собі інші віджети). Крім того, зауважте, що наведення вказівника миші на віджет з наступним клацанням лівою кнопкою миші достатньо для пересування віджета на передній план. </para>
    </sect2>

    <sect2 id="setting-the-tab-order">
      <title
>Визначення порядку вкладок</title>
      <para
>Доступ до функціональних можливостей віджетів, які перебувають у фокусі, можна отримати за допомогою клавіатури. Фокус пов’язано з віджетом, показаним у режимі перегляду даних форми. Одночасно у фокусі може перебувати лише один віджет. Найпоширенішим використанням фокуса є введення тексту (поле для введення тексту має бути задіяним, тобто перебувати у фокусі). Ще одним прикладом є віджет кнопки: якщо такий віджет перебуває у фокусі, ви можете «натиснути» кнопку за допомогою натискання клавіш <keycombo action="press"
>&Enter;</keycombo
> або <keycombo action="press"
><keycap
>Пробіл</keycap
></keycombo
>, а не кнопки миші. </para>
      <para
>Існує декілька способів активувати віджет (пересунути фокус на потрібний віджет): клацання кнопкою миші, прокручування коліщатка миші, коли вказівник перебуває над віджетом, або натискання клавіші <keycombo action="press"
>&Tab;</keycombo
>. Останній спосіб часто використовують через його швидкість і зручність для користувачів. Доступністю способів фокусування можна керувати за допомогою властивості <guilabel
>Правила фокусування</guilabel
> віджета. </para>
      <para
>Фокусування (активація) віджетів за допомогою клавіші <keycombo action="press"
>&Tab;</keycombo
> і параметр порядку табуляції взаємопов’язано. Після натискання клавіші <keycombo action="press"
>&Tab;</keycombo
> фокус буде пересунуто на наступний віджет, отже для форми має бути встановлено порядок табуляції. </para>
      <para
>Щоб змінити порядок вкладок для віджета форми:</para>
      <procedure>
        <step>
          <para
>Перемкніть програму на режим дизайну форми.</para>
        </step>
        <step>
          <para
>Скористайтеся пунктом меню <menuchoice
><guimenu
>Правка</guimenu
><guimenuitem
>Зміна порядку табуляції...</guimenuitem
></menuchoice
>. У відповідь програма відкриє діалогове вікно <guilabel
>Зміна порядку табуляції</guilabel
>. За допомогою цього вікна ви зможете змінити відповідні параметри форми. </para>
          <!--<screenshot>
            <screeninfo
>A window for editing tab order for a form</screeninfo>
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/05_04_11_tab_stop_dialog.png" format="PNG"/>
              </imageobject>
              <textobject>
                <phrase
>A window for editing tab order for a form</phrase>
              </textobject>
            </mediaobject>
          </screenshot
>-->
          <para
>У вікні міститиметься список з двома стовпчиками: у першому стовпчику буде показано назви віджетів, у другому — типи віджетів. Щоб спростити визначення значення назв і типів для користувача, програма показуватиме піктограми, пов’язані з відповідними типами. У списку буде показано лише віджети, для яких дозволено використання правил пересування фокуса за допомогою клавіші &Tab;. За допомогою цього вікна ви зможете змінити порядок табуляції або встановити автоматичний порядок табуляції. </para>
        </step>
        <step>
          <para
>Щоб змінити порядок вкладок, виконайте одну з таких дій:</para>
          <itemizedlist>
            <listitem>
              <para
>Наведіть вказівник миші на пункт назви вибраного віджета у списку віджетів, клацніть лівою кнопкою миші, а потім перетягніть його у бажану позицію (вгору чи вниз) за допомогою вказівника миші. </para>
            </listitem>
            <listitem>
              <para
>Наведіть вказівник миші на пункт назви вибраного віджета у списку віджетів, клацніть лівою кнопкою миші, а потім натискайте кнопки <guibutton
>Пересунути вгору</guibutton
> і <guibutton
>Пересунути вниз</guibutton
>, щоб пересунути віджети на бажану позицію. </para>
            </listitem>
            <listitem>
              <para
>Позначте пункт <guilabel
>Опрацьовувати порядок табуляції автоматично</guilabel
>, щоб встановити автоматичний порядок табуляції для форми. Якщо цей пункт буде позначено, всі зміни, внесені до списку віджетів вручну, не буде взято до уваги — &kexi; визначатиме порядок табуляції у автоматичному режимі. Автоматичне впорядкування означає, що найвищий лівий віджет буде у порядку фокусування першим (або найвищий правий віджет, якщо у вашій операційній системі використовується лівописне компонування), наступні віджети у списку визначатимуться у напрямку зліва праворуч (або справа ліворуч у випадку лівопису), а потім згори вниз. </para>
              <!--<screenshot>
                <screeninfo
>Automatic tab order for a form</screeninfo>
                <mediaobject>
                  <imageobject>
                    <imagedata fileref="img/05_04_11_auto_tab_stop.png" format="PNG"/>
                  </imageobject>
                  <textobject>
                    <phrase
>Automatic tab order for a form</phrase>
                  </textobject>
                </mediaobject>
              </screenshot
>-->
            </listitem>
          </itemizedlist>
        </step>
        <step>
          <para
>Натисніть кнопку <guibutton
>Гаразд</guibutton
>, щоб підтвердити внесені зміни. Натискання кнопки <guibutton
>Скасувати</guibutton
> призведе до відкидання внесених змін. </para>
        </step>
      </procedure>
    </sect2>
  </sect1>
