vom DOS-Fenerst ins Windows Fenster + Logging
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ermn... nit der "Link"... sondern die "Linked List"... gelle?MrVain hat geschrieben:Wenn ich es mit deinem Code mache, kommt folgender Fehler:
[Error] Line 60:
[Error] The Link doesn't have a current element
Line 60: SetGadgetText(0, GetGadgetText(0)+StringsToAdd())
und das liegt einfach daran, dass du versuchst was auszugeben was ganit da is.
also, du musst latürnich zuerst ein element in deine Liste packen, das passiert da wo AddElement steht,
bevor du das abfragen bzw. in ein Gadget packen kannst.
@PMtQ
siehste?
optimale Demonstration für die verminderte Effizienz vorgekauten Codes....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
PMTheQuick hat geschrieben:Und ich habe für dich was gebastelt. Kommentiert habe ich es nicht, aber ich habe nen Console-Wrapper für Open, Print, PrintN, Input & Close-Console geschrieben. Ausgereift ist es sicherlich noch nicht ganz, aber man kanns schon mal verwenden! Anleitung: Kopiere #Windowed = #True & alles zwischen CompilerIf und CompilerEndIf MIT dem CompilerIf und CompilerEndIf an den Start deines Projektes. Wenn #Windowed dann = #True ist, dann wird die Konsole in ein Fenster umgeleitet. Logging ist auch eingebaut! Und zwar wird eine log.txt erstellt... Bei Fragen oder sonst was -> Kein Problem, kannst dich bei mir melden. Natürlich auch bei anderen ForenmitgliedernIch hoffe du kannst damit was anfangen.
GrussCode: Alles auswählen
#Windowed = #True CompilerIf #Windowed = #True Global threadexit Global NewList StringsToAdd.s() Global inputstate Global inputreturn$ Macro OpenConsole OpenConsoleNew EndMacro Macro PrintN PrintNNew EndMacro Macro Print PrintNew EndMacro Macro Input InputNew EndMacro Macro CloseConsole CloseConsoleNew EndMacro Procedure Window_Manager(dummy=0) CreateFile(0, "log.txt") WriteStringN(0, "Console -> Window Wrapper by PMTheQuick") WriteStringN(0, "---------------------------------------------------") WriteStringN(0, "") WriteStringN(0, "Console geöffnet") WID = OpenWindow(#PB_Any, 0, 0, 600, 400, "Console -> Window Wrapper", #PB_Window_ScreenCentered) ; CreateGadgetList(WindowID(WID)) EditorGadget(0, 0, 0, WindowWidth(WID), WindowHeight(WID)) SetGadgetColor(0, #PB_Gadget_FrontColor, RGB(255,255,255)) SetGadgetColor(0, #PB_Gadget_BackColor, RGB(0, 0, 0)) SendMessage_(GadgetID(0),#EM_SETREADONLY,1,0) AddKeyboardShortcut(WID, #PB_Shortcut_Return, 100) Repeat event = WindowEvent() Select event Case #PB_Event_Menu If EventMenu() = 100 And GetActiveGadget() = 0 And GetTickCount_()-LastSpawn > 100 If inputstate = 1 inputreturn$ = ReplaceString(GetGadgetText(0), beforeinput$, "") WriteStringN(0, "Input erhalten") WriteStringN(0, "-> Ergebnis: "+inputreturn$) inputstate = 0 SetGadgetText(0, GetGadgetText(0)+Chr(13)+Chr(10)) SendMessage_(GadgetID(0),#EM_SETREADONLY,1,0) EndIf LastSpawn = GetTickCount_() EndIf EndSelect ForEach StringsToAdd() WriteStringN(0, "Print: "+StringsToAdd()) SetGadgetText(0, GetGadgetText(0)+StringsToAdd()) DeleteElement(StringsToAdd()) Next If inputstate = 2 beforeinput$ = GetGadgetText(0) inputstate = 1 SendMessage_(GadgetID(0),#EM_SETREADONLY,0,0) EndIf Until threadexit = 1 CloseWindow(WID) inputstate = 0 WriteStringN(0, "Console geschlossen") threadexit = 0 EndProcedure Procedure OpenConsoleNew() CreateThread(@Window_Manager(), 1) EndProcedure Procedure PrintNNew(String$) AddElement(StringsToAdd()) StringsToAdd() = String$+Chr(13)+Chr(10) EndProcedure Procedure PrintNew(String$) AddElement(StringsToAdd()) StringsToAdd() = String$ EndProcedure Procedure.s inputnew() inputstate = 2 While inputstate <> 0 : Wend ProcedureReturn inputreturn$ EndProcedure Procedure CloseConsoleNew() threadexit = 1 EndProcedure CompilerEndIf ; Example OpenConsole() PrintN("Hallo") Print("Gebe etwas ein: ") input$ = Input() PrintN("Du hast "+input$+" eingegeben") Delay(500) PrintN("hei!") PrintN("ho") Delay(500) CloseConsole()
PMTheQuick
Wenn ich deinen Code einfach mal in ein neues Projekt eingebe, kommt folgender Fehler:
"Line104 Syntax Error: input$ = Input()"
Woran kann das liegen?? Ich dachte, dass ich meinen "Consolen"-Code einfach nur unten eingeben muss und schon läuft das...
-
- Beiträge: 630
- Registriert: 05.05.2005 19:06