Ein ereignis verhindern



  • hallo

    wie kann man ein ereignis verhindern? z.b. OnShow wird aufgerufen, nun möchte ich wenn nötig, verhindern, das dass event gefeuert wird. Action = 0; funktioniert scheinbar bei sollchen sachen nicht. Close() funktioniert auch nicht, aber selbst wenn, wäre es keine schöne lösung.



  • Welches Ereignis möchtes Du verhindern und warum möchtest Du es verhindern?



  • OnShow (FormShow). weil das formmular nur unter umständen angezeigt werden darf



  • Ähm, die Sichtbarkeit steuert man üblicherweise über die Visible-Eigenschaft der Form.
    Das aber nicht im OnShow, sondern an der Stelle im Programmablauf, an der man die Form ein- oder ausblenden will.
    Alternativ sollten es auch Show() und Hide() tun.



  • Du kannst die Nachrichtenbehandlungsfunktion auf einen eigene Funktion umbiegen und dort eine Filterung vornehmen.
    Guck dir mal die Funktionen SetWindowLong() und GetWindowLong() aus dem Win32 SDK an.

    Gruß,
    Doc



  • Die Nachricht zu verhindern ist doch Unsinn. Er muss doch lediglich verhindern, dass Visible geändert bzw. dass Show oder ShowModal aufgerufen wird.



  • Braunstein schrieb:

    Die Nachricht zu verhindern ist doch Unsinn. Er muss doch lediglich verhindern, dass Visible geändert bzw. dass Show oder ShowModal aufgerufen wird.

    Ich kenne die Anforderungen des OP nicht und habe nur einen Lösungsvorschlag gemacht. Vielleicht kann OP ja mal genauer erklären, warum er die Message unterdrücken möchte.



  • Prinzipiell und wie es auch hier zu verstehen ist, hat natürlich Jansen und Braunstein recht, aber vielleicht meint er ja, daß nur die selbst erstellten Befehle in dem Ereignis nicht ausgeführt werden sollen, aber das Fenster soll trotzdem angezeigt werden !?
    Da hilft es das OnEreignis auf NULL zu setzen.
    Muß aber später wieder gesetzt werden wenn man es wieder braucht.


Log in to reply