WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   qbasic proggi in vb (http://www.wcm.at/forum/showthread.php?t=105408)

renew 13.08.2003 16:13

Zitat:

Original geschrieben von potassium
hast du zaus vb 6.0? wenn kannst du uns das formular etc schicken damit ich auch seh wie das funzt. ich hab mal das upgeloadet was ich bis jetzt hab.
ja hab ich ....

ich glaube aber, dass ich heute nicht mehr dazu kommen werde.
Weil ich kommt nur kurz heim, und muss dann gleich wieder weg.

Aber spätestens morgen am abend gehts sicher. :)

Potassium 13.08.2003 16:16

ich hab mein problem jetzt gefunden. ich hab ein box namens msgbox angelegt *hüstel* *peinlich* aber nun geht meine msgbox ncht mehr weg. wenn ich auf ok klick bleibt sie. wie mach ich das jetzt das wenn ich auf ok klick die box wieder weg geht?

renew 13.08.2003 16:35

Zitat:

Original geschrieben von potassium
ich hab mein problem jetzt gefunden. ich hab ein box namens msgbox angelegt *hüstel* *peinlich* aber nun geht meine msgbox ncht mehr weg. wenn ich auf ok klick bleibt sie. wie mach ich das jetzt das wenn ich auf ok klick die box wieder weg geht?
was für eine Box?

Und normalerweise geht die msgbox immer mit einem klick auf ok (oder auch andere Buttons - je nachdem welche Parameter man übergibt) weg.

Potassium 13.08.2003 16:38

welche parameter? und mit box mein ich die msgbox? die geht ned weg wenn i auf ok klick
macn kann die box wede mit ok wegbekommen noch mit dem x rechts oben nur mit dem taskmanager brutal "abwürgen"

Potassium 13.08.2003 17:07

nun funzt es mir war nicht klar das ich keine boxen selber machen darf. sondern das InputBox und mfgbox vom proggi selbst gemacht werden. thx für alles und noch eine letzte frage: wie kann ich bewirken das wenn man auf abrechen bei der ratezahlabrage klickt keine fehlermeldung kommt sondern das er abbricht?

renew 13.08.2003 17:14

Zitat:

Original geschrieben von potassium
nun funzt es mir war nicht klar das ich keine boxen selber machen darf. sondern das InputBox und mfgbox vom proggi selbst gemacht werden. thx für alles und noch eine letzte frage: wie kann ich bewirken das wenn man auf abrechen bei der ratezahlabrage klickt keine fehlermeldung kommt sondern das er abbricht?
aso alles klar. Man muss nicht alles selber machen. ;)

Um keine Fehlermeldung zu kassieren:

oben im Kopf noch:
dim strX as string

statt dem "x = InputBox "Bitte geben Sie eine Zahl ein:"" kommt folgendes:
strX = input("Geben Sie eine Zahl ein")
if strX <> "" and isnumeric(strX) then
x = int(strX)
else
msgbox "Keine Zahl" 'oder was du auch machen willst ... ;)
end if

Potassium 13.08.2003 20:33

thx das is auch eine lösung allerdings hab ich das jetz so gemacht:

Private Sub Command1_Click()
Randomize
y = Int((1000 - 0 + 1) * Rnd) + 1
z = 1

Do
strX = InputBox("Geben Sie eine Zahl ein")
If strX <> "" And IsNumeric(strX) Then
x = Int(strX)
Else
MsgBox "Keine Zahl"
End
End If

If Int(x) < y Then
MsgBox " zu klein ", (vbOKOnly), ("Zahlenraten")
z = z + 1
ElseIf Int(x) > y Then
MsgBox " zu groß ", (vbOKOnly), ("Zahlenraten")
z = z + 1
Else
MsgBox z, (vbOKOnly), ("Benötigte Versuche")
End If
Loop Until Int(x) = y

End Sub

also wenn man jetz einen buchctaben etc eingibt und man dann auf ok klickt bricht er ab. das is deswegen so weil er sonst immer gezeigt hätte: " zu klein" nun hätte ich aber gerne das er statt zu beenden wieder zu dem eintrag zahlen geht. wie geht das?

PS: anbei die datei.

wbendl 14.08.2003 16:05

Hi!

Also um bei einer ungültigen Eingabe zurück zum Start zu kommen gibt es mehrere Wege.

1. Eine Schleife, mit der die Inputbox solange immer wieder aufgerufen wird, bis die Eingabe gültig ist.

2. Einen Teil des Codes in eine eigene Prozedur auslagern, die sich rekursiv aufrufen kann.

Es spricht übrigens nichts dagegen, eine eigene "Inputbox" zu verwenden. Damit könntest du Funtionen einbauen, die in der Standardversion nicht vorhanden sind.

Noch ein Tip für die Zukunft:

Variable mit möglichst geringer Gültigkeit deklarieren.
Das heißt in diesem Fall die Variablen in der Prozedur deklarieren, und nicht im Modul.
Das ist übersichtlicher und beugt Problemen vor.
Wenn die Variablen auch in anderen Prozeduren zur Verfügung stehen sollen, dann die Parameterübergabe verwenden (Bevorzugt "ByVal").
Parameter die als Rückgabe verwendet werden "ByRef".

mfg

WB


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag