TPanel: Drag'n'Drop



  • Hi

    Ich bei einem Panel die Eigenschaft DragMode auf dmAutomatic und DragKind auf dkDock gesezt. Jetzt ist es möglich, dieses Panel im Programm "herumzuziehen" - so weit so gut.
    Wie kann ich nun auf das Schliessen dieses Fensters reagieren. Dadurch will ich die Eigenschaft checked eines MenuItems auf true/false setzten, jenachdem ob das Fenster sichtbar ist...



  • Hab ich das richtig verstanden? Du hast ein Formular mit einem Panel? Und dieses willst du schließen? und dabei noch irgendetwas setzen? was hat das dann mit dem Drag&Drop zu tun?!

    mmh also du könntest für das Form mit dem Panel auf das FormCloseQueryEvent zugreifen und darein deklarieren, was passieren soll?!
    Sichtbarkeit des Fensters erreichst du mit Abfragen zu visible oder Hide.

    schau doch mal in der Hilfe. Ich glaub auch dass hier in der FAQ was dazu stand (oder suchen)

    mfg
    Steffen



  • Bei DragKind = dkDock wird das betreffende Control beim Verschieben "abgerissen" und "schwebt" dann in einem eigenen ToolWindow-artigen Fenster. Wenn ich chewy richtig verstanden habe geht es hier darum, das Schliessen dieses Minifensters abzufangen bzw. auszuwerten.

    Mit Visible bist du aber gar nicht sooo verkehrt. Es gibt zwar kein Event für das Schliessen des Minifensters, es wird aber wohl die Visible-Property des "schwebenden" Controls auf false gesetzt, was sich ja dann abfragen liesse.



  • Original erstellt von Jansen:
    **

    Bei DragKind = dkDock wird das betreffende Control beim Verschieben "abgerissen" und "schwebt" dann in einem eigenen ToolWindow-artigen Fenster. Wenn ich chewy richtig verstanden habe geht es hier darum, das Schliessen dieses Minifensters abzufangen bzw. auszuwerten.
    **

    genau 😉

    Original erstellt von Jansen:
    **
    Mit Visible bist du aber gar nicht sooo verkehrt. Es gibt zwar kein Event für das Schliessen des Minifensters, es wird aber wohl die Visible-Property des "schwebenden" Controls auf false gesetzt, was sich ja dann abfragen liesse.**

    Und genau hier liegt mein Problem... ich hab eine CheckBox, die anzeigt, ob das Fenster sichtbar oder unsichtbar ist. Im Moment, wenn das 'Minifenster' geschlossen wird, sollte nun die CheckBox auf checked = false gesetzt werden.
    Wie geht das nun am einfachsten??



  • Ich weiß ja nicht. Also, bei mir hat ein TPanel kein Ereignis OnHide oder OnShow. D.h., du musst das mit Windows-Messages machen. Stichwort: SW_SHOW. Zu Windoof-Messages schaue in die FAQ.



  • Hallo Alle,

    Laut meinen Informationen ist dieses ToolWindow vom Typ TToolDockForm, welches wieder von TCustomForm abgeleitet ist. Damit müßte das Toolwindow ein OnClose Ereignis haben. Man müßte sich also nur einen Pointer auf das Toolwindow besorgen und dann die Ereignisroutine zuweisen.

    Ciao

    [ Dieser Beitrag wurde am 22.01.2003 um 09:58 Uhr von Braunstein editiert. ]



  • Original erstellt von Braunstein:
    [QB]
    Man müßte sich also nur einen Pointer auf das Toolwindow besorgen und dann die Ereignisroutine zuweisen.
    QB]

    😕 😕 und wie mach ich das



  • Hallo,

    An den Pointer kommt man schon, da nach dem Abreißen das Toolwindow der Parent des Panels wird. Das nützt allerdings nicht viel, da OnClose in TCustomForm protected ist und somit nichts zuweisen kannst. Das hatte ich übersehen. Scheinbar musst du doch über windows messages gehen.


Anmelden zum Antworten