过滤器总是必须由层组成的。过滤器的定义需要确定每个层分别以何种方式来表示和隐藏。
另外,也可以通过 EbsScript 函数直接定义每个对象的可见性。在这种情况下就不需要层。
在过滤器定义中,需要输入要激活的 EbsScript 函数的名称。这样,甚至可以定义多个具有不同 EbsScript 函数的过滤器。EbsScript 函数必须包含在一个定义为标准单元的 EbsScript 中。
EbsScript 函数的语法要有如下结构:
函数 函数 名称(obj:ebsobject): objectdisplay;
例子:
过滤器将所有组件变暗显示,但激活的测量值以彩色显示:
unit StandardUnit;
interface
function Comp46UsedInSimulation(obj:ebsobject):objectdisplay;
implementation
function Comp46UsedInSimulation(obj:ebsobject):objectdisplay;
var
disp:objectdisplay;
comp46:ebscomp46;
begin
comp46 := ebscomp46(obj);
disp.state := drawModeGrayed;
disp.patternBitmap := patternBitmapNONE;
if not isnull(comp46) then begin
if (comp46.FFU = 1 AND comp46.FVAL = 2) then begin
disp.state := drawModeColor;
disp.patternBitmap := patternBitmapNONE;
end;
end;
Comp46UsedInSimulation := disp;
end;
end.