![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#11 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
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. ![]() |
|
![]() |
![]() |
![]() |
#12 |
Inventar
![]() |
![]() 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?
|
![]() |
![]() |
![]() |
#13 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Und normalerweise geht die msgbox immer mit einem klick auf ok (oder auch andere Buttons - je nachdem welche Parameter man übergibt) weg. |
|
![]() |
![]() |
![]() |
#14 |
Inventar
![]() |
![]() 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" |
![]() |
![]() |
![]() |
#15 |
Inventar
![]() |
![]() 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?
|
![]() |
![]() |
![]() |
#16 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() 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 |
|
![]() |
![]() |
![]() |
#17 |
Inventar
![]() |
![]() 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. |
![]() |
![]() |
![]() |
#18 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() 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 |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|