Events voorzien per editor functie die toelaten om extra controles en/of manipulaties uit te voeren. Deze functionaliteit kan geactiveerd worden via de extra instelling ‘Functie gebeurtenissen ‘ in ‘Bewerken – Instellingen – Editor – Instellingen’.
Tijdens de events toe laten om de eigenschappen beschikbaar voor de desbetreffende editorfunctie te wijzigen.
Per editorfunctie zijn er een aantal events voorzien :
_ONSELECT (selectie andere editorfunctie)
_ONBEFORESELECT (voor wijziging selectie in editorfunctie)
_ONAFTERESELECT (na wijziging selectie in editorfunctie)
_ONBEFOREACCEPT (voor bevestigen editorfunctie)
_ONAFTERACCEPT (na bevestigen editorfunctie)
_ONBEFORECANCEL (voor onderbreken editorfunctie)
_ONAFTERCANCEL (na onderbreken editorfunctie)
_ONCHANGED (wijziging in editorfunctie)
Mogelijke parameters beschikbaar zijn :
ACTION.FUNID (geselecteerde functie)
ACTION.PROJECT (huidige project)
ACTION.ASSEMBLY (huidige groep)
ACTION.SELECTED (aantal geselecteerde objecten)
ACTION.ROWID (geselecteerde rij eigenschappen lijst)
ACTION.ATOM (nieuw object in aanmaak)
ACTION.DATAVIEW (visualisatie eigenschappen)
DATA_NONE (geen)
DATA_LIST(lijst)
DATA_GRID (tabel)
DATA_CHECK (checklist)
ACTION.DATALINK (huidige functie eigenschappen enkel voor LIST/GRID beschikbaar)
De parameter “ACTION.DATALINK” is een verwijzing naar een nieuw type object met zijn specifieke eigenschappen en methodes afhankelijk van de “DATAVIEW” van de editorfunctie:
Het object “_OBJMAPPER” wordt gebruikt indien de editorfunctie een lijst met gegevens toont (DATA_LIST)
CAPTION (omschrijving van het veld op positie) (*)
Mapper.Caption[Dpos]
COUNT (aantal velden in lijst) (*)
Mapper.Count
READONLY (wijzigbaar veld op positie)
Mapper.ReadOnly[Dpos]
TAG (tag van het veld op positie) (*)
Mapper.Tag[Dpos]
VALUE (waarde van veld op positie)
Mapper.Value[Dpos]
VISIBLE (zichtbaar veld op positie)
Mapper.Visible[Dpos]
(*) deze eigenschappen kunnen enkel opgevraagd worden en niet gewijzigd
CELL (positie veld in lijst, zoeken via caption of tag)
Mapper.Cell(Scaption)
Mapper.Cell(Dtag)
DOOR (positie deur in lijst, zoeken via caption of tag)
Mapper.Door(Scaption)
Mapper.Door(Dtag)
PAINT (lijst hertekenen)
Mapper.Paint()
Er zijn 2 mogelijke resultaten voor het zoeken van een veld /deur:
- niet gevonden -1
- wel gevonden > 0
Het object “_ARRAYMAPPER” wordt gebruikt indien de editorfunctie een grid met gegevens toont (DATA_GRID)
CAPTION (omschrijving van het veld op positie) (*)
Mapper.Caption[Drow,Dcol]
COLS (aantal kolommen in grid) (*)
Mapper.Cols
READONLY (wijzigbaar veld op positie)
Mapper.ReadOnly[Drow,Dcol]
ROWS (aantal rijen in grid) (*)
Mapper.Rows
TAG (tag van het veld op positie) (*)
Mapper.Tag[Drow,Dcol]
VALUE (waarde van het veld op positie)
Mapper.Value[Drow,Dcol]
VISIBLE (zichtbaar veld op positie)
Mapper.Visible[Drow,Dcol]
(*) deze eigenschappen kunnen enkel opgevraagd worden en niet gewijzigd
CELL (positie veld in grid, zoeken via caption of tag)
Mapper.Cell(Scaption)
Mapper.Cell(Dtag)
DOOR (positie deur in grid, zoeken via caption of tag)
Mapper.Door(Scaption)
Mapper.Door(Dtag)
PAINT (grid hertekenen)
Mapper.Paint()
Er zijn 2 mogelijke resultaten voor het zoeken van een veld /deur:
- niet gevonden -1
- wel gevonden > 0
Extra script functies om de zichtbaarheid van de editorfunctie eigenschappen op te vragen en te manipuleren zijn :
IsDoorVisible (Ddoorid) : Bvisible
True (zichtbaar)
False (niet zichtbaar)
GetDoorVisible(Ddoorid, Bvisible) : Bvisible
True (was zichtbaar)
False (was niet zichtbaar)
Extra script functies om de wijzigbaarheid van de editorfunctie eigenschappen op te vragen en te manipuleren zijn :
IsDoorReadOnly (Ddoorid) : Breadonly
True (wijzigbaar)
False (niet wijzigbaar)
GetDoorReadOnly(Ddoorid, Breadonly) : Breadonly
True (was wijzigbaar)
False (was niet wijzigbaar)
Mogelijke waarden voor “Ddoorid” zijn volgende constanten :
DOOR_VIEW (weergave)
DOOR_PRICE (prijs)
DOOR_HANDLE (kruk)
DOOR_PROFILE (profiel)
DOOR_FILLING (vulling)
DOOR_OBJECT (object)
DOOR_COLOR (uitvoering)
DOOR_SECTION (doorsnede)
DOOR_ACCESSORY (beslag)
DOOR_FRAMEPART (kaderdeel)
DOOR_VENTPART (vleugeldeel)
DOOR_GLAZINGBEAD (glaslatset)
DOOR_CROSSES (kleinhout)
DOOR_VENTILATION (verluchting)
DOOR_REINFORCEMENT (versterkingset)
DOOR_FUNCTIONAL_ACCESSORY (functioneel beslag)
DOOR_IMAGE (schets)
DOOR_DIMENSION (afmetingen)
DOOR_POSITION (positie)
DOOR_CORRECTION (correcties)
DOOR_ANGLE (hoeken)
DOOR_TIME (tijden)
DOOR_NORM (norm)
DOOR_NAME (omschrijving)
DOOR_VENT (vleugel)
DOOR_ASSEMBLY (groep)
DOOR_REMARK (opmerking)
DOOR_TABLE (extra beslag)
DOOR_UVALUE (u waarden)
DOOR_OPTIONS (opties)
DOOR_ROUTE (routing)
Voorbeeld van een script dat wordt uitgevoerd na de selectie van een onderdeel in de editor:
OutputMsg('FUNCTION = '+IntToStr(Action.FunId)+', SELECTED = '+IntToStr(Action.Selected));
CurProject := Action.Project;
CurAssembly := Action.Assembly;
CurAtom := AtomToObj(Action.Atom);
CurNdx := Action.RowId;
CurView := Action.DataView;
CurLink := Action.DataLink;
if Action.Selected > 0 then
{
CurSelection := CurProject.GetSelected(0);
OutputMsg('ATOM = '+IntToStr(CurAtom.Id)+', ROW = '+IntToStr(CurNdx));
if CurView = DATA_LIST then
{
CurRows := CurLink.Count;
NdxSystem := CurLink.Cell('Reeks');
NdxProfile := CurLink.Cell('Profiel');
OutputMsg('RIJEN = '+IntToStr(CurRows));
CurSystem := CurLink.Value[NdxSystem];
CurProfile := CurLink.Value[NdxProfile];
OutputMsg('REEKS = '+Trim(CurSystem)+', PROFIEL = '+Trim(CurProfile));
NdxGlyph := CurLink.Door('Schets');
CurDoor := IsDoorVisible(DOOR_IMAGE);
CurDoor := SetDoorVisible(DOOR_IMAGE,False);
CurLink.ReadOnly[NdxGlyph] := True;
CurLink.Value[NdxProfile] := 'GUNTER';
CurLink.Paint();
};
if CurView = DATA_GRID then
{
CurRows := CurLink.Rows;
NdxSystem := CurLink.Cell('Reeks');
NdxProfile := CurLink.Cell('Profiel');
NdxPositie := CurLink.Cell('Positie');
OutputMsg('RIJEN = '+IntToStr(CurRows));
CurSystem := CurLink.Value[1][NdxSystem];
CurProfile := CurLink.Value[1][NdxProfile];
CurSide := CurLink.Value[1][NdxPositie];
OutputMsg('REEKS = '+Trim(CurSystem)+', PROFIEL = '+Trim(CurProfile)+', POSITIE = '+IntToStr(CurSide));
CurLink.Value[CurRows][NdxSystem] := 'AC';
CurLink.Value[CurRows][NdxProfile] := '3700X';
CurLink.Value[CurRows][NdxPositie] := 3;
CurLink.Paint();
};
if CurSelection.IsFrameElement || CurSelection.IsVentElement then
{
if CurSelection.C_Reverted = 1 then OutputMsg('Omgekeerd');
if CurSelection.C_Rotated = 1 then OutputMsg('Geroteerd');
};
};
Action.Result := True;
<< Terug