Überlappende Gadgets

Fragen und Bugreports zur PureBasic 4.0-Beta.
Georg
Beiträge: 29
Registriert: 17.06.2005 19:04

Überlappende Gadgets

Beitrag von Georg »

Folgendes Problem:

es überlappen sich zwei Gadgets.
Wenn ich nun mit der Maus in dem sich überlappenden Bereich komme,
bekommt das darunter liegende Gadget den Focus obwohl ich mit der
Maus noch über den Oberen Gadget bin.
Ist das bei Euch auch so?

Code: Alles auswählen

EnableExplicit
Global idWndMain , hWndMain
Global Btn1, Btn2 
Global Event

idWndMain = OpenWindow(#PB_Any, 0, 0, 500, 500, "Überlappende Gadgets",  #PB_Window_SystemMenu  |#PB_Window_ScreenCentered |#PB_Window_Invisible)
  hWndMain = WindowID(idWndMain)
    CreateGadgetList(hWndMain)
        Btn1 = ButtonGadget(#PB_Any,150,150,200,100,"Btn 1")
        Btn2 = ButtonGadget(#PB_Any,200,200,200,100,"Btn 2")

HideWindow(idWndMain,0)   
    
Repeat
  Event = WaitWindowEvent()
        Select Event 
            Case #PB_Event_CloseWindow
               If EventWindow() = idWndMain  
                     End
                  EndIf  
        EndSelect 
ForEver
End

PureBasic 4.02

Georg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Ist das bei Euch auch so?
Ja

Frage: Wofür ist sowas gut :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Frage: Wofür ist sowas gut

schätze mal du meinst, wozu es gut sein soll, dass sich gadgets überhaupt überlappen?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Georg
Beiträge: 29
Registriert: 17.06.2005 19:04

Beitrag von Georg »

Ja, in normalen Oberflächen ist das sicher kein Problem, da die
Gadgets dort sich normalerweise nicht überlappen.
Wenn man aber dem User die Möglichkeit bietet die Gadgets auf der
Oberfläche zu verschieben, dann schon.
Da gibt es sicher ein Problem mit der ZOrder von PB.
Könnte das jemand bitte mal mit besseren Englisch Kenntnissen weiter melden?
Danke.
Übrigen haben VB2005, C++ diesen Effekt nicht.

Georg
VB 4.02
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du meinst bestimmt das C++ aus dem VS2005?

die MS produkte haben in der hinsicht eine zusätzliche feature.
die Z-Order wird auch bei denen nur emuliert, wenn ich mich recht entsinne.
die Z-Order ist eigentlich keine eigentschaft, die im grundkonzept vorhanden ist.
soweit ich mich erinnere, gab es bei den x eigentschaften-feldern der objekte keines,
das die Z-Order angibt.
man musste sogar zur erstellungszeit im Visual-Designer die Z-order durch
hin- und her-schalten in ordnung bringen, um sie später korrekt funktionell zu haben.

also, bei einem PB-Programm mit verschiebbaren gadgets solltest du dann vielleicht eine LinkedList erstellen,
die auf überlappungen mit einem eigenen refresh-loop reagiert.

auf jeden fall ist es keine Bugmeldung für PB, das OS stellt so etwas einfach nicht zur verfügung.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Problem hängt mit XP-Style zusammen, ohne gehts wie es soll. Aber ob das
ein Bug ist? Mein englisch ist sowieso zu schlecht :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Georg
Beiträge: 29
Registriert: 17.06.2005 19:04

Beitrag von Georg »

ts-soft
ich habe es unter Win98 getestet, gleicher Effekt. Nur das es hier keinen
Hover Effekt gibt. Beim Mausklick im überlappenden Bereich bekommt
das untere Gadget den Focus.

Kaeru Gaman
habe ich schon alles probiert. Bloß habe ich ja darauf keinen Einfluss.
Es kann ja nicht sein, daß das darunter liegene Gadget den Focus bekommt, wenn ich mit der Maus noch auf dem Oberen bin.
Ich meine schon daß das ein Bug ist.

Georg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich sehe es so:
Gerade die Einfachheit und Geschwindigkeit zeichnen PB aus. Wenn solche
Ausnahmefälle in jedem Fall behandelt werden, gibts auch Einschränkungen
im eigenem Callback, in der Dateigrösse usw. Dann hätte man auch Delphi
oder ähnlich nehmen können, wo alle Controls in einer riesen Klasse
gekapselt sind, dafür die kleinste Anwendung entsprechend groß.

"Fehlverhalten" im Callback selber abfangen, aber als Bug würde ich es nicht
unbedingt sehen.

Aber darüber kann man natürlich unterschiedlicher Meinung sein. Ich melde
es nicht als Bug, weil ich es nicht als Bug sehe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Georg
Beiträge: 29
Registriert: 17.06.2005 19:04

Beitrag von Georg »

Wenn man sich mit der Maus über einem Gadget befindet und das Gadget darunter den Focus erhält, ... kein Bug?
Man könnte das zwar mit einem großen Programmieraufwand abfangen,
aber das ist wohl nicht im Sinne des Erfinders, wie man so sagt.
Ich müsste alle Gadgets des Fenster enumerieren und immer prüfen ob ein Gadget überlappt und den Focus auf das obere Gadget setzen.

Wahnsinn

Georg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Wenn man sich mit der Maus über einem Gadget befindet und das Gadget darunter den Focus erhält, ... kein Bug?
Der Bug ist die Positionierung der Gadgets. Überlappend ist kein mir
bekanntes Windows-Feature, auch wenns Programmiersprachen gibt, die so
etwas unterstützen.
In keinen der Richtlinien zur Gestaltung von Windows-Oberflächen steht was
von überlappenden Controls.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Gesperrt