Roteiro do detalhe:
SVersão = 2;
Descrição do Objeto = @ MCS_STRING6;
função ActHeader {
NParte = 1;
Público (
// Opções - comprimento e largura externa da placa
L,COMPRIMENTO,
L, LARGURA,
// Projetar placas de carga e peso
P, @MCS_STRING9,
massa,MASSA
);
Protegido (seted, obozn, H);
Mutável ();
OnDlgBeforeSelectParam = 1;
MostrarQuandoSelPnt = 1;
ContornoOnLine = 1;
};
função OnInitialization {
LoadInCache (obozn, L, W, H, massa, P);
se (seted == ValorDesconhecido) {
definido = 1;
rZOorder = 100;
// Define os valores iniciais dos parâmetros e execução
SelectInCache (" kFirst ", " L ", " ~ ", 2700, " W ", " ~ ", 1190);
strDesignName = " Implementação 1 ";
};
};
função SetGripPoint {
NGrip = 2;
Duas alças // - no ponto de inserção e com a extremidade oposta
// Painel
pntGrip0 = pntOrigin;
pntGrip1 = pntOrigin + L * vecDirection;
};
função OnMoveGripPoint {
// Ao editar, os manipuladores apresentam o seguinte comportamento:
// Mova o objeto inteiro ao arrastar sobre ele
// Primeiro identificador. E estique o comprimento e altere o vetor
// Direção ao esticar uma segunda alça
se (NMovingGrip == 1) {
// Variáveis intermediárias para definir a geometria
rW = W;
rP = P;
// Comprimento relativo
rL = vecLen (pntGrip0 - pntGrip1) / rScl;
// A nova direção do vetor é inserida
vecDirection = pntGrip1 - pntGrip0;
CarregarEmCache (P, W, L);
// Selecione a nova placa de configurações.
SelectInCache ("kFirst", "P", "~", rP, "W", " =", rW, "L", "~", rL);
} Outro {
// Se você editar o identificador para mover o ponto 0
// Inserir um objeto
pntOrigin = pntGrip0;
};
};
função OnMakeParameters {
// Placas de classificação
strTheName = " Painel NV ";
strTheType = " Plita ";
strTheSubType = " Plita ";
};
função OnDialog {// inserir tipo de diálogo
LoadInCache (obozn, L, W, H, massa, P);
UniDialog (
// Os campos de controle da tabela
DBFLD, L, W, P,
// O campo de referência da tabela
DBINF, obozn, H, massa,
// Tipos - frente, topo, esquerda
TVIDS, lViewType, " F ", " T ", " L ",
VER, "Vídeos");
};
função OnDialogChanged {
ShowDesign (0, " Visualizar ");
};
// Alterações de parâmetros
função OnChangeParameters {
// Apenas ao controlar mudanças de parâmetros
// Selecione de uma tabela aqueles que correspondem ao novo
// Valores
se (novo.L! = L || novo.W! = W)
{
CarregarEmCache (E, W);
SelectInCache (" kFirst ", " L ", " ~ ", novo.L, " W ", " ~ ", novo.W);
}
Manipulado = OBJ_HANDLED;
};
função OnSelectParam {
// Função de seleção dinâmica de parâmetros
rW = W;
// Para o tipo VTOP não selecione dinamicamente
se (lViewType == VTOP) {
QuebrarTudo = 1;
} Outro {
// Para outras espécies
// Variável selecionada rL - como
// Abscissa a posição relativa do cursor.
rL = abs (vecCoord: x);
// Valores selecionados da tabela com a mesma largura,
// Mas com um novo valor para a placa de comprimento de onda.
SelectInCashe (" kFirst ", " W ", " = ", rW, " L ", " ~ ", rL);
};
};
função BeforeConnect {
RedefinirÚltimaConstraint();
}
função OnConnect
{
// Instalação automática de dependências
// Define apenas dependência paramétrica.
// Entre as placas ao longo do comprimento e da largura.
se (rParte == 0)
{
if (obj.strTheType == " Plita ")
{
SetParamConstraint (L, obj, EXPR, " obj.L ");
SetParamConstraint (W, obj, EXPR, " obj.W ");
NoVectorSelect = 1;
definido = 1;
};
};
}
// A placa de identificação é formada com base na caixa da mesa
// Obozn
strPartName = obozn;
