Obsah sekce: - Proč 3D přístroje umístěné v objektech gl_panel nebo gl_scene
nevyvolávají proceduru OnMouseDown a nezobrazují text v
bublině?
Proč 3D přístroje umístěné v objektech gl_panel nebo gl_scene
nevyvolávají proceduru OnMouseDown a nezobrazují text v
bublině?
Tyto mechanismy (spolu s několika jinými), jsou vázány na
existenci okna ve Windows (HWND, spolu s ním DC atd...), fungují
tedy nad každým takovýmto oknem (obdélníkem na obrazovce). U 3D
přístrojů pracují jen nad přístroji, které mají registrováno
takovéto své okno (a spolu s ním svůj vykreslovací kontext), tedy
na první úroveň registrovaných 3D přístrojů nad pracovní plochou
Windows (ať je tato v libovolné hierarchické úrovni 2D panelů). 3D
přístroje v dalších úrovních nad 3D panelem nebo 3D scénou již
obecně nejsou reprezentovány nějakým obdélníkem na obrazovce
(jedná se o perspektivní projekci 3D polygonů přístroje do 2D
plochy obrazovky).
Tyto mechanismy by sice bylo možno i ve 3D prostoru do jisté
míry napodobit a simulovat, detekce viditelných polygonů, nad
kterými je právě kurzor myši, je celkem snadná, avšak náročná na
výkon počítače. V systému Control Web je tako
vlastnost vestavěna, je ale implicitně vypnuta.
3D přístroje disponují událostní procedurou On3DMouseClick,
která je vyvolávána při kliknutí levým tlačítkem na přístroj.
Podmínkou aktivace těchto mechanismů je zapnutí solve_mouse_click
v 3D scéně nebo 3D panelu.
|