EvtIvlDropItem
EvtIvlDropItem
Drop-Vorgang
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aHdlTarget:
handleDeskriptor des Ziel-Objekts ( GanttGraph ) - aHdlIvl:
handleDeskriptor des Intervalls - aDropType:
intDrop-Typ - aRect:
rectPosition des Intervalls - Resultat:
logicDrop-Vorgang durchführen? - Siehe: Liste , Objekte , Ereignisbefehle
Das Ereignis wird bei einem GanttGraph -Objekt ausgelöst, wenn ein Intervall oder ein Box -Objekt vom Anwender verschoben, kopiert oder in der Größe verändert werden soll.
Definition des Funktionskopfes:
sub EvtIvlDropItem
(
aEvt : event; // Ereignis
aHdlTarget : handle; // Deskriptor des Zielobjekts (GanttGraph)
aHdlIvl : handle; // Deskriptor des Intervalls
aDropType : int; // Drop-Ereignis
aRect : rect; // Position des Intervalls
)
: logic; // Drop-Vorgang durchführen?
{
return(true);
}
aEvt
In dem Übergabeparameter vom Typ event wird unter anderem der Deskriptor des auslösenden Objekts, d. h. das Objekt, in dem die Ereignisfunktion eingetragen wurde, übergeben.
In der Komponente ID des Übergabeparameters aEvt wird _WinEvtIvlDropItemOverlap übergeben, wenn das Intervall so vergrößert, verschoben oder kopiert wurde, dass es sich mit einem anderen Intervall überschneidet.
aHdlTarget
Bei aHdlTarget handelt es sich um den Deskriptor des GanttGraph -Objekts, in dem das Intervall fallengelassen wird. aHdlTarget kann ungleich aEvt:Obj sein, da bei einer Verschiebe- oder Kopieren-Operation des Intervalls , die zugehörigen GanttGraphen unterschiedliche Objekte sein können. aEvt:Obj ist der Deskriptor des Quell-Gantt-Objekts, in dem der Vorgang gestartet wurde.
aHdlIvl
aHdlIvl ist des Deskriptor des Intervalls bzw. Box -Objektes, das verschoben, kopiert oder in der Größe verändert werden soll.
aDropType
aDropType kann folgende Werte annehmen:
_WinIvlDropSizeLeft: Linke Kante des Intervalls bzw. Box -Objektes wurde gezogen_WinIvlDropSizeRight: Rechte Kante des Intervalls bzw. Box -Objektes wurde gezogen_WinIvlDropSizeTop: Obere Kante des Box -Objektes wurde gezogen_WinIvlDropSizeBottom: Untere Kante des Box -Objektes wurde gezogen_WinIvlDropSizeLeftTop: Linke obere Ecke des Box -Objektes wurde gezogen_WinIvlDropSizeLeftBottom: Linke untere Ecke des Box -Objektes wurde gezogen_WinIvlDropSizeRightTop: Rechte obere Ecke des Box -Objektes wurde gezogen_WinIvlDropSizeRightBottom: Rechte untere Ecke des Box -Objektes wurde gezogen_WinIvlDropMove: Intervall wurde verschoben_WinIvlDropCopy: Intervall wurde kopiert
aRect
Über aRect (vom Typ rect) kann die Position des Intervalls nach dem Verschieben, Kopieren oder Größenänderung ermittelt werden.
Resultat
Über den Rückgabewert kann entschieden werden, ob der Drop-Vorgang durchgeführt werden soll (true) oder nicht (false).
Das Intervall bzw. die Box kann nur im Bereich des Rasters verändert werden. Sobald das Objekt das Raster verlässt, wird der Mauszeiger auf den NoDrop-Zeiger verändert. Ist die Eigenschaft OleDropMode auf _WinOleDynamic gesetzt, findet keine Änderung des Mauszeigers statt. Soll der Mauszeiger trotzdem verändert werden, muss in der Eigenschaft GanttFlags des GanttGraph -Objektes die Ausprägung _WinGanttDropLimitBound gesetzt werden.
Beispiel:
sub EvtIvlDropItem
(
aEvt : event; // Ereignis
aHdlTarget : handle; // Ziel-Objekt (GanttGraph)
aHdlIvl : handle; // Deskriptor des Intervalls
aDropType : int; // Drop-Ereignis
aRect : rect; // verändertes Intervall-Rechteck
) : logic; // Drop-Vorgang durchführen?
{
switch (aDropType)
{
case _WinIvlDropSizeLeft : ...
case _WinIvlDropSizeRight : ...
case _WinIvlDropSizeTop : ...
case _WinIvlDropSizeBottom : ...
case _WinIvlDropSizeLeftTop : ...
case _WinIvlDropSizeLeftBottom : ...
case _WinIvlDropSizeRightTop : ...
case _WinIvlDropSizeRightBottom : ...
case _WinIvlDropCopy : ...
case _WinIvlDropMove : ...
}
return(true);
}