Seite 1 von 1

Möglicher Bug ScintillaGadget + SplitterGadget

Verfasst: 22.07.2014 07:49
von TomyB
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 :D.

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 
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).
Bild
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)
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?

Re: Möglicher Bug ScintillaGadget + SplitterGadget

Verfasst: 22.07.2014 18:47
von Danilo
Kann das Verhalten auf Windows bestätigen. Auf Mac OS X passiert es nicht und läuft normal.
Vielleicht bleibt PB bei zu grossen Werten irgendwo endlos in der Eventschleife hängen.

Du solltest es als Bug im englischen Forum melden.

Re: Möglicher Bug ScintillaGadget + SplitterGadget

Verfasst: 23.07.2014 03:37
von TomyB
Ok ist nun im Hauptforum.

Danke für das Nachprüfen.

Re: Möglicher Bug ScintillaGadget + SplitterGadget

Verfasst: 23.07.2014 08:43
von matbal
Ich kann den Fehler unter Win7 (32bit) auch nachvollziehen und habe ein wenig getestet:

Das Programm stoppt durch die MessageBox, die man allerdings nicht sieht. Sie ist aber trotzdem da und läßt sich auch mit RETURN oder SPACE schließen.

Und mit der ALT-Taste kommt sie sogar zum Vorschein...

Re: Möglicher Bug ScintillaGadget + SplitterGadget

Verfasst: 23.07.2014 15:47
von TomyB
@matlab danke

ja das habe ich mir auch gedacht, aber das mit RETURN SPACE und ALT hat bei mir nicht geklappt, habe auch mit ALT+TAB versucht auf die messagebox zu kommen, aber ging nicht. Win7 x64.

habe es zwar im hauptforum gepostet, aber leider zu spät für die Finale 5.30 Version.