ComboBoxGadget()
ComboBoxGadget()
Hallo zusammen.
Ich habe ein lauffähiges Programm welches unter der Version 5.72 (Windows 10+11) fehlerfrei arbeitet.
Erzeuge ich die gleiche EXE unter 5.73 oder 6.xx dann passiert folgendes: bei einem ausgeklappten ComboBoxGadget() verschwindet der Mauszeiger über dem Gadget. Fehler tritt bei allen ComboBoxGadget() auf. Auswählen geht, aber es sieht einfach unschön aus!
Die Compileroptionen sind bei allen Versionen gleich und alles 64 Bit.
Gibt es da eine Erkärung dafür, oder hat jemand schon mal so ein Verhalten gesehen?
Reinhard
Ich habe ein lauffähiges Programm welches unter der Version 5.72 (Windows 10+11) fehlerfrei arbeitet.
Erzeuge ich die gleiche EXE unter 5.73 oder 6.xx dann passiert folgendes: bei einem ausgeklappten ComboBoxGadget() verschwindet der Mauszeiger über dem Gadget. Fehler tritt bei allen ComboBoxGadget() auf. Auswählen geht, aber es sieht einfach unschön aus!
Die Compileroptionen sind bei allen Versionen gleich und alles 64 Bit.
Gibt es da eine Erkärung dafür, oder hat jemand schon mal so ein Verhalten gesehen?
Reinhard
Re: ComboBoxGadget()
Kann ich nicht bestätigen.
Vielleicht irgendwelche Windows API verwendet?
Vielleicht irgendwelche Windows API verwendet?
Code: Alles auswählen
;-TOP
#ProgramTitle = "Main Window"
#ProgramVersion = "v1.01.2"
Enumeration Windows
#Main
EndEnumeration
Enumeration MenuBar
#MainMenu
EndEnumeration
Enumeration MenuItems
#MainMenuAbout
#MainMenuExit
EndEnumeration
Enumeration Gadgets
EndEnumeration
Enumeration StatusBar
#MainStatusBar
EndEnumeration
Procedure UpdateWindow()
Protected dx, dy
dx = WindowWidth(#Main)
dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
; Resize gadgets
EndProcedure
Procedure Main()
Protected dx, dy
#MainStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, #ProgramTitle , #MainStyle)
; Menu
CreateMenu(#MainMenu, WindowID(#Main))
MenuTitle("&File")
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
MenuItem(#PB_Menu_About, "")
CompilerElse
MenuItem(#MainMenuAbout, "About")
MenuBar()
MenuItem(#MainMenuExit, "E&xit")
CompilerEndIf
; StatusBar
CreateStatusBar(#MainStatusBar, WindowID(#Main))
AddStatusBarField(#PB_Ignore)
; Gadgets
dx = WindowWidth(#Main)
dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
ComboBoxGadget(0, 10, 10, 200, 25)
For i = 1 To 10
AddGadgetItem(0, -1, "Item " + i)
Next
; Bind Events
BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), #Main)
; Event Loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Main
Break
EndSelect
Case #PB_Event_Menu
Select EventMenu()
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
Case #PB_Menu_About
PostEvent(#PB_Event_Menu, #Main, #MainMenuAbout)
Case #PB_Menu_Preferences
Case #PB_Menu_Quit
PostEvent(#PB_Event_CloseWindow, #Main, #Null)
CompilerEndIf
Case #MainMenuAbout
MessageRequester("About", #ProgramTitle + #LF$ + #ProgramVersion, #PB_MessageRequester_Info)
Case #MainMenuExit
PostEvent(#PB_Event_CloseWindow, #Main, #Null)
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ForEver
EndIf
EndProcedure : Main()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: ComboBoxGadget()
Hi, danke für die Antwort.
API ist nur diese Zeile drin: SendMessage_(GadgetID(#ausgabe), #EM_SCROLL, #SB_LINEDOWN, 0)
Auskommentiert, gleiches Phänomen.
Mein Englisch ist zu schlecht, um die Änderungen der Version 5.73 und 6.xx zu verstehen.
Programm ist zu gross um neu zu Schreiben (>35000 Zeilen), im Notfall bleibe ich bei 5.72
Achja, dein Beispiel läuft bei mir auch fehlerfrei!
Reinhard
API ist nur diese Zeile drin: SendMessage_(GadgetID(#ausgabe), #EM_SCROLL, #SB_LINEDOWN, 0)
Auskommentiert, gleiches Phänomen.
Mein Englisch ist zu schlecht, um die Änderungen der Version 5.73 und 6.xx zu verstehen.
Programm ist zu gross um neu zu Schreiben (>35000 Zeilen), im Notfall bleibe ich bei 5.72
Achja, dein Beispiel läuft bei mir auch fehlerfrei!
Reinhard
Re: ComboBoxGadget()
Wenn das Beispiel bei dir Fehlerfrei läuft, dann hast du irgendwo den wurm drin.... Aber wegen Codemangel kann man da schlecht ins dunkle schiessen... aber meist passieren solche fehler in der Eventabfrage
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: ComboBoxGadget()
Hi, da gebe ich dir Recht. Es wird schon mit meinem Code zu tun haben, aber
warum das zwischen den Versionen zu unterschiedlich ist, ist doch schon seltsam!
Der Code ist kein Geheimnis, nur ohne Daten von einem RS485 Bus bringt die Sache nicht viel.
Reinhard
warum das zwischen den Versionen zu unterschiedlich ist, ist doch schon seltsam!
Der Code ist kein Geheimnis, nur ohne Daten von einem RS485 Bus bringt die Sache nicht viel.
Reinhard
Re: ComboBoxGadget()
Die Daten an sich haben ja nichts mit der Darstellung zu tun. Du kannst ja ein paar Pseudodaten kreieren oder das Ganze Programm immer weiter reduzieren, bis es auf einmal geht (und dann hast du ja den Schuldigen gefunden) oder, falls nicht, das minimale Beispiel hier posten.
Guten Morgen, das ist ein schöner Tnetennba!
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Re: ComboBoxGadget()
Hallo, ich hatte die Sache natürlich auch schon versucht einzugrenzen.
Der Fehler tritt auch nur auf, wenn Daten ankommen und in einem Editor-Gadget angezeigt werden.
Wenn ich die Zeile: ' AddGadgetItem(#ausgabe, -1, text2.s)' auskommentiere ist ja auch alles in Ordnung.
Nur leider keine Daten mehr.
Bleibt trotzdem seltsam, warum ab Version 5.73 das vorkommt.
Ich sehe keine Möglichkeit das zu ändern, werde erstmal in diesem Projekt bei Version 5.72 bleiben.
Reinhard
Der Fehler tritt auch nur auf, wenn Daten ankommen und in einem Editor-Gadget angezeigt werden.
Wenn ich die Zeile: ' AddGadgetItem(#ausgabe, -1, text2.s)' auskommentiere ist ja auch alles in Ordnung.
Nur leider keine Daten mehr.
Bleibt trotzdem seltsam, warum ab Version 5.73 das vorkommt.
Ich sehe keine Möglichkeit das zu ändern, werde erstmal in diesem Projekt bei Version 5.72 bleiben.
Reinhard
Re: ComboBoxGadget()
Tut mir leid, da kann ich dir aber nicht helfen. Ohne Code kann ich mir was zusammenbasteln, was bei mir funktioniert und bei dir sicher auch, aber in deinem Fall wird es nicht helfen. Ohne Code kommen wir hier sicher nicht weiter.
Guten Morgen, das ist ein schöner Tnetennba!
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Re: ComboBoxGadget()
Kannst du davon ein kleines Bildschirmvideo machen?RAaBe hat geschrieben: 17.02.2023 14:43 Erzeuge ich die gleiche EXE unter 5.73 oder 6.xx dann passiert folgendes: bei einem ausgeklappten ComboBoxGadget() verschwindet der Mauszeiger über dem Gadget. Fehler tritt bei allen ComboBoxGadget() auf. Auswählen geht, aber es sieht einfach unschön aus!
(Also nur der relevante Ausschnitt)
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat