CREATE_OBJ ​
CREATE_OBJ creates a new instance of a certain class in a certain model. The model must be loaded.
Syntax ​
leo-grammar
CC "Core" CREATE_OBJ modelid:intValue classid:intValue objname:strValue .
#-->RESULT ecode:intValue objid:idValue
Parameters ​
modelid
(idValue) - the ID of the model in which the object should be createdclassid
(intValue) - he ID of the class of which an instance should be createdobjname
(strValue) - the name of the instance
Returns ​
ecode
(intValue) - Contains the error code or is 0 in case of success.objid
(idValue) - the ID of the new object.
Details ​
See Also ​
Examples ​
asc
# get the modelid of the current model
SEND "GET_ACTIVE_MODEL" to:"Modeling" answer:modelid
IF (modelid = "") {
CC "AdoScript" ERRORBOX "Open a new model first!"
EXIT
}
# get the id of class "Aktivität"
CC "Core" GET_CLASS_ID classname:"Aktivität"
# create the object
CC "Core" CREATE_OBJ modelid:(VAL modelid) classid:(classid) objname:"A new activity"
IF (ecode != 0) {
CC "AdoScript" ERRORBOX ("The object could not be created. \n"+
"Maybe one with the same name already exists?")
}
# this has to be called to update the modeling window
CC "Modeling" REBUILD_DRAWING_AREA
Open a new model and execute the script. The script ascertains the ID of the class "Aktivität" and the ID of the active model. With these IDs it creates a new instance.
asc
CC "Modeling" GET_ACT_MODEL
SET classname:"Aktivität" # name of the class of which objects are created here
SET n:999 # number of objects to create
SET m:(INT(sqrt(n)))
CC "Core" GET_CLASS_ID classname:(classname)
SET newobjs:(array(0))
FOR i from:0 to:(n - 1) {
CC "Core" CREATE_OBJ modelid:(modelid) classid:(classid)
objname:(classname + STR i)
SET dummy:(aappend(newobjs, objid))
CC "Application" SET_STATUS ("Objekt erzeugt: " + STR (i + 1) + "/" + STR n)
}
CC "Modeling" REBUILD_DRAWING_AREA
FOR i from:0 to:(n - 1) {
SET x:(2cm + (i - FLOOR(i / m) ** m) ** 4cm)
SET y:(2cm + FLOOR(i / m) ** 4cm)
CC "Modeling" SET_OBJ_POS objid:(newobjs[i]) x:(x) y:(y)
CC "Application" SET_STATUS ("Objekt positioniert: " +
STR (i + 1) + "/" + STR n)
}
Versions and Changes ​
Available since ADOxx 1.3