Files
Rex-EMoolator-docs/docs/en/reference/GROUP.md
Patryk Gensch 198d9cf477 Finished automatically generated docs
Time to correct it by itself
2026-05-20 22:49:46 +02:00

3.3 KiB

GROUP

A group of variables that can receive batched method calls. Any method invoked on a GROUP instance that is not part of the group's own API is delegated to each member in turn. Members that do not implement the called method are skipped silently (without error).

The group keeps an internal marker pointing at one of its elements. The marker is updated by NEXT, PREV, and RESETMARKER. It can be used to iterate over the group sequentially.

The variable's value is the number of elements in the group.

Methods

[method name]

void <methodName>(mixed param1, ..., mixed paramN)

Any method outside the group's own API is forwarded to every member with the same arguments. Members that do not implement the method are skipped.

Examples

GRPHIDE^HIDE();
GRPMOVE^SETPOSITION(VARX,VARY);

ADD

void ADD(STRING varName1, [STRING varName2, ...])

Adds one or more elements to the group by variable name. Re-adding an element that is already in the group is a no-op.

Parameters

  • varName1, varName2, … — successive variable names to add.

Examples

GRPHIDE^ADD("ANNREX");
GRPMOVE^ADD("ANNBODY1","ANNWAND1","ANNHEAD1");
GALL^ADD(["ANNPOLA_"+ICLONENO]);

ADDCLONES

void ADDCLONES(STRING varName, INTEGER firstCloneIndex, INTEGER lastCloneIndex)

Adds an inclusive range of variable clones — from firstCloneIndex up to lastCloneIndex. Clones are referenced by name using the engine's clone-naming pattern (index suffix).

Parameters

  • varName — base variable name.
  • firstCloneIndex — first clone index.
  • lastCloneIndex — last clone index.

Examples

GBKG^ADDCLONES("ANNPLANNAK",0,[I1-1]);
GTRASA^ADDCLONES("ANNSKRZYNIA",1,ITMPCLONENO);
GRPLANS^ADDCLONES("IMGPLAN1",1,10);

GETSIZE

INTEGER GETSIZE()

Returns the number of elements in the group.

Returns: INTEGER — the group size.

Examples

GRPHIDE^GETSIZE();

NEXT

mixed NEXT()

Advances the marker by one (clamped at the last element) and returns a reference to the element under the new marker.

Returns: reference to the element under the new marker.

Examples

GENEMIES^NEXT();
GBAZUK^NEXT();

PREV

mixed PREV()

Moves the marker back by one (clamped at zero) and returns a reference to the element under the new marker.

Returns: reference to the element under the new marker.

REMOVE

void REMOVE(STRING varName)

Removes the named element from the group. If the marker was pointing past the new last index, it is moved back to the last available element (or to -1 if the group becomes empty).

Parameters

  • varName — variable name to remove.

Examples

GOBJ^REMOVE(S1);
GOBJ^REMOVE("ANNTNTR");

REMOVEALL

void REMOVEALL()

Drops every element from the group and resets the marker.

Examples

GRPHIDE^REMOVEALL();

RESETMARKER

void RESETMARKER()

Moves the marker to the first element (index 0). For an empty group the marker becomes -1.

Examples

GENEMIES^RESETMARKER();

Signals

ONINIT

Fired when the object is initialised.

ONSIGNAL

Fired when a signal arrives (see Events and signals).