Seite 1 von 1
[Solved] Import von "" erzeugt bei wenig Code Error...
Verfasst: 12.05.2012 10:52
von Bisonte
Hallo.
Da ein unerwartetes Verhalten wohl auch zu Bugs zählt, poste ich mal hier...
Folgender Code erzeugt einen Error :
Bild
Code: Alles auswählen
EnableExplicit
Import ""
PB_Object_GetThreadMemory(MemoryID)
PB_Gadget_Globals
EndImport
Procedure GetCurrentGadgetListWindowID()
Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
ProcedureReturn PeekI(*Globals)
EndProcedure
wenn ich aber den Code vergrösser... also mehr Zeilen usw. schreibe, dann erscheint keine Fehlermeldung
mehr... (Der inhalt ist egal, selbst Kommentarzeilen scheinen dabei zu zählen, weiss jetzt aber nicht genau
ab wieviel Zeilen (oder direkt FileSize des Source) der Fehler verschwindet...)
Zur Installation... Es sind keine Externen Tools oder Userlibs installiert. "Frischer" Rechner mit "frischer" PB Installation.
Dieses Verhalten ist von PB4.5x bis zur heutigen 461b3 zu sehen.
Ist das nun Bug oder irgendein erklärbares "Phänomen" ?
__________________________________________________
Thread verschoben
Bugs>Allgemein
12.05.2012
RSBasic
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 12.05.2012 11:53
von CSHW89
Das hat nix mit der Anzahl an Zeilen zu tun. Liegt wohl eher daran, dass im Code keine Gadgets benutzt werden. Im folgenden Code wird durch OpenWindow eine Gadgetliste erstellt, dann funktionierts:
Code: Alles auswählen
EnableExplicit
Import ""
PB_Object_GetThreadMemory(MemoryID)
PB_Gadget_Globals
EndImport
Procedure GetCurrentGadgetListWindowID()
Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
ProcedureReturn PeekI(*Globals)
EndProcedure
If OpenWindow(0, 0, 0, 400, 200, "", #PB_Window_SystemMenu)
Repeat
Until (WaitWindowEvent() = #PB_Event_CloseWindow)
EndIf
lg Kevin
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 12.05.2012 13:33
von Bisonte
das kann ich nicht so recht nachvollziehen....
Ich nutze das Import in einem grösseren Code (eine selbstgebaute Userlib), der nirgends ein Window öffnet oder eine Gadgetliste erstellt.
Dort ohne Fehler... bei Druck auf F5.
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 12.05.2012 13:42
von ts-soft
Die passende Lib muss schon importiert sein, damit das ganze funktioniert. Einfacher WorkAround:
Code: Alles auswählen
EnableExplicit
Import ""
PB_Object_GetThreadMemory(MemoryID)
PB_Gadget_Globals
EndImport
Procedure GetCurrentGadgetListWindowID()
Protected *Globals = PB_Object_GetThreadMemory(PB_Gadget_Globals)
ProcedureReturn PeekI(*Globals)
OpenWindow(0,0,0,0,0,"")
EndProcedure
Kann das ganze mal wieder jemand verschieben? Ist mit 100%iger Sicherheit kein Bug!
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 14.05.2012 01:00
von Bisonte
Nunja... aber immer stehe ich noch vor dem Rätsel, das wenn man (selbst sinnloses) Geschreibsel dranhängt,
also kein OpenWindow oder sonst irgendwas (macht da mal ewig langes Kommentargedöhns ran), es ohne
Fehlermeldung durchgeht...
Da ist mein Verständnisproblem. Also keine Benutzung von irgendwas, nur Kommentare und es geht...
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 14.05.2012 01:05
von CSHW89
Also ich hatte ca. 400 Zeilen Kommentar drangehängt. Danach ca. 400mal "a = 2" oder sowas. Ging beides nicht. Danach einmal nur OpenWindow, dann gings.
Aber eigentlich spielt es ja keine Rolle. Denn selbst wenn es doch ein merkwürdiger Bug ist, kann man ein OpenWindow hinschreiben, dann gehts, und zweitens, wird er vermutlich im Normalfall nie auftauchen.
lg Kevin
PS: ich denke, es gibt da noch ein paar andere Befehle, die die Gadget-Lib brauchen. Vielleicht ja auch Befehle, bei denen man gar nicht vermuten würde, dass sie die Lib benutzen. Und diese bewirken dann das Linken der Lib.
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 14.05.2012 08:57
von edel
Der Code ist ueberhaupt nicht mehr noetig, benutze lieber UseGadgetList.
Re: Import von "" erzeugt bei wenig Code Error...
Verfasst: 14.05.2012 16:40
von Bisonte
edel hat geschrieben:Der Code ist ueberhaupt nicht mehr noetig, benutze lieber UseGadgetList.
Aber,aber,aber
Ne ich benutze das, um herauszufinden, welche Gadgetlist grade in der Mache ist...
Oder hab ich etwa schon wieder was verpasst ? Das es jetzt möglich ist die WindowID mit
UseGadgetList herauszubekommen ?
Edit: Ouch... da stehts in der Hilfe... aua... Asche auf mein Haupt...