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

Home Random lecture






Практическая работа 16. Оператор LIKE - сравнение элементов массивов со строкой, введeнной в диалоговом режиме; элемент управления Timer


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


Задание: создать в диалоговом режиме 4 массива национальностей, проживающих в 4-х странах (, в центре вверху), затем вывести в массив ListBox из 4-х элементов (слева в центре). Ввести в диалоговом режиме одну из 10 - 16 национальностей (введeнных ранее), для ввода использовать текстовое поле (, слева). С использованием оператора LIKEнайти страны проживания этой национальности. Обеспечить вывод результатов поиска в поля меток (4 поля метки слева внизу). Обеспечить перемещение (использовать элемент управления Timer ) флага страны проживания после нахождения страны проживания.

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

1. Создать на форме элементы управления, данные на соответствующие идентификаторы приведены в коде, данном ниже:

o 3 командные кнопки, см.

§ Command1 (Caption = Vergleichen (Muster)),

§ Command2 (Caption = Nationalitaet-Massiv),

§ Command3 (Caption = MassivList),

o 4 массива элементов TextBox: (Text1(0) - Text1(3)), (Text2(0) - Text2(3)), (Text3(0) - Text3(3)), (Text4(0) - Text4(3)) для ввода национальностей, вверху в центре,

o массив ListBox из 4-х элементов для вывода 4-х масивов национальностей, слева в центре,

o 4 объекта Image, в качестве значений свойства Picture использовать символы флагов 4-х стран (файлы *. ico),

o 4 поля Label для вывода результатов, см. : 2-ой столбец слева внизу,

o несколько меток для надписей, см.

o элемент управления TextBox (Text5) для ввода искомой национальности, , выше полей Label (используемых для вывода результатов),

2. ввести код, затем стартовать проект,

3. в диалоговом режиме ввести национальности (для этого созданы 16 текстовых пoлей), сделать щелчок на кнопке "Nationalitaet-Massiv", затем - на кнопке - "Massiv-List",

4. ввести в поле Text5 одну из ранее введённых национальностей, далее сделать щелчок на кнопке "Vergleichen (Muster)". После выполнения поиска стартуют процедуры TimerК_Timer (), см. код и

 

(General) (Declarations)

Option Compare Text

Dim res As Boolean

Dim muster As String ' описание шаблона для оператора Like

' zeile - описание вводимой строки для сравнения с шаблоном

' (оператор Like)

Dim zeile As String

Dim i As Integer, j As Integer

' х1 - х4 - переменные, обеспечивающие старт процедур

' TimerК_Timer(),

Dim x1 As Variant, x2 As Variant, x3 As Variant, x4 As Variant

Dim deu(4) As String

' deu(4) - grossb(4) - массивы национальностей, проживающих в

' соответствующих 4-х странах

Dim oest(4) As String, span(4) As String, grossb(4) As String

 

' создание массивов национальностей, проживающих в 4-х

' странах: deu(4) - grossb(4) (кнопка Nationalitaet-Massiv)

Private Sub Command2_Click()

For i = 1 To 4

deu(i) = Text1(i - 1).Text: oest(i) = Text2(i - 1).Text

span(i) = Text3(i - 1).Text: grossb(i) = Text4(i - 1).Text

Next i

End Sub

' вывод в массив элементов ListBox элементов массивов

' национальностей, см. рис. 5.4: командная кнопка Caption =

' MassivLIST

Private Sub Command3_Click()

For j = 1 To 4

List1(0).List(j - 1) = deu(j): List1(1).List(j - 1) = oest(j)

List1(2).List(j - 1) = span(j): List1(3).List(j - 1) = grossb(j)

Next j

End Sub

 

' выполнение поиска - использование оператора Like; старт

' процедур, обеспечивающих перемещение флагов

Private Sub Command1_Click()

' ввод в диалоговом режиме искомой национальности

zeile = Text5.Text

For i = 1 To 4

' в качестве шаблона используется массив,

' просматриваемый в цикле

muster = deu(i)

' переменной типа Boolean присваивается возвращае-

' мое значение

res = zeile Like muster

' если переменная res есть True, то вывести название

' страны, где проживает национальность "zeile", вводимая в

' диалоговом режиме; далее определяется код х1: (Asc(x1)),

' что обеспечивает выполнение процедуры Timer1_Timer() (см.

' ниже), иначе - просматривать массив далее

If res Then Label11 = "Deutschland": x1 = Label11: x1 = Asc(x1): GoTo 301

Next i

' если res всегда есть False, то вывести поясняющий текст:

' " Deutschland - Nein" - "В Германии не проживает"

Label11.Caption = "Deutschland - Nein"

 

' блоки 301 - 303 работают аналогично вышеописанному

 

301 For i = 1 To 4

muster = oest(i): res = zeile Like muster

If res Then Label12 = "Oesterreich": x2 = Label12: x2 = Asc(x2): GoTo 302

Next i

Label12.Caption = "Oesterreich - Nein"

 

302 For i = 1 To 4

muster = span(i): res = zeile Like muster

If res Then Label13 = "Spanien": x3 = Label13: x3 = Asc(x3): GoTo 303

Next i

Label13.Caption = "Spanien - Nein"

 

303 For i = 1 To 4

muster = grossb(i): res = zeile Like muster

If res Then Label14 = "Grossbritan.": x4 = Label14: x4 = Asc(x4): GoTo 304

Next i

Label14.Caption = "Grossbritanien - Nein"

304 End Sub

 

' 4 процедуры ниже обеспечивают перемещение флагов стран

' проживания национальности, вводимой в диалоговом режи-

' ме (cм. процедуру Command1_Click()). Процедуры стартуют

' после того, как определены переменные х1 - х4, т.е. найдена

' страна

Private Sub Timer1_Timer()

Image1.Left = Int(80 * Rnd * x1): Image1.Top = Int(90 * Rnd * x1)

End Sub

 

Private Sub Timer2_Timer()

Image2.Left = Int(80 * Rnd * x2): Image2.Top = Int(90 * Rnd * x2)

End Sub

 

Private Sub Timer3_Timer()

Image3.Left = Int(80 * Rnd * x3): Image3.Top = Int(90 * Rnd * x3)

End Sub

 

Private Sub Timer4_Timer()

Image4.Left = Int(80 * Rnd * x4): Image4.Top = Int(90 * Rnd * x4)

End Sub

 


Рис. 2.8.Оператор LIKE (Где проживает национальость : ?)

Лекция 3:


<== previous lecture | next lecture ==>
Практическая работа 15. Нахождение максимума (численности населения городов с выводом соответствующего названия города) | Элементы управления DriveListBox, DirListBox и FileListBox
lektsiopedia.org - 2013 год. | Page generation: 0.244 s.