[maxGUI] Eventhooks
Übersicht

![]() |
maximilianBetreff: [maxGUI] Eventhooks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da Hooks anscheinend die einzige Möglichkeit sind ein Canvas fließend zu resizen, gibt es keine Möglichkeit für mich auf sie zu verzichten. Mit ihnen tauchen für mich allerdings ganz neue Probleme auf. ![]() 1.) Ist es sinnvoll (oder Muss), für jedes Fenster eine eigene Hook- und Eventhandler-Funktion zu haben, oder kann man das eleganter lösen? Sobald ein neues Fenster z.B. geöffnet werden muss deaktiviere ich das alte (soll derweil nichts machen), entferne die alte Hook-Funktion und füge die vom neuen Fenster hinzu. 2.) Ist es sinnvoll Fenster schon von vorn herein zu erstellen, und dann zu verstecken (hidden)? Normalerweise hätte der Source so für mich ausgesehen: Code: [AUSKLAPPEN] Case EVENT_MENUACTION ... NewWindow() ... Function NewWindow Local win:TGadget = CreateWindow... Repeat WaitEvent() Forever End Function Stattdessen sieht sie ungefähr so aus: Code: [AUSKLAPPEN] Global win:TGadget ... Case EVENT_MENUACTION ... win = CreateWindow(... RemoveHook EmitEventHook, MainWindowHook AddHook EmitEventHook, NewWindowHook NewWindow() ... Function NewWindow(event:TEvent) Select event.id End Select End Function Ich bezweifle zwar, dass das verständlich rübergekommen ist, hoffe trotzdem aber auf Antworten. ![]() |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Fenster würde ich vorab erstellen und jeweils verstecken und anzeigen auf Bedarf.
Dann kannst du im Hauptcode auf einfache weise garantieren, dass weder fenster erzeugt noch gefreet werden. Sonst passiert es nämlich durchaus mal das man irgendwo eine referenz falsch setzt und aus versehen etwas freet was man noch gebraucht hätte und dann auf schier un-debug-bare Fehler stösst. Was den Hook betrifft, so gibts dafür so viele verschiedene Ansätze wie Programierstile. Eine der einfacheren und sauberen Varianten scheint ein MasterEventhook zu sein. Der kann dann zb den namen des fensters nehmen und es direkt in einer TMap suchen und anzeigen. Ein Beispiel eines Master Eventhandlers ist im englischen Codearchiv. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, das beantwortet meine Fragen schon mal so weit. Da mir diese MasterEventHooks allerdings auch umständlich vorkommen bleibe ich erstmal bei einzelnen Funktionen. Danke! | ||
Variety is the spice of life. One day ignore people, next day annoy them. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group