Programowanie w Visual Basic (pytanie)

Tutaj rozmawiamy na tematy dotyczące oprogramowania komputerowego... (Linux, FreeBSD, Windows itp.)

Programowanie w Visual Basic (pytanie)

Postprzez Master » czwartek, 8 wrz 2005, 19:32

Czy może ktoś wie jak oznacza się w języku programowania Visual Basic "nic"? Ale nie 0. :?: :?: :?:
Avatar użytkownika
Master
Bywalec
 
Posty: 41
Dołączył(a): czwartek, 11 sie 2005, 23:04
Lokalizacja: Kołobrzeg

Postprzez r00t » czwartek, 8 wrz 2005, 19:36

Ja wiem......

vbNullString

np. Text$ = vbNullString

odpowiednik NULL z C
Avatar użytkownika
r00t
Administrator
 
Posty: 1115
Dołączył(a): czwartek, 29 maja 2003, 08:44
Lokalizacja: Kołobrzeg

Postprzez Master » czwartek, 8 wrz 2005, 20:11

Private Sub Oblicz_Click()
Wynik_Delty.Caption = "Wynik Delty " & Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego "

Dim sinDelta As String
sinDelta = Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))


If sinDelta < 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

ElseIf sinDelta = 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego gdy a = 0 nie istnieje "

ElseIf Text1 = vbNullString Or Text2 = vbNullString Or Text3 = vbNullString Then

MsgBox ("Wypełnij wszystkie pola poprawnie")

Else
End If
End Sub


No to ja wreście nie wiem co zrobić żeby kiedy pola są puste wyświetlał się odpowiedni komunikat o błędzie. Mój, a nie Visual'a. Bo kiedy klkam na odpowiedni przycisk z pustmi polami to pojawia się błąd
Run-time error '13': Type mismatch
Kurczę niech ktoś podpowie co z tym fantem zrobić...
Avatar użytkownika
Master
Bywalec
 
Posty: 41
Dołączył(a): czwartek, 11 sie 2005, 23:04
Lokalizacja: Kołobrzeg

Postprzez r00t » czwartek, 8 wrz 2005, 20:50

no tak na pierwszy rzut oka... ja nie jestem fachowcem... od VB ale dlaczego sprawdzanie text1 text2 i text3 jest na samym koncu? wg mnie powinno byc

pobieranie danych --> sprawdzanie czy wszystko zostalo podane --> stosowne komunikaty jeśli nie podane i powrot na początek programu --> jeśli dane sa to obliczenia zgodne z warunkami równania kwadratowego (delta co sie rowna) --> prezentacja wyniku

Ale tak jak mówiłem... nie jestem fachowcem od VB :) a to co napisałem to logiczy schemat blokowy programu tak jak wg mnie powinien wygladac....
Ostatnio edytowano czwartek, 8 wrz 2005, 20:53 przez r00t, łącznie edytowano 1 raz
Avatar użytkownika
r00t
Administrator
 
Posty: 1115
Dołączył(a): czwartek, 29 maja 2003, 08:44
Lokalizacja: Kołobrzeg

Postprzez MzK » czwartek, 8 wrz 2005, 20:52

Sluchaj, nie programowalem w VB, ale wedlug mnie struktura kontrolna powinna wygladac np. tak:

while
Text1 = vbNullString Or Text2 = vbNullString Or Text3 = vbNullString Then
.....MsgBox ("Wypełnij wszystkie pola poprawnie")

else

.....If sinDelta < 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

.....ElseIf sinDelta = 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

.....ElseIf sinDelta > 0
.....Then
.....Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

.....endif


niech mnie ktos poprawi jak sie tutaj myle, ale to ciagle elsif u Mastera mi sie nie podoba ...

MASTER -> probowales debuggerem to rozgryzc ??

C/C++ i Visual Studio .net to owszem ... ale VB niet :D

powodzenia
Avatar użytkownika
MzK
Dyskutant
 
Posty: 131
Dołączył(a): poniedziałek, 22 sie 2005, 20:01
Lokalizacja: na wygnaniu

Postprzez Master » czwartek, 8 wrz 2005, 22:20

Rozwiązałem problem :) dzięki Wam za pomoc !!!!!!!!!!
Moje rozwiązanie z Waszą drobną pomocą...


Private Sub Oblicz_Click()
Wynik_Delty.Caption = "Wynik Delty " & Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))

Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego "

Dim sinDelta As String
sinDelta = Str(Val(Text1) ^ 2 - 4 * Val(Text2) * Val(Text3))


Do While Text1 = vbNullString

Text1 = "0"

Loop

Do While Text2 = vbNullString

Text2 = "0"

Loop


If sinDelta < 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego nie istnieje"

ElseIf sinDelta = 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) / 2 * Val(Text2))

ElseIf sinDelta > 0 Then
Rozwiązanie_równania_kwadratowego.Caption = "Rozwiązanie równania kwadratowego to " & Str(Val(-Text1) - Sqr(sinDelta) / 2 * Val(Text2)) & " i " & Str(Val(-Text1) + Sqr(sinDelta) / 2 * Val(Text2))

Else


End If


End Sub


Jeszcze raz dzięki dla: r00t, MzK!!!!!!
Avatar użytkownika
Master
Bywalec
 
Posty: 41
Dołączył(a): czwartek, 11 sie 2005, 23:04
Lokalizacja: Kołobrzeg

Postprzez MzK » piątek, 9 wrz 2005, 14:57

Na pewno jest taka mozliwosc.
Poszukaj w
Planet source code
albo na
google

jest tego pod dostatkiem.
Avatar użytkownika
MzK
Dyskutant
 
Posty: 131
Dołączył(a): poniedziałek, 22 sie 2005, 20:01
Lokalizacja: na wygnaniu

Postprzez Master » piątek, 9 wrz 2005, 16:33

Acha i jeszcze jedno... jak w VB oznaczane są dane nie liczbowe tzn. litery, zn. interpunkcyjne i inne. Potrzebne jest to do tego żeby nie ustanawiać dla każdego znaku z osobna warunków.... bo toż to można warjacji dostać... Chodzi mi o coś w stylu tego jak to vbNullString odnośnie "niczego". Jak ktoś wie to niech pomoże....
Avatar użytkownika
Master
Bywalec
 
Posty: 41
Dołączył(a): czwartek, 11 sie 2005, 23:04
Lokalizacja: Kołobrzeg

Postprzez cichy » piątek, 9 wrz 2005, 16:56

Master napisał(a):Acha i jeszcze jedno... jak w VB oznaczane są dane nie liczbowe tzn. litery, zn. interpunkcyjne i inne. Potrzebne jest to do tego żeby nie ustanawiać dla każdego znaku z osobna warunków.... bo toż to można warjacji dostać... Chodzi mi o coś w stylu tego jak to vbNullString odnośnie "niczego". Jak ktoś wie to niech pomoże....

sprawdz w helpie cos o ASCII lub char, to sa liczbowe wartosci dla kazdej literki, cyferki i znaczka
Avatar użytkownika
cichy
Rycerz forum
 
Posty: 1115
Dołączył(a): poniedziałek, 2 cze 2003, 12:01
Lokalizacja: nibylandia
Gadu-Gadu: 2025499

Postprzez MzK » piątek, 9 wrz 2005, 17:03

Nie bardzo wiem o co pytasz, ale jesli o sposob okreslenia dowolneo znaku z tabeli ASCII to prosze przyklad:

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13
.....Then Exit Sub


gdzie 13 oznacza wedlug kodu ASCII przycisk ENTER :D
Avatar użytkownika
MzK
Dyskutant
 
Posty: 131
Dołączył(a): poniedziałek, 22 sie 2005, 20:01
Lokalizacja: na wygnaniu


Powrót do :: software

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości