|
22.4.02
Alexandre Villares:
{*******}
Procedure ContadorDeObjetos; {*******} VAR Resultado : INTEGER; objectName,objectClass : STRING; ALHand : HANDLE; objectHand, recordHand, wallHand: HANDLE; {-------} Procedure ContaObjeto (H:HANDLE); {-------} VAR Flag1, Flag2 : BOOLEAN; BEGIN Flag1:=TRUE; IF pNestaCamada AND (GetLayer(H)<>GetLayer(objectHand)) THEN Flag1:=FALSE; Flag2:=TRUE; IF pDestaClasse AND (GetClass(H)<>objectClass) THEN Flag2:=FALSE; IF Flag1 AND Flag2 THEN Resultado:=Resultado+1; {--------} END; {--------} BEGIN ALHand:=ActLayer; {Guarda Layer ativa} IF GetCustomObjectInfo(objectName, objectHand, recordHand, wallHand) THEN BEGIN IF GetLayer(objectHand)<>NIL THEN BEGIN {Se descobrir em que Layer está o objeto: } Layer(GetLName(GetLayer(objectHand))); {Torne ativa a Layer deste objeto } END; END; Symbol(pNomeDoSimbolo,0,0,0); {desenha exemplar do símbolo a ser contado} Resultado:=0; {inicializa variável de contagem} ForEachObject ( ContaObjeto, ((S= pNomeDoSimbolo) & (NOT (R IN [objectName]))) ); {testa com a função ContaObjeto (à qual é passado um "handle") cada objeto do desenho satisfazendo os critérios S e R } BeginText; Concat(Resultado) EndText; Layer(GetLName(ALHAnd)); {*******} END; {*******} Run(ContadorDeObjetos);
Comments:
Postar um comentário
|
||
|
|