⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 电气控制仿真软件
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, vgctrl40_TLB, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Memo1: TMemo;
    Label1: TLabel;
    Button1: TButton;
    vgctrl1: Tvgctrl;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure vgctrl1MouseMove(Sender: TObject; X, Y: Double);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  Sheet1 : ISheet;
  d : IShape;
begin
  vgctrl1.Run( '' );
  vgctrl1.LoadFromBuffer( Memo1.Lines.Text );
  Sheet1 := ISheet( vgctrl1.ActiveSheet );//当前页面
  d := IShape( Sheet1.AddUnit( 'Shape', 0, 0, 0, 0 ) );//添加一个图形作为框
  d.LineColor := $FF;//红线
  d.Pattern := 0;//透明
  d.LineWidth := 3;
  d.Visible := false;//隐藏
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.vgctrl1MouseMove(Sender: TObject; X, Y: Double);
var
  Sheet1 : ISheet;
  d : IShape;
  AUnit, t : IUnit;
begin
  Sheet1 := vgctrl1.ActiveSheet;
  d := IShape( Sheet1.Units[Sheet1.UnitCount-1] );
  AUnit := Sheet1.UnitAtPoint( X, Y );
  if( AUnit <> nil )then
  begin
    t := IUnit( AUnit );
    if ( t <> d ) and ( t.Type_ = '刀闸垂直' ) then
    begin
      d.SetBounds( t.Left - 4, t.Top - 4, t.Width + 8, t.Height + 8 );
      d.Description := t.Name;
      d.Visible := true;
    end;
  end
  else
  begin
    if( X >= d.Left ) and ( X < d.Left + d.Width ) and ( Y >= d.Top ) and ( Y < d.Top + d.Height ) then
    else
      d.Visible := false;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -