VS:SymbolToGroup: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
(expand example)
(expand example)
Line 57: Line 57:
([[User:Orso.b.schmid|Orso]], 2014.09.14): Upon success, this creates a group which doesn't respond to ''LNewObj''. It actually disables ''LNewObj'', which will return NIL, unregarded what you created before running ''SymbolToGroup''
([[User:Orso.b.schmid|Orso]], 2014.09.14): Upon success, this creates a group which doesn't respond to ''LNewObj''. It actually disables ''LNewObj'', which will return NIL, unregarded what you created before running ''SymbolToGroup''


The handle to the group can be fetched storing a handle to the object BEFORE the symbol on drawing, then fetching the object afterwards:
The handle to the group can be fetched storing a handle to the object BEFORE the symbol on drawing, then fetching the next object:
<code lang="pas">
<code lang="pas">
PROCEDURE T;
PROCEDURE Test;
VAR
VAR
h : HANDLE;
h : HANDLE;
BEGIN
BEGIN
h := PrevObj(FSActLayer); { store "h" as placeholder }
h := PrevObj(FSActLayer); { store "h" as placeholder }
{ FSActLayer is a symbol on drawing }


IF FSActLayer <> NIL THEN BEGIN  
{ FSActLayer must be a symbol on drawing }
IF (FSActLayer <> NIL) & (GetType(h) = 15) THEN BEGIN
SymbolToGroup(FSActLayer, 2);
SymbolToGroup(FSActLayer, 2);
Message(GetType(NextObj(h))); { <-- NextObj(h) is the new group }
{ fetch group starting from placeholder "h" }
{ fetch group starting from placeholder "h" }
Message(GetType(NextObj(h))); { <-- NextObj(h) should return 11: is the new group }
END ELSE
END ELSE
AlrtDialog('Select a symbol on drawing!');
AlrtDialog('Select a symbol on drawing!');
END;
END;
RUN(T);</code>
RUN(Test);</code>
</remark>
</remark>



Revision as of 06:25, 15 September 2014

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Converts referenced symbol to group using the specified conversion options.

Table - Convert Actions
Convert Action Constant
Don't convert subobjects 0
Convert plug-in and symbol subobjects 1
Convert all subobjects 2
PROCEDURE SymbolToGroup(
h :HANDLE;
convertAction :INTEGER);
def vs.SymbolToGroup(h, convertAction):
    return None

Parameters

h HANDLE Handle to the symbol
convertAction INTEGER Conversion action:

Remarks

(Orso, 2014.09.14): Upon success, this creates a group which doesn't respond to LNewObj. It actually disables LNewObj, which will return NIL, unregarded what you created before running SymbolToGroup

The handle to the group can be fetched storing a handle to the object BEFORE the symbol on drawing, then fetching the next object:

PROCEDURE Test;
VAR
	h : HANDLE;
BEGIN
	h := PrevObj(FSActLayer); { store "h" as placeholder }

	{ FSActLayer must be a symbol on drawing }
	IF (FSActLayer <> NIL) & (GetType(h) = 15) THEN BEGIN
		SymbolToGroup(FSActLayer, 2);
		
		{ fetch group starting from placeholder "h" }
		Message(GetType(NextObj(h))); { <-- NextObj(h) should return 11: is the new group }
	END ELSE
		AlrtDialog('Select a symbol on drawing!');
END;
RUN(Test);

Version

Availability: from VectorWorks 10.0