Behandlung "lost focus"

  • Hallo zusammen

    Was ist der richtige Weg im SDK, um auf den Verlust des Focus eines Fenster (GenPrimary mit VisContent) zu reagieren?

    Ich habe es mit MSG_META_LOST_FOCUS_EXCL versucht. Wenn ich diese über das GenPrimary abfange, passiert nichts. Wenn ich es über GenApplication mache, erhalte ich viel zu viele Aufrufe.

    Ziel ist es, jeweils einen Aufruf wenn das Fenster den Fokus verliert und wenn es den Fokus wieder erhält.

    Besten Dank für all Eure Hints und Inputs.

    Andreas

  • Hallo Rainer

    Meine VisContent hat verschiedene Kind-Objekte. Dies bdeutet doch, dass der Fokus an diese weitergegeben wird und somit das VisContent selbst das EXCL verliert? Die Folge davon wäre, dass die Message nicht einmal gesendet wird, sondern andauernd wieder... Zumindest dachte ich, das sei der Effekt, den ich gesehen haben...

    Nun bin ich nochmals den Code durchgegangen und habe dabei noch einen Fehler bei mir gefunden (Bitset mit &|~...). Habe es dann mit der GenApplicationClass versucht und siehe da, da scheint es zu funktionieren...

    Man lernt nie aus ;)

    Andreas

  • Hallo Andreas,

    die Focus-Hierarchie ist quasi ein Pfad. Das ist in der Doku recht gut erklärt. Wenn der Focus von einem Child des VisContent an ein anderes wechselt, bleibt das VisContent im Focus-Pfad - verliert ihn also nicht. So habe ich das jedenfalls verstanden und ich denke, das ist in R-BASIC auch so implementiert.

    Wenn du wissen willst, ob dein Programm gerade den Focus hat, ist wohl die Application das geeignete Objekt. Ich glaube, in Columns ist das implementiert um das Spiel zu pausieren, wenn es nicht aktiv ist. Schau mal in den Code.

    An sonsten: am besten ausprobieren. Eventuell auch mal die Doku zum Thema Fokus von R-BASIC ansehen, da habe ich versucht, das etwas runterzubrechen. Möglicherweise hilft das.

    Rainer

    P.S. Alle Infos aus der Erinnerung, als ohne Garantie :)

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Ja, genau das mit dem Pausieren mache ich auch ;) Dass das Columns auch so macht, war mir nicht mehr präsent.

    Auf jeden Fall danke für die Hints. In den Quellen greppe ich mich jeweils durch. Die R-Basic Doku war mir nicht auf dem Schirm, wenn ich aber so überlege, dann ganz klar eine gute weitere Top-Quelle :thumbup: