procedure TMainForm.vgctrl1RButtonDown(Sender: TObject; x, y: Double);
var
ASheet : ISheet;
AUnit : IUnit;
begin
ASheet := vgctrl1.ActiveSheet;
AUnit := ASheet.UnitAtPoint( X, Y, nil );
if AUnit<>nil then Dialogs.Showmessage( '您在图形:' + AUnit.Name + ' 上按下了右键!' );
end;
procedure TMainForm.vgctrl1SheetChange(Sender: TObject; const ASheet: ISheet);
begin
if vgctrl1.ActiveSheet<>nil then
begin
vgctrl1.ActiveSheet.SetPropertyValue('cursheet', vgctrl3.ActiveSheet);
vgctrl2.ActiveSheet.SetPropertyValue('cursheet', vgctrl3.ActiveSheet);
vgctrl4.ActiveSheet.SetPropertyValue('cursheet', vgctrl3.ActiveSheet);
vgctrl5.ActiveSheet.SetPropertyValue('cursheet', vgctrl3.ActiveSheet);
end;
end;
procedure TMainForm.BizFormShow(Sender: TObject);
var
s: string;
begin
s := vgctrl1.Execute( 'return SystemParams.DefaultPath' ).ToString();
vgctrl1.Run(s+'toolbar.tbl');
vgctrl2.Run(s+'listview.tbl');
vgctrl5.Run(s+'statusbar.tbl');
vgctrl4.Run(s+'propedit.tbl');
vgctrl3.Design( '' );
vgctrl1SheetChange(Sender, vgctrl3.ActiveSheet);
//vgctrl3.LoadFromFile(s+'\..\demo\电力\电气主接线图(500KV).tbl');
vgctrl2.Execute('systemparams.GraphDriver=1');
end;
procedure TMainForm.vgctrl3SelectChange(Sender: TObject);
var
s:string;
begin
vgctrl4.ActiveSheet.SetPropertyValue('selected', vgctrl3.ActiveSheet.Selection);
vgctrl1.Execute('OnSelectChange()');
vgctrl1.Execute('btnUndo.Enable=CurSheet.Owner.CanUndo()');
vgctrl1.Execute('btnRedo.Enable=CurSheet.Owner.CanRedo()');
//s := 'SetMsg( 1,"["+str(' + SysUtils.FloatToStr(vgctrl3.ActiveSheet.Selection.Left ) + ',3)+","+ ';
//s := s+'Str(' + SysUtils.FloatToStr(vgctrl3.ActiveSheet.Selection.Top) + ',3) + "]-[" +';
//s := s+'str(' + SysUtils.FloatToStr(vgctrl3.ActiveSheet.Selection.Width) + ',3)+","+ ';
//s := s+'Str(' + SysUtils.FloatToStr(vgctrl3.ActiveSheet.Selection.Height) + ',3) + "]" )';
//vgctrl4.Execute(s);
end;
procedure TMainForm.BizFormClose(Sender: TObject; var Action: TCloseAction);
begin
vgctrl2.Execute('systemparams.GraphDriver=0');
end;
procedure TMainForm.vgctrl3MouseMove(Sender: TObject; x, y: Double);
begin
vgctrl5.Execute('SetMsg( 2,str(' + SysUtils.FloatToStr(x) + ',3)+","+Str(' + SysUtils.FloatToStr(y) + ',3) );DisplayUnit()');
end;
这是测试代码。 |