• Nie Znaleziono Wyników

Instrukcja cyklu For Each … Next

N/A
N/A
Protected

Academic year: 2021

Share "Instrukcja cyklu For Each … Next"

Copied!
2
0
0

Pełen tekst

(1)

Copyright © 2019,mgr inż. Janusz Bonarowski 1

Instrukcja cyklu For Each … Next

Wcześniej poznaliśmy już instrukcje cyklu, For … Next, Do Until … Loop, Do While … Loop – patrz materiał Ćwiczenie VB6.0_Instrukcja cyklu tzw. pętla1

Gdy chcemy odwołać się do grupy obiektów tego samego typu w celu wykonania na nich takiej samej operacji – możemy posłużyć się jeszcze jedną instrukcją cyklu For Each … Next.

Przykładem takiej sytuacji jest procedura Narysuj, w zadaniu budowania programu do projektowania wału.

W procedurze tej, w celu odświeżenia rysunku wału – który wcześniej jest skasowany - rysujemy od nowa cały wał, stopień po stopniu, pobierając średnicę i długość kolejnego stopnia z kolekcji stopni walu.

Private Sub Narysuj()

Dim wsk_kolekcji As Stopien_walu x_pocz = X_osi

For Each wsk_kolekcji In Kolekcja_stopni_walu

objRys.DrawRectangle(objPiorWal,x_pocz,Y_osi-wsk_kolekcji.Srednica_stopnia/2, wsk_kolekcji.Dlugosc_stopnia, wsk_kolekcji.Srednica_stopnia) x_pocz = x_pocz + wsk_kolekcji.Dlugosc_stopnia

Next End Sub

Procedura ta została omówiona w materiale dotyczącym projektowania walu.

Zadanie

Aby dodatkowo przećwiczyć instrukcję For Each wykonajmy program, który obsługuje wszystkie 8 obiektów TextBox. Aplikacja posiada 3 przyciski, rys. 1.

Rysunek 1

Przycisk [Wstaw dane] wstawia kolejno do wszystkich TextBox-ów liczby od 1 do 8, przycisk [Kasuj] – kasuje zawartość wszystkich TextBox-ów.

Przycisk [Test] zmienia kolor tła TextBox-ów na czerwono, jeśli TextBox zawiera wartość większą od 4.

W tej procedurze instrukcję For Each umieszczono dodatkowo w strukturze obsługi błędów Try … Catch, aby uniknąć błędu wtedy, gdy funkcja konwersji CSng(Element.Text) będzie próbowała przekonwertować zawartość TextBox-u na liczbę rzeczywistą, a zawartość ta będzie pusta lub będzie tekstem, co jest błędem.

Private Sub ButtonKasuj_Click(sender As Object, e As EventArgs) _

Handles ButtonKasuj.Click 'Kasowanie zawartości WSZYSTKICH TextBox-ów na formularzu

'i ustawianie koloru tła na biały.

Dim Element As Control

For Each Element In Me.Controls.OfType(Of TextBox) Element.Text = ""

Element.BackColor = Color.White Next

End Sub

1 https://poczta.simr.pw.edu.pl/~jbo/vb/vb_express2008/vb6.0_instrukcje_cyklu_opis.pdf

(2)

Copyright © 2019,mgr inż. Janusz Bonarowski 2 Private Sub ButtonWstawDane_Click(sender As Object, e As EventArgs) _

Handles ButtonWstawDane.Click 'Zapełnianie WSZYSTKICH TextBox-ów na formularzu

'kolejnymi liczbami całkowitymi Dim Element As Control

Dim Liczba As Integer = 1

For Each Element In Me.Controls.OfType(Of TextBox) Element.Text = CStr(Liczba)

Liczba = Liczba + 1 Next

End Sub

Private Sub ButtonTest_Click(sender As Object, e As EventArgs) _

Handles ButtonTest.Click 'Ustawianie koloru tła TextBox-ów na czerwono

'jeśli wartość w TextBox-sie jest większa o 4 Dim Element As Control

Try

For Each Element In Me.Controls.OfType(Of TextBox) If CSng(Element.Text) > 4 Then

Element.BackColor = Color.Red Else

Element.BackColor = Color.White End If

Next

Catch ex As Exception

MsgBox("W TextBox-ach muszą znajdować się liczby.") End Try

End Sub

Cytaty

Powiązane dokumenty

o Within two weeks from absence (and provided that this does not exceed deadline for a particular project) the student will complete the omitted lab and present this work to

Free trial available

Free trial available

It is worth noting that the Code introduce single-mandate constituencies in the elections to the Senate which in general failed to eliminate the dependency of that chamber

(5 points) In a group of 25 high school students, 14 students like maths and 9 students like physics.. The number of students who like both subjects is half the number of students

"If the oven is working and the food supply is adequate then the oven is working or the food supply is

Th e rate of change of displacement with respect to time is called velocity, and it is normally given the symbol v. KEY POINT 20.1 KEY

Find the derivative of arcsec x with respect to x, justifyingx. carefully the sign of