📄 unit2.pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Variants, Graphics, Controls, Forms,
Dialogs, StdCtrls, vgctrl40_TLB;
type
TForm2 = class(TForm)
ListBox1: TListBox;
Label1: TLabel;
ListBox2: TListBox;
Label2: TLabel;
ListBox3: TListBox;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
procedure ListBox1Click(Sender: TObject);
procedure ListBox2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListBox3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
vgctrl : Tvgctrl;
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.ListBox1Click(Sender: TObject);
var
i, n : Integer;
IsElliment : Boolean;
tp : String;
Sheet1 : ISheet;
begin
if( ListBox1.ItemIndex > -1 )then
begin
Sheet1 := ISheet( vgctrl.ActiveSheet );
n := Sheet1.UnitCount;
ListBox2.Items.Clear();
for i := 0 to n - 1 do
begin
IsElliment := IUnit( Sheet1.Units[i] ).ClassId = 99;
if IsElliment then
begin
tp := IElliment( Sheet1.Units[i] ).Type_;
if CompareText( tp, ListBox1.Items.Strings[ListBox1.ItemIndex] ) = 0 then
begin
ListBox2.Items.Add( IUnit( Sheet1.Units[i] ).Name );
end;
end;
end;
end;
end;
procedure TForm2.ListBox2Click(Sender: TObject);
var
i, n : Integer;
IsElliment : Boolean;
dn, tp : String;
begin
if( ListBox2.ItemIndex > -1 )then
begin
dn := ListBox2.Items.Strings[ListBox2.ItemIndex];
ListBox3.Items.Clear();
tp := vgctrl.Calculate( dn + '.Type' );
//为了实现通用,您在自己编写系统的时候,建立一个<设备---设备属性>对应的数据库即可。
ListBox3.Items.Add( 'Id = ' + IntToStr( vgctrl.Calculate( dn + '.Id' ) ) );
if( tp = '断路器A' ) or ( tp = '断路器B' ) or ( tp = '刀闸B' )then
begin
ListBox3.Items.Add( 'Caption = ' + vgctrl.Calculate( dn + '.Caption' ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
ListBox3.Items.Add( 'YXNum = ' + vgctrl.Calculate( dn + '.YXNum' ) );
ListBox3.Items.Add( 'YXValue = ' + IntToStr( vgctrl.Calculate( dn + '.YXValue' ) ) );
end
else if( tp = '变电所标签' )then
begin
ListBox3.Items.Add( 'Habitus = ' + vgctrl.Calculate( dn + '.Habitus' ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
ListBox3.Items.Add( 'URL = ' + vgctrl.Calculate( dn + '.URL' ) );
ListBox3.Items.Add( 'VolRate = ' + IntToStr( vgctrl.Calculate( dn + '.VolRate' ) ) );
if vgctrl.Calculate( dn + '.Wink' ) then
ListBox3.Items.Add( 'Wink = True' )
else
ListBox3.Items.Add( 'Wink = False' );
end
else if( tp = '三绕组A' ) or ( tp = '双绕组' )then
begin
ListBox3.Items.Add( 'Caption = ' + vgctrl.Calculate( dn + '.Caption' ) );
ListBox3.Items.Add( 'DownVolRate = ' + IntToStr( vgctrl.Calculate( dn + '.DownVolRate' ) ) );
ListBox3.Items.Add( 'Habitus = ' + vgctrl.Calculate( dn + '.Habitus' ) );
if( tp = '三绕组A' )then
ListBox3.Items.Add( 'MidstVolRate = ' + IntToStr( vgctrl.Calculate( dn + '.MidstVolRate' ) ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
ListBox3.Items.Add( 'UpVolRate = ' + IntToStr( vgctrl.Calculate( dn + '.UpVolRate' ) ) );
end
else if( tp = '电容器A' )then
begin
ListBox3.Items.Add( 'Caption = ' + vgctrl.Calculate( dn + '.Caption' ) );
ListBox3.Items.Add( 'Habitus = ' + vgctrl.Calculate( dn + '.Habitus' ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
end
else if( tp = '档位标签' ) or ( tp = '数据标签' )then
begin
if vgctrl.Calculate( dn + '.CheckLine' ) then
ListBox3.Items.Add( 'CheckLine = true' )
else
ListBox3.Items.Add( 'CheckLine = false' );
ListBox3.Items.Add( 'DownLine = ' + IntToStr( vgctrl.Calculate( dn + '.DownLine' ) ) );
ListBox3.Items.Add( 'Flag = ' + IntToStr( vgctrl.Calculate( dn + '.Flag' ) ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
ListBox3.Items.Add( 'UpLine = ' + IntToStr( vgctrl.Calculate( dn + '.UpLine' ) ) );
if( tp = '档位标签' )then
begin
if vgctrl.Calculate( dn + '.Wink' ) then
ListBox3.Items.Add( 'Wink = True' )
else
ListBox3.Items.Add( 'Wink = False' );
end;
ListBox3.Items.Add( 'YCNum = ' + vgctrl.Calculate( dn + '.YCNum' ) );
end
else if( tp = '横母线' ) or ( tp = '竖母线' ) then
begin
ListBox3.Items.Add( 'Caption = ' + vgctrl.Calculate( dn + '.Caption' ) );
ListBox3.Items.Add( 'SiteNo = ' + IntToStr( vgctrl.Calculate( dn + '.SiteNo' ) ) );
ListBox3.Items.Add( 'VolRate = ' + IntToStr( vgctrl.Calculate( dn + '.VolRate' ) ) );
end;
end;
Button2.Enabled := false;
end;
procedure TForm2.FormShow(Sender: TObject);
var
i, n : Integer;
u : IUnit;
tp : String;
Sheet1 : ISheet;
begin
Sheet1 := ISheet( vgctrl.ActiveSheet );
n := Sheet1.UnitCount;
for i := 0 to n - 1 do
begin
u := IUnit( Sheet1.Units[i] );
if u.ClassId = 99 then
begin
tp := IElliment( u ).Type_;
if ListBox1.Items.IndexOf( tp ) = -1 then
begin
ListBox1.Items.Add( tp );
end;
end;
end;
end;
procedure TForm2.ListBox3Click(Sender: TObject);
begin
Button2.Enabled := ListBox3.ItemIndex > -1;
end;
procedure TForm2.Button2Click(Sender: TObject);
var
dn, tp : String;
v : OLEVARIANT;
p : Integer;
d : IUnit;
Sheet1 : ISheet;
begin
if( ListBox2.ItemIndex = -1 )then
Exit;
if( ListBox3.ItemIndex = -1 )then
Exit;
dn := ListBox2.Items.Strings[ListBox2.ItemIndex];
tp := ListBox3.Items.Strings[ListBox3.ItemIndex];
p := Pos( '=', tp );
tp := Trim( Copy( tp, 1, p - 1 ) );
Sheet1 := ISheet( vgctrl.ActiveSheet );
d := IUnit( Sheet1.UnitByName( dn ) );
v := d.GetPropertyValue( tp );
if( VarType( v ) = varInteger )then
d.SetPropertyValue( tp, Random( 200 ) )
else if( VarType( v ) = varBoolean )then
d.SetPropertyValue( tp, True )
else if( VarType( v ) = varOleStr )then
d.SetPropertyValue( tp, 'SSSSSSSS' );
p := ListBox3.ItemIndex;
ListBox2.OnClick( ListBox2 );
ListBox3.ItemIndex := p;
ListBox3.SetFocus;
Button2.Enabled := true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -