Zweck
Callback-Methode für das Verschieben einer Zellengruppe.
Klasse
Typ
Methode
Syntax
<oBrowser>:CellGroupMove(
<iMode>,
<oCellGroupItem>,
<oCell>,
[<cInfoText>]
) Æ iResult
Argumente
<iMode> | Modus, in dem sich das Verschieben der Zellengruppe befindet. Es können folgende Modi auftreten: |
Modus |
Beschreibung |
Return-Wert |
BCGMM_START |
Das Verschieben der Zellengruppe wird gestartet. |
Der Return-Wert BCGMR_VALID bewirkt, dass die Zellengruppe verschoben werden kann. Der Return-Wert BCGMR_INVALID verhindert das Verschieben. |
BCGMM_CHECKCELL |
Die neue Position der Zellengruppe kann geprüft werden. |
Der Return-Wert BCGMR_VALID bewirkt, dass die Zellengruppe an die neue Position verschoben werden kann. Der Return-Wert BCGMR_INVALID verhindert, dass die Zellengruppe an diese Position verschoben werden darf. Der Return-Wert BCGMR_UNDEFINED bewirkt, dass der bBrowser prüft, ob die Zellengruppe an der neuen Position eine andere Zellengruppe überschneidet. Ist dies der Fall, dann darf die Zellengruppe nicht an diese Position verschoben werden. |
BCGMM_FINISHREQUEST |
Das Verschieben der Zellengruppe wurde beendet. Die neue Position kann übernommen oder abgewiesen werden. |
Der Return-Wert BCGMR_VALID bzw. BCGMR_UNDEFINED bewirkt, dass die Zellengruppe an die neue Position verschoben wird. Der Return-Wert BCGMR_INVALID verhindert, dass die Zellengruppe an die neue Position verschoben wird. |
BCGMM_FINISH |
Die Zellengruppe wurde an die neue Position verschoben. |
Der Return-Wert wird nicht ausgewertet. |
BCGMM_ABORT |
Das Verschieben der Zellengruppe wurde abgebrochen. |
Der Return-Wert wird nicht ausgewertet. |
Datentyp: | Int |
<oCellGroupItem> | Die Zellengruppe, die verschoben wird. |
Datentyp: | bCellGroupItem |
<oCell> | Die neue Startzelle, an die die Zellengruppe verschoben werden soll. Die Zelle definiert eine absolute Position. |
Datentyp: | bCell |
<cInfoText> | Ein Info-Text, der während des Verschieben unterhalb des Mauszeigers angezeigt werden soll. Das Argument muss als Referenz übergeben werden. |
Datentyp: | String |
Rückgabewert
iResult | Numerischer Wert, der definiert, ob der Modus korrekt verarbeitet wurde. Folgende Werte werden unterstützt: |
Wert |
Beschreibung |
BCGMR_UNDEFINED |
Der Modus wurde nicht verarbeitet.
Der bBrowser ermittelt selbstständig, ob der Modus erlaubt ist. |
BCGMR_VALID |
Das Verschieben der Zellengruppe ist für den Modus erlaubt. |
BCGMR_INVALID |
Der Verschieben der Zellengruppe ist für den Modus nicht erlaubt. |
Datentyp: | Int |
Beschreibung
bBrowser:CellGroupMove() ist eine Callback-Methode, die immer dann vom bBrowser aufgerufen wird, wenn eine Zellengruppe mit der Maus im bBrowser verschoben wird. Die Methode überprüft, ob im Owner des bBrowsers eine Methode mit dem gleichen Namen definiert ist und ruft diese gegebenenfalls mit einem Objekt der Klasse bCellGroupMoveEvent als einziges Argument auf.
Der gesamte Verschiebevorgang für eine Zellengruppe ist in mehrere Schritte unterteilt. Für jeden einzelnen Schritt ruft der bBrowser die Methode CellGroupMove() mit dem entsprechenden Modus auf. Der Owner des bBrowser kann durch die Definition einer eigenen CellGroupMove()-Methode auf diese Modi reagieren.
Beispiele
Das folgende Beispiel zeigt die Definition einer eigenen CellGroupMove()-Methode im Owner des bBrowser. Diese wird automatisch vom bBrowser aufgerufen.
METHOD CellGroupMove(oCellGroupMoveEvent) CLASS myDataWindow
// Callback Methode für das Verschieben einer Zellengruppe
LOCAL ocgiTemp AS bCellGroupItem
LOCAL oStartCell AS bCell
LOCAL oEndCell AS bCell
LOCAL iColumn AS INT
LOCAL rPercentage AS REAL8
LOCAL iHours AS INT
LOCAL iMinutes AS INT
// Modus auswerten
IF oCellGroupMoveEvent:Mode = BCGMM_START
IF oCellGroupMoveEvent:CellGroupItem:PropertyGet(#Fixed)
// Die Zellengruppe darf nicht verschoben werden.
// -> Durch die Rückgabe von BCGMR_VALID wird das Verschieben verhindert.
RETURN BCGMR_INVALID
ENDIF
ELSEIF oCellGroupMoveEvent:Mode = BCGMM_CHECKCELL
// Position der Zelle als Info-Text zurückgeben.
// Der Info-Text wird unterhalb des Mauszeiger angezeigt wird.
oStartCell := oCellGroupMoveEvent:CellGroupItem:GetStartCell(BCGIGCO_ABSOLUTE)
oEndCell := oCellGroupMoveEvent:CellGroupItem:GetEndCell(BCGIGCO_ABSOLUTE)
ocgiTemp := bCellGroupItem{oStartCell, oEndCell}
ocgiTemp:Move(oCellGroupMoveEvent:Cell, BCGIMO_ABSOLUTEPOSITION)
iColumn := ocgiTemp:StartCell:Column
rPercentage := ocgiTemp:StartCell:ColumnPercentage
iHours := iColumn - 2
IF iColumn <= 0 .OR. iColumn > 23
iHours := 0
ELSE
iHours := iColumn - 2
ENDIF
iMinutes := 60 * (rPercentage / 100.00)
oCellGroupMoveEvent:InfoText := StrZero(iHours, 2) + ":" + StrZero(iMinutes, 2)
ENDIF
RETURN BCGMR_UNDEFINED
Siehe auch
Page url: http://www.YOURSERVER.com/index.html?bbrowser_cellgroupmove.htm