Hi habe zurzeit vor ein kleines Quiz zu programmieren mit einfachen If Abfragen+MessageRequester,habe aber das problem,dass ich so nur Ja/Nein Fragen erstellen kann,also keine selbstdefinierten Antwortmöglichkeiten.Kann mir jemand dabei helfen?
If MessageRequester("Frage", "Ist Berlin Deutschlands Hauptstadt?", #PB_MessageRequester_YesNo)=#PB_MessageRequester_Yes
MessageRequester("Richtig","Diese Antwort ist richtig!" + Chr(10) + "Leider ist mein kleines Quiz hier schon zu Ende!")
Else
MessageRequester("Falsch", "Ihre Antwort war leider falsch!" + Chr(10) + "Versuchen sie es nochmal!")
EndIf
Zuletzt geändert von Dark Skillu am 18.03.2007 15:56, insgesamt 1-mal geändert.
; English forum:
; Author: Unknown
; Date: 21. January 2003
; OS: Windows
; Demo: No
; Change dialog box buttons... crashes PBCompiler, but the program itself works!
; Try creating an .exe file -- PB will crash, but the .exe version will work just fine when run :)
#IDOK = 1
#IDCANCEL = 2
#IDABORT = 3
#IDRETRY = 4
#IDIGNORE = 5
#IDYES = 6
#IDNO = 7
#IDPROMPT = $FFFF
Global hHook
Global mbtitle$, mbmsg$, mbopt1$, mbopt2$, mbopt3$
; Have to pre-allocate maximum string length, as the dialog box is created with message/title
; with this many spaces (the width of the box comes from this), then the text is hacked into it.
#StringSpace = 80
Procedure MsgBoxHookProc (uMsg, wParam, lParam)
If uMsg = #HCBT_ACTIVATE
SetWindowText_ (wParam, mbtitle$)
SetDlgItemText_ (wParam, #IDABORT, mbopt1$)
SetDlgItemText_ (wParam, #IDRETRY, mbopt2$)
SetDlgItemText_ (wParam, #IDIGNORE, mbopt3$)
SetDlgItemText_ (wParam, #IDPROMPT, mbmsg$)
UnhookWindowsHookEx_ (hHook)
EndIf
ProcedureReturn #False
EndProcedure
Procedure MessageBoxH (parentWindow, title$, message$, button1$, button2$, button3$)
mbtitle$ = title$
mbmsg$ = message$
mbopt1$ = button1$
mbopt2$ = button2$
mbopt3$ = button3$
hInstance = GetModuleHandle_ (0)
hThreadId = GetCurrentThreadId_ ()
hHook = SetWindowsHookEx_ (#WH_CBT, @MsgBoxHookProc (), hInstance, hThreadId)
ProcedureReturn MessageBox_ (parentWindow, Space (#StringSpace), Space (#StringSpace), #MB_ABORTRETRYIGNORE | #MB_ICONINFORMATION)
EndProcedure
MessageBoxH (0, "Search for program...", "Please select the drive to search...", "Search C:\", "Search D:\", "Cancel")
; IDE Options = PureBasic v4.00 (Windows - x86)
; Folding = -
If OpenFile(0,"FragenUndAntworten.txt")
OpenConsole()
PrintN("Tool zum Hinzufuegen von Fragen und Antworten")
Repeat
PrintN("")
Print("Frage: ")
Frage$ = Input()
Nochmal:
PrintN("Antwort: ")
PrintN("(1) Nein")
PrintN("(2) Ja")
Print("Eingabe: ")
AntwortString$ = Input()
Antwort = Val(AntwortString$)
If Antwort = 1 Or Antwort = 2
WriteString(0,Frage$)
WriteByte(0,Antwort)
PrintN("OK. Die Frage wurde gespeichert")
Else
PrintN("Ungueltige Eingabe")
Goto Nochmal
EndIf
ForEver
EndIf
//edit: Aber speichere den Code vorher irgendwo ab, sonst wird die Datei FragenUndAntworten.txt ins Compiler-Verzeichnis geschrieben, wo sie nicht hingehört
ich glaub ihr versteht nicht ganz was ich meine.Ich möchte auf den Buttons meine Antworten stehen haben,geht das?Und zuvor mit MessageRequester... ne Frage stellen
wenn du sowas machen willst, funktionieren Messagerequesters nich mehr. Dann muss ein Window aufgemacht werden, auf dem Button Gadgets deine Antworten anklickbar machen. Ist aber für nen Anfänger denke ich zu hoch. Wie ich angefangen habe, habe ich auch erst mal mit MessageRequestern und Consoles gearbeitet.
Ich schau mal, ob sich da ein Code machen lässt