Poniżej znajduje się procedura obliczenia energii z całego dnia.
Private Sub btnOblicz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOblicz.Click
If txtWaga.Text = "" Then
MessageBox.Show("Wpisz wagę produktu w gramach.", Uwaga")
Exit Sub
End If
sit = lstMeal.Items.Add(txtNazwao.Text) ' Wpisanie nazwy wybranego produktu do
' tabeli posiłku o nazwie lstMeal
Dim Oen, Sen As Integer ' Deklaracja wartości Oen - energia produktu
' o określonej wadze, Sen - suma energii
Oen = (txtEno.Text * txtWaga.Text) / 100 ' Obliczenie energii
Oen = Format(Oen, "###") ' sformatowanie obliczonej energii
sit.Subitems.Add(Oen) ' Wpisanie obliczonej energii do tabeli
Sen = txtSen.Text ' Przejęcie wartości sumy energii
' Początkowa wartość Text w okienku
' powinna być wpisana 0
Sen = Sen + Oen ' Suma
Sen = Format(Sen, "###")
txtSen.Text = Sen
End Sub ' koniec procedury
Doświadczenia Programisty Visual Basic 2005
czwartek, 31 października 2013
środa, 30 października 2013
Dalszy ciąg programu "Komponent1"
Powyżej przedstawiony jest ostateczny formularz programu. Do poprzedniego formularza należy dodać następujące okienka:
1 Okienko tekstowe txtWaga
2. Dodaj przycisk btnOblicz, text "Obliczenie" i kliknij w ten przycisk dwa razy, w celu dodania procedury.
3. Poniżej dodaj dwa przyciski:
a. btnKaswszystko , tekst "Kasowanie całego posiłku" i kliknąć w niego dwa razy.
b. btnKaspoj , tekst "Kasowanie pojedyńczego" i kliknąć w niego dwa razy.
4. Dodaj okno listview o nazwie lstMeal , tak jak na formularzu i kliknij w niego też dwa razy.
5. Dodaj też okienko tekstowe txtSen
6. Dodaj przycisk btnzapismeal , kliknij w okno dwa razy
7. Dodaj btnWykres
8. Dodaj btnEnd
sobota, 26 października 2013
Wyświetlanie w oknach wybranego produktu z tabeli
Poniżej tabeli pokarmowej lstPokarm umieszczone są okna do wyświetlania wybranego produktu z tabeli. Należy kliknąć dwa razy w okno tabeli i następnie uzupełnić kod.
Private Sub lstPokarm_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstPokarm.SelectedIndexChanged
Dim bf As ListView.SelectedListViewItemCollection = _
lstPokarm.SelectedItems
For Each sit In bf
txtNazwao.Text = sit.Subitems(0).Text)
pEn = Decimal.Parse(sit.Subitems(1).Text)
txtEno.Text = Ctype(pEn, String)
Next
End Sub
Po uruchomieniu programu (klawisz F5), można sprawdzić działanie programu. Wyświetlenie wybranego produktu z tabeli, umożliwia przeliczenie danych po wprowadzeniu wagi.
W następnym razem przedstawię sposób obliczeń.
Private Sub lstPokarm_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstPokarm.SelectedIndexChanged
Dim bf As ListView.SelectedListViewItemCollection = _
lstPokarm.SelectedItems
For Each sit In bf
txtNazwao.Text = sit.Subitems(0).Text)
pEn = Decimal.Parse(sit.Subitems(1).Text)
txtEno.Text = Ctype(pEn, String)
Next
End Sub
Po uruchomieniu programu (klawisz F5), można sprawdzić działanie programu. Wyświetlenie wybranego produktu z tabeli, umożliwia przeliczenie danych po wprowadzeniu wagi.
W następnym razem przedstawię sposób obliczeń.
Kasowanie wybranego produktu z zapisanej bazy
Poniżej przedstawiam kod do usuwania zapisanego produktu z bazy. W tym celu należy kliknąć dwa razy w okienko "Kasowanie". Wyświetli się wtedy procedura, do której należy dopisać poniższy kod.
Private Sub_Kas_Click(ByVal sender As Object, ByVal e As System.EventsArgs) Handles btnKas.Click
If lstPokarm.SelectedItems.Count = 0 Then ' Gdy nie jest wybrany produkt
MessageBox.Show("Wybierz produkt z tabeli do skasowania", "Uwaga")
Exit Sub
End If
If lstPokarm.SelectedItems.Count <> 0 Then ' Gdy wybrano
msg = " Czy na pewno chcesz skasować ten produkt z bazy"
tyt = " Kasowanie"
styl =MsgBoxStyle.DefaultButton2 Or _
MsgBox.Style.YesNo
res = MsgBox(msg, styl, tyt)
If res = MsgBoxResult.No Then
Exit Sub
Else
For Each i As ListViewItem In lstPokarm.SelectedItems ' Otwarcie pętli
lstPokarm.Items.Remove(i) ' Skasowanie z tabeli produktu
Next
Kill("Pokarm") ' Skasowanie calej bazy
FileOpen(1, "Pokarm", OpenMode.Append) ' Zapis zawartości tabeli
For i = 0 To lstPokarm.Items.Count() - 1
Write(1, lstPokarm.Items(i).SubItems(0).Text)
Write(1, lstPokarm.Items(i).SubItems(1).Text)
Next
FileClose(1) ' Zamknie pliku
End If
txtNazwao.Text = "": txtEno.Text = "" ' wygaszenie odczytu poniżej tabeli
End If
Odczyt() ' Ponowne odczytanie bazy w tabeli
End Sub
Private Sub_Kas_Click(ByVal sender As Object, ByVal e As System.EventsArgs) Handles btnKas.Click
If lstPokarm.SelectedItems.Count = 0 Then ' Gdy nie jest wybrany produkt
MessageBox.Show("Wybierz produkt z tabeli do skasowania", "Uwaga")
Exit Sub
End If
If lstPokarm.SelectedItems.Count <> 0 Then ' Gdy wybrano
msg = " Czy na pewno chcesz skasować ten produkt z bazy"
tyt = " Kasowanie"
styl =MsgBoxStyle.DefaultButton2 Or _
MsgBox.Style.YesNo
res = MsgBox(msg, styl, tyt)
If res = MsgBoxResult.No Then
Exit Sub
Else
For Each i As ListViewItem In lstPokarm.SelectedItems ' Otwarcie pętli
lstPokarm.Items.Remove(i) ' Skasowanie z tabeli produktu
Next
Kill("Pokarm") ' Skasowanie calej bazy
FileOpen(1, "Pokarm", OpenMode.Append) ' Zapis zawartości tabeli
For i = 0 To lstPokarm.Items.Count() - 1
Write(1, lstPokarm.Items(i).SubItems(0).Text)
Write(1, lstPokarm.Items(i).SubItems(1).Text)
Next
FileClose(1) ' Zamknie pliku
End If
txtNazwao.Text = "": txtEno.Text = "" ' wygaszenie odczytu poniżej tabeli
End If
Odczyt() ' Ponowne odczytanie bazy w tabeli
End Sub
piątek, 25 października 2013
Procedura dotycząca wpisywania wartości liczbowych
Procedura ta ma za zadanie informowanie użytkownika programu o błędnym wpisaniu do okienka textbox zamiast wartości liczbowych, innych znaków. Tak jak w poprzedniej procedurze, należy kliknąć dwa razy w okienko i po wyświetleniu procedury wpisać kod.
Private Sub txtEnz_TextChanged (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEnz.TextChanged
If txtEnz.Text = "" Then Exit Sub
If Not IsNumeric(txtEnz.Text) Then
MessageBox.Show("Wpisz tutaj tylko wartość liczbową.","Uwaga")
txtEnz.Text = ""
Exit Sub
End if
Private Sub txtEnz_TextChanged (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEnz.TextChanged
If txtEnz.Text = "" Then Exit Sub
If Not IsNumeric(txtEnz.Text) Then
MessageBox.Show("Wpisz tutaj tylko wartość liczbową.","Uwaga")
txtEnz.Text = ""
Exit Sub
End if
środa, 23 października 2013
Wykrywanie błędów przy zapisie do bazy
Przy zapisie nowego produktu do bazy, mogą wystąpić błędy, lub powtórny zapis tego samego produktu. Poniższa procedura sprawdza, czy nie ma już zapisanego produktu.
Private Sub txtNazwa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNazwa.TextChanged
For Each sa As String In lstProdukt.Items ' Otwarcie pętli poszukującej produktu
' w zapisanej tabeli nazw produktu
' tabela lstProdukt jest ukryta w formularzu
' poprzez lstProdukt.Visible = False
If sa = txtNazwa.Text Then
lstProdukt.Text = sa
MessageBox.Show("Ten produkt jest już wpisany w bazie! ", "Uwaga")
txtNazwa.Text = ""
Exit Sub
End If
Next
End Sub
Private Sub txtNazwa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNazwa.TextChanged
For Each sa As String In lstProdukt.Items ' Otwarcie pętli poszukującej produktu
' w zapisanej tabeli nazw produktu
' tabela lstProdukt jest ukryta w formularzu
' poprzez lstProdukt.Visible = False
If sa = txtNazwa.Text Then
lstProdukt.Text = sa
MessageBox.Show("Ten produkt jest już wpisany w bazie! ", "Uwaga")
txtNazwa.Text = ""
Exit Sub
End If
Next
End Sub
wtorek, 15 października 2013
Komponenty Visual Basic 2005(2)
Poniżej znajduję się procedura umożliwiająca zapis nowego produktu do bazy "Pokarm" programu "Komponent1". Ażeby móc dopisać tę procedurę, należy kliknąć dwa razy w okienko "Zapis".
W procedurze należy dopisać kod.
Private Sub Zapis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZapis.Click
'Zapisanie nowego produktu do bazy
If txtNazwa.Text = "" Or txtEnz.Text = "" Then ' Przypadek braku wpisu danych
MessageBox.Show("Wpisz dane produktu!", "Uwaga")
Exit Sub
End If
msg = "Czy na pewno chcesz wpisać ten produkt do bazy?"
tyt = "Zapis!"
styl = MsgBoxStyle.DefaultButton2 Or _
MsgBoxStyle.Critical Or _
MsgBoxStyle.YesNo
res = MsgBox(msg, styl, tyt)
If res = MsgBoxResult.No Then ' Jeśli nie chcesz wpisać.
txtNazwa.Text = "": txtEnz.Text = "" ' usunięcie wpisu
Else ' Jeśli chcesz wpisać
FileOpen(1, "Pokarm", OpenMode.Append) 'Otwarcie bazy
Write(1, txtNazwa.Text, txtEnz.Text) ' Zapis
FileClose(1) ' Zamknięcie pliku
End If ' Zamknięcie If res
txtNazwa.Text = "" : txtEnz.Text = ""
Odczyt() ' Powrót do wyświetlenia
zawartości tabeli
End Sub
Subskrybuj:
Posty (Atom)