Möglicher Bug ScintillaGadget + SplitterGadget
Verfasst: 22.07.2014 07:49
ich entschuldige mich schon mal im vorraus für grammatik und rechtschreibfehler. (die suche hat lange gedauert, konzentration ist irgendwo, aber nicht mehr hier bei mir)
wenn es ein Bug ist, dann poste ich es auch im Hauptforum. es kann aber auch gerne jemand anderes posten
.
wenn ihr folgenden code:
in der IDE ausführt (bitte mit debugger, sonst muss der prozess per taskmanager abgeschossen werden), werdet ihr feststellen, das der cursor nicht blinkt. wenn nun im menu "file" "close" angeklickt wird, hängt sich das programm auf (rotes x in der ide).
macht nun bitte wieder das gleiche, aber bevor ihr wieder auf "close" klickt bitte mal die Splitter bewegen (der rechte vertikale muss es sein, man sieht ihn nicht, es sind 2 splitter).

ihr werdet feststellen, das der cursor wieder anfängt zu blinken, und das programm hängt sich nicht auf nach dem menuklick.
nach stunden langer suche habe ich herausgefunden, dass es an dieser zeile liegt:
Fensterbreite ist 600
wenn ich nun anstatt der 600er breite eine 595er breite beim splitter nehme blinkt der cursor und alles läuft normal.
ist das jetzt ein fehler von mir oder ein bug?
wenn es ein Bug ist, dann poste ich es auch im Hauptforum. es kann aber auch gerne jemand anderes posten

wenn ihr folgenden code:
Code: Alles auswählen
Enumeration Window
#WindowMain
EndEnumeration
Enumeration Gadget
#Scintilla
#Editor
#Panel
#Splitter
#SplitterSplitter
EndEnumeration
Enumeration Menu
#MenuFile
#MenuFileClose
EndEnumeration
OpenWindow(#WindowMain, 0, 0, 600, 480, "Test Scintilla Splitters")
CreateMenu(#MenuFile, WindowID(#WindowMain))
MenuTitle("File")
MenuItem(#MenuFileClose, "Close")
InitScintilla()
ScintillaGadget(#Scintilla,0,0,0,0,0)
EditorGadget(#Editor,0,0,0,0)
SplitterGadget(#Splitter, 0,0,0,0,#Scintilla,#Editor)
PanelGadget(#Panel,0,0,0,0)
CloseGadgetList()
SplitterGadget(#SplitterSplitter,0,0,600,480,#Splitter,#Panel,#PB_Splitter_Vertical)
SetGadgetState(#SplitterSplitter, 600)
; SetGadgetState(#SplitterSplitter, 595)
ScintillaSendMessage(#Scintilla, #SCI_SETFOCUS, #True)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Menu
Select EventMenu()
Case #MenuFileClose
MessageRequester("","No Error")
Break
EndSelect
EndSelect
ForEver
macht nun bitte wieder das gleiche, aber bevor ihr wieder auf "close" klickt bitte mal die Splitter bewegen (der rechte vertikale muss es sein, man sieht ihn nicht, es sind 2 splitter).

ihr werdet feststellen, das der cursor wieder anfängt zu blinken, und das programm hängt sich nicht auf nach dem menuklick.
nach stunden langer suche habe ich herausgefunden, dass es an dieser zeile liegt:
Code: Alles auswählen
SetGadgetState(#SplitterSplitter, 600)
wenn ich nun anstatt der 600er breite eine 595er breite beim splitter nehme blinkt der cursor und alles läuft normal.
ist das jetzt ein fehler von mir oder ein bug?