Erstmal sorry für den DP, nur war mir zu blöd jedesmal mein Post zu editieren.Fehler könnt ihr nun selbst testen mit einem Funktionsfähigen Beispiel:
Code:
;{- Initiieren von Umgebungen und Plugins
InitSprite()
;}
;{- Aufzählung der Konstanten
Enumeration
#Window
#GadgetHead
#GadgetNaviStart
#GFXHead
#GFXNavi
EndEnumeration
;}
;{- Bilder vorbereiten
CreateImage(#GFXHead,800,50)
StartDrawing(ImageOutput(#GFXHead))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,800,600,RGB(200,200,200))
StopDrawing()
CreateImage(#GFXNavi,50,50)
StartDrawing(ImageOutput(#GFXNavi))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,50,50,RGB(200,200,150))
StopDrawing()
;}
;{- Öffnen und Ausführen des Hauptfensters
OpenWindow(#Window, 25, 25, 800, 600, "Konstanten Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
ImageGadget(#GadgetHead, 0, 0, 800, 600, ImageID(#GFXHead))
ImageGadget(#GadgetNaviStart, 0, 50, 50, 50, ImageID(#GFXNavi))
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Debug EventGadget()
EndIf
Until Event = #PB_Event_CloseWindow
;}
Analyse:Wenn ihr nun das zweite ImageGadget auf die Y Koordinate 0 setzt, was ich ja in meiner Anwendung vorhabe, dann bekomme ich jedesmal die gleiche EventGadget()-ID.
Begründung:PureBasic ist es nicht möglich, soweit ich das sehe, mit ImageGadgets die übereinander positioniert sind, umzugehen!
In CascadingStyleSheets (Zum Beispiel bei einem Einsatz für Homepage-Navigationen) ist es möglich durch Index die Grafiken unabhängig reagieren zu lassen da diese sich "nicht wirklich" den selben Platz teilen durch die Index(-Trennung).
Lösung:Mehrere ImageGadgets nicht an der selben Position erstellen.
Ist das eine Lösung?:Nein!
Denn dann müsste ich für jeden Navigations-Punkt (jedes Icon) einen Schnitt in den Hintergrund machen und so tun als ob es ein Hintergrundbild gibt, welches in wirklichkeit mit in dem Navi-Icon gemalt ist.
Ist das nun ein Fehler in PureBasic 4.5?:Das würde ich gern von EUCH wissen?

Gruß
Renovatio