Zweck
Callback-Methode für die Größenänderung einer Zellengruppe.
Klasse
Typ
Methode
Syntax
<oBrowser>:CellGroupResize(
<iMode>,
<oCellGroupItem>,
<iTouchedEdge>,
<oStartCell>,
<oEndCell>,
<oStartCellNew>,
<oEndCellNew>,
[<cInfoText>]
) Æ iResult
Argumente
<iMode> | Modus, in dem sich die Größenänderung der Zellengruppe befindet. Es können folgende Modi auftreten: |
Modus |
Beschreibung |
Return-Wert |
BCGRM_START |
Der Vorgang für die Änderung der Größe der Zellengruppe wird gestartet. |
Der Return-Wert BCGRR_VALID bewirkt, dass die Zellengruppe in der Größe geändert werden kann. Der Return-Wert BCGRR_INVALID verhindert die Änderung der Größe. |
BCGRM_CHECKCELL |
Die neue Größe der Zellengruppe kann geprüft werden. |
Der Return-Wert BCGRR_VALID bewirkt, dass die Zellengruppe auf die neue Größe geändert wird. Der Return-Wert BCGRR_INVALID verhindert, dass die Zellengruppe auf die neue Größe geändert wird. Der Return-Wert BCGRR_UNDEFINED bewirkt, dass der bBrowser prüft, ob die Zellengruppe durch die neue Größe eine andere Zellengruppe überschneidet. Ist dies der Fall, dann wird die Zellengruppe nicht auf die neue Größe geändert. |
BCGRM_GETINFOTEXT |
Der Text, der während der Änderung der Größe angezeigt wird, kann definiert werden. |
Der Return-Wert BCGRR_VALID bewirkt, dass der definierte Info-Text angezeigt wird. Der Return-Wert BCGRR_UNDEFINED bewirkt, dass der bBrowser einen Standard-Info-Text definiert. |
BCGRM_FINISHREQUEST |
Der Vorgang für die Änderung der Größe der Zellengruppe wurde beendet Die neue Größe kann übernommen oder abgewiesen werden. |
Der Return-Wert BCGRR_VALID bzw. BCGRR_UNDEFINED bewirkt, dass die Zellengruppe auf die neue Größe geändert wird. Der Return-Wert BCGRR_INVALID verhindert, dass die Zellengruppe auf die neue Größe geändert wird. |
BCGRM_FINISH |
Der Vorgang für die Änderung der Größe der Zellengruppe wurde beendet und die Größe der Zellengruppe wurde geändert. |
Der Return-Wert wird nicht ausgewertet. |
BCGRM_ABORT |
Der Vorgang für die Änderung der Größe der Zellengruppe wurde abgebrochen. |
Der Return-Wert wird nicht ausgewertet. |
Datentyp: | Int |
<oCellGroupItem> | Die Zellengruppe, deren Größe geändert wird. |
Datentyp: | bCellGroupItem |
<iTouchedEdge> | Die Rahmenseite der Zellengruppe, an der die Größe geändert wird. Es können folgende Werte auftreten: |
Wert |
Beschreibung |
BCGRTE_LEFT |
Die Größe der Zellengruppe wird am linken Rand verändert. |
BCGRTE_TOP |
Die Größe der Zellengruppe wird am oberen Rand verändert. |
BCGRTE_RIGHT |
Die Größe der Zellengruppe wird am rechten Rand verändert. |
BCGRTE_BOTTOM |
Die Größe der Zellengruppe wird am unteren Rand verändert. |
Datentyp: | Int |
<oStartCell> | Die Startzelle, an der die Zellengruppe beginnt. Die Zelle definiert eine absolute Position. |
Datentyp: | bCell |
<oEndCell> | Die Endzelle, an der die Zellengruppe endet. Die Zelle definiert eine absolute Position. |
Datentyp: | bCell |
<oStartCellNew> | Die neue Startzelle, an der die Zellengruppe beginnen soll. Die Zelle definiert eine absolute Position. |
Datentyp: | bCell |
<oEndCellNew> | Die neue Endzelle, an der die Zellengruppe enden soll. Die Zelle definiert eine absolute Position. |
Datentyp: | bCell |
<cInfoText> | Ein Info-Text, der während der Größenänderung 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 |
BCGRR_UNDEFINED |
Der Modus wurde nicht verarbeitet.
Der bBrowser ermittelt selbstständig, ob der Modus erlaubt ist. |
BCGRR_VALID |
ie Größenänderung der Zellengruppe ist für den Modus erlaubt. |
BCGRR_INVALID |
Die Größenänderung der Zellengruppe ist für den Modus nicht erlaubt. |
Datentyp: | Int |
Beschreibung
bBrowser:CellGroupResize() ist eine Callback-Methode, die immer dann vom bBrowser aufgerufen wird, wenn die Größe einer Zellengruppe mit der Maus im bBrowser verändert wird. Die Methode überprüft, ob im Owner des bBrowser eine Methode mit dem gleichen Namen definiert ist und ruft diese gegebenenfalls mit einem Objekt der Klasse bCellGroupResizeEvent als einziges Argument auf.
Der gesamte Vorgang für die Größenänderung einer Zellengruppe ist in mehrere Schritte unterteilt. Für jeden einzelnen Schritt ruft der bBrowser die Methode CellGroupResize() mit dem entsprechenden Modus auf. Der Owner des bBrowser kann durch die Definition einer eigenen CellGroupResize()-Methode auf diese Modi reagieren.
Beispiele
Das folgende Beispiel zeigt die Definition einer eigenen CellGroupResize()-Methode im Owner des bBrowser. Diese wird automatisch vom bBrowser aufgerufen.
METHOD CellGroupResize(oCellGroupResizeEvent) CLASS myDataWindow
// Callback Methode für die Größenänderung einer Zellengruppe
LOCAL iResult AS INT
LOCAL oStartCellNew AS bCell
LOCAL oEndCellNew AS bCell
// Modus auswerten
iResult := BCGRR_UNDEFINED
IF oCellGroupResizeEvent:Mode = BCGRM_GETINFOTEXT
// Größe der Zelle als Info-Text im Event setzen.
// -> Der Info-Text wird beim Resizen angezeigt.
IF InList(oCellGroupResizeEvent:TouchedEdge, BCGRTE_LEFT, BCGRTE_RIGHT)
oStartCellNew := oCellGroupResizeEvent:StartCellNew
oEndCellNew := oCellGroupResizeEvent:EndCellNew
oCellGroupResizeEvent:InfoText := self:GetTimeFromColumnPercentage(oStartCellNew:Column, iif(oStartCellNew:ColumnPercentage = BCELL_PERCENTAGE_UNDEFINED, BCELL_PERCENTAGE_NULL, oStartCellNew:ColumnPercentage));
+ " / ";
+ self:GetTimeFromColumnPercentage(oEndCellNew:Column, iif(oEndCellNew:ColumnPercentage = BCELL_PERCENTAGE_UNDEFINED, BCELL_PERCENTAGE_MAX, oEndCellNew:ColumnPercentage))
iResult := BCGRR_VALID
ENDIF
ENDIF
RETURN iResult
METHOD GetTimeFromColumnPercentage(iColumn AS INT, rPercentage AS REAL8) AS STRING PASCAL CLASS myDataWindow
// Spaltennummer (Stunden) und Prozentsatz (Minuten) in Uhrzeit konvertieren
LOCAL cTime AS STRING
LOCAL iHours AS INT
LOCAL iMinutes AS INT
// Uhrzeit ermitteln
iHours := iColumn - 2
IF iColumn <= 0 .OR. iColumn > 23
iHours := 0
ELSE
iHours := iColumn - 2
ENDIF
iMinutes := Integer(Round(60.00 * (rPercentage / BCELL_PERCENTAGE_MAX), BCELL_PERCENTAGE_PRECISION))
cTime := StrZero(iHours, 2) + ":" + StrZero(iMinutes, 2)
RETURN cTime
Siehe auch
Page url: http://www.YOURSERVER.com/index.html?bbrowser_cellgroupresize.htm