Zum Hauptinhalt springen

EvtIvlDropItem

EvtIvlDropItem

Drop-Vorgang

Details

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:

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);
}