Студопедия
rus | ua | other

Home Random lecture






Практическая работа 36. Генерация текста


Date: 2015-10-07; view: 419.


Генерация текста - использование набора объектов

Рассматривается конструирование строки текста, при этом составляющие строки выбираются с использованием набора элементов управления. Результирующая фраза образуется конкатенацией составляющих.

Ниже описано назначение элементов управления (), используемых в примере:

· ListBox содержит список партий начала прошлого столетия (большевики, анархисты, центр, слева,

· массив из трeх элементов CheckBox предназначен для выбора одновременно возможных характеристик членов партий (например: растерянные, шумные :), здесь - определение1, см. , центр,

· массив их двух элементов OptionButton предназначен для выбора взаимоисключающих характеристик (например: респектабельные, оборванные), здесь - определение2, см. , центр, справа,

· соответственно вышеописанному используются 2 объекта Frame со свойствами Caption: определение1, определение2, см. центр и центр справа,

 


Рис. 5.5.Генерация текста; вид формы

 

· текстовое поле внизу служит для вывода сформированной фразы,

· элемент управления HscrollBar - это элемент установки дискретных значений заданного диапазона (свойства Max, Min, Value устанавливают границы области значений и текущее значение; свойство LargeChange определяет шаг изменения данных при перемещении в выбранном диапазоне). На рис. 5.5 элемент управления HscrollBar находится вверху слева. Событие Changeпроисходит при изменении положения ползунка на линейке прокрутки, событие Scroll генерируется при непрерывном перемещении ползунка,

· элемент управления Label1 служит для вывода числа присутствующих на митинге, собрании (данные элемента управленияHscrollBar ), см. рис. 5.5 слева, ниже элемента управления HscrollBar,

· элемент управления ComboBox содержит список мест проведения митингов, партийных собраний (на Красной площади, на улицах, : ), см. рис. 5.5 справа,

· несколько полей меток в верхней части формы и одна внизу над текстовым полем используются для надписей.

табл. 5.4 содержит список используемых элементов управления и значений некоторых свойств.

Таблица 5.4. Генерация текста; элементы управления и значения свойств
Элемент управления Значение свойства
TextBox Name=txt1
  Multiline=Тrue
ListBox Name=lstPartei
ComboBox Name=cboOrt
  Style=2 - DrogDownList
Frame Name=Attr1
  Caption=определение1
CheckBox(0) Name=chkAttribut
  Caption=растерянных
  Index=0
CheckBox(1) Name=chkAttribut
  Index=
  Caption=шумных
CheckBox(2) Name=chkAttribut
  Index=2
  Caption=озабоченных
Frame Name=Attr2
  Caption= определение2
OptionButton(0) Name=optAussehen
х Caption=респектабельны
  Index=0
OptionButton(1) Name=optAussehen
  Сaption=оборванных
  Index=1
Label Name=lbl1
HScrollBar Name=hsbMenge
  Max=100
  Min=0
  Value=100
  LadgeChange=10

При выполнении процедуры Form_Load (), см. код ниже, создаeтся список (lstPartei - список названий партий) ListBox и список (мест проведения митингов, партсобраний) ComboBox (Name = cboOrt), см. две инструкции With : End With. Соответствие подлежащее - сказуемое обеспечивается соответствием нумерации элементов списков strVerb() и lstPartei(). Маркированные на экране после старта проекта элементы списков определяются заданием значений свойства ListIndex.

Процедура Private Sub ausgeben () формирует текст (strausgabe) с использованием параметров набора управляющих элементов.

Определениями в предложении могут быть одно, два или три значения свойства Caption элементов массива объектов CheckBox (i) (см. цикл For i = 0 To 2:); возможность обработки в цикле обеспечена наличием массива объектов. Далее в процедуре Private Sub ausgeben () проводится анализ состояния переключателей optAussehen(), что позволяет сделать выбор следующего (уже из группы взаимоисключающих) определения в искомом предложении.

При конструировании искомого предложения (strausgabe) используются элементы списков ListBox (lstPartei - список имеющихся партий) и ComboBox (cboOrt - место проведения митингов, партсобраний). Для вывода на экран сказуемого используется конструкция ( lstPartei.ListIndex ), см. конец процедуры Private Sub ausgeben (), возвращающая номер выбранного элемента.

Следующие процедуры служат для:

· Private Sub cboOrt_Click() - задания места проведения митинга, партсобрания,

· Private Sub chkattribut_Click(index As Integer) - выбора одновременно возможных определений;

· Private Sub hsbMenge_Change() - задания количества присутствующих на митинге, собрании,

· Private Sub hsbMenge_scroll() - задания количества присутствующих;

· Private Sub lstPartei_Click() - выбора партии из списка имеющихся;

· Private Sub optAussehen_Click(index As Integer) - выбора взаимоисключающих определений.

Во всех случаях вызывается процедура Private Sub ausgeben (), что позволяет при выборе пользователем значений параметров элементов управления/элементов списков конструировать предложение. Учeт особенностей построения предложения в английском, немецком, русском и т.д. языках может быть реализован в данном примере при конструировании строки strausgabe.

Последовательность действий:

· создать на форме необходимые элементы управления,

· задать значения их свойств,

· ввести код, данный ниже, стартовать проект,

· сделать выбор партии в списках партий,

· задать число присутствующих (элемент управления HscrollBar ),

· выбрать определения в полях определение1 и определение2,

· выбрать место проведения митинга, собрания (список ComboBox),

· наблюдать результат, рис. 5.5

·

(General) (Declarations) Dim strausgabe As String, strattribut As String, i As Integer' описание массива сказуемых с дополнениямиDim strVerb(6) As String Private Sub Form_Load() With lstPartei.AddItem ("большевиков").AddItem ("меньшевиков").AddItem ("эсеров").AddItem ("бундовцев").AddItem ("кадетов").AddItem ("анархистов").ListIndex = 0End With With cboOrt.AddItem ("на Красной площади").AddItem ("на улицах").AddItem ("в подъездах").AddItem ("в пивной").AddItem ("в переулках").ListIndex = 0End With strVerb(0) = "выкрикивают "Да здравствует Коммунизм !!""strVerb(1) = "порицают большевиков"strVerb(2) = "произносят пламенные речи"strVerb(3) ="поносят всех"strVerb(4) = "кричат "Ура !!"strVerb(5) = "кричат: "Анархия - мать порядка !!"lbl1.Caption = "Присутствовало: " & Str(hsbMenge.Value)End Sub Private Sub ausgeben()strattribut = ""For i = 0 To 2If chkattribut(i).Value = 1 ThenIf strattribut = " Thenstrattribut = chkattribut(i).CaptionElsestrattribut = strattribut &", " & chkattribut(i).CaptionEnd IfEnd IfNext iIf optAussehen(0).Value ThenIf strattribut = "" Thenstrattribut = "респектабельных"Elsestrattribut = strattribut & ", " &"респектабельных"End IfElseIf strattribut = " Thenstrattribut = "оборванных"Elsestrattribut = strattribut & ", " & "оборванных"End IfEnd Ifstrausgabe = Str(hsbMenge.Value) & " "strausgabe = strausgabe & strattribut & " "strausgabe = strausgabe & lstPartei.List(lstPartei.ListIndex) & " "strausgabe = strausgabe & cboOrt.List(cboOrt.ListIndex) & " "strausgabe = strausgabe & strVerb(lstPartei.ListIndex) & " "txt1.Text = strausgabeEnd Sub ' задание места проведения митинга, партсобранияPrivate Sub cboOrt_Click() ausgebenEnd Sub ' задание одновременно возможных характеристик членов ' партийPrivate Sub chkattribut_click(index As Integer)ausgebenEnd Sub ' задание количества присутствующих на митинге, собранииPrivate Sub hsbMenge_Change()lbl1.Caption = "Присутствовало: " & Str(hsbMenge.Value)ausgebenEnd Sub ' задание количества присутствующих на митинге, собранииPrivate Sub hsbMenge_scroll() lbl1.Caption = "Присутствовало: " & Str(hsbMenge.Value)End Sub Private Sub lstPartei_Click() ' выбор из списка имеющихся ' партийausgebenEnd Sub ' задание взаимоисключающих характеристик членов партийPrivate Sub optAussehen_Click(index As Integer) ausgebenEnd Sub
<== previous lecture | next lecture ==>
Практическая работа 35. Элемент управления Animation | Объект меню
lektsiopedia.org - 2013 год. | Page generation: 0.003 s.