Suporte para controle de versão de objetos

O controle de versão do objeto é necessário para que os novos parâmetros no objeto atualizado sejam exibidos e usados ​​corretamente nos objetos inseridos anteriormente.

O parâmetro protegido seted é usado para dar suporte ao controle de versão do objeto. O parâmetro é gerado automaticamente ao usar o assistente de script e pode ser renomeado ou adicionado manualmente, se necessário.

Considere o script para criar um retângulo (o script não está completo, apenas métodos relevantes para o exemplo são mostrados):

	...
função ActHeader {
	NParte=0;
	Público(a,"Comprimento", b,"Largura");
	Protegido(setado);
	Mutável(a,b );
	OnDlgBeforeSelectParam = 0;
	MostrarQuandoSelPnt = 1;
	ContornoOnLine = 0;
};
	...
função OnInitialization {
	if(seted == ValorDesconhecido) {
		seted=1;
		a = 100;
		b = 100;
	};
};
	...
função OnDialog {
	UniDialog( VFLD, a,"Comprimento", b,"Largura", TVIDS,lViewType,"Todos",VIEW,"Vids");
};
	...

O método ActHeader especifica o parâmetro protegido definido e os parâmetros públicos de comprimento e largura.

No método OnInitialization para um objeto que não tem versão, adicione os parâmetros de comprimento e largura e defina a versão 1.

No método OnDialog, chamamos um diálogo com os campos de largura e comprimento.

Vamos inserir um objeto (doravante Objeto1). Ao inserir um objeto em um desenho, uma janela com parâmetros padrão será aberta.

Suporte para versão de objeto de desenho CAD 0

Suponha que precisamos adicionar espessura de linha para o retângulo.

Para fazer isso, adicionamos o parâmetro “peso”:

	...	
Público(a,"Comprimento", b,"Largura", peso, "Peso");
	...
função OnInitialization {
	if(seted == ValorDesconhecido) {
		seted=1;
		rZOorder=100;
		a = 100;
		b = 100;
		peso=1;
	};
};
	...
função OnDialog {
	UniDialog( VFLD, a,"Comprimento", b,"Largura",peso,"Peso" TVIDS,lViewType,"Todos",VIEW,"Vids");
};
	...				
					

Vamos inserir um objeto (doravante Objeto2). A caixa de diálogo exibiu corretamente a espessura da linha.

Suporte para controle de versão de objetos de software CAD 1

Vamos abrir o Objeto1 para edição e ver que o parâmetro “Peso” é exibido incorretamente.

Suporte para controle de versão de objetos de desenho CAD 2

O ponto é que o Object1 já tem a versão (seted) 1 e o peso não foi atribuído.

Vamos corrigir o método OnInitialization. Se não houver versão, aumentaremos para 2 e adicionaremos uma condição se tivermos a versão 1.

função OnInitialization {
	if(seted == ValorDesconhecido) {
		seted=2;
		rZOorder=100;
		a = 100;
		b = 100;
		peso=1;
	};
	se(setado == 1) {
		seted=2;
		peso=1;
	};
};

Agora objetos de versões mais antigas serão abertos corretamente.

Suporte para versão de objetos de desenho CAD 3