Verfasst: 17.03.2009 17:21
kann ich nicht bestätigen. Weder auf 4.3 noch auf 4.2
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
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())
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