图形编辑详细功能的实现及部分关键代码

图形编辑详细功能及部分关键代码

4.3.1 图形编辑详细功能及部分关键代码 

1、 生成接线图

图形编辑详细功能的实现及部分关键代码

画图工具栏如下定义:

图形编辑详细功能的实现及部分关键代码

0-线路,1-变压器,2-变压器(横向),3-电杆,4-标记,5-开关,6-刀闸,7-避雷器,8-电抗器,9-电压互感器,10-电流互感器,11-电容,12-接地,13-熔断器,14-电表,15-曲线

16-汉字,17-字体。

注意:图形名称一定要输入。可自行定义图宽,图高。

 

画线路应先选中画图工具栏线路按钮,在画图板中选中起始位置(按鼠标左键不放)拖动到目标位置即可。其它图形选中画图工具栏中相应按钮直接在画图板中选中起始位置释放鼠标左键即可。

图形均可用鼠标拖动。

删除图形按鼠标右键。

 

关联设备:

按鼠标右键出现如下窗口。

 图形编辑详细功能的实现及部分关键代码

点击关联设备后系统自动根据图形类型调出变压器,线路等设备信息窗口。

图形编辑详细功能的实现及部分关键代码

选中你要关联的设备然后点击“关联”按钮即可。

图形编辑详细功能的实现及部分关键代码

流程图:

图形编辑详细功能的实现及部分关键代码
图形编辑详细功能的实现及部分关键代码
图形编辑详细功能的实现及部分关键代码
代码示例:

 unitscxljgt_form10;

 

interface

 

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,

 Dialogs, ImgList, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Menus, Grids,

 DBGrids,printers, DBTables;

 

type

 TForm10 = class(TForm)

   ToolBar1: TToolBar;

   ToolButton1: TToolButton;

    ToolButton2:TToolButton;

   ToolButton3: TToolButton;

   ToolButton4: TToolButton;

   ToolButton5: TToolButton;

   ToolButton6: TToolButton;

   ToolButton7: TToolButton;

   ToolButton8: TToolButton;

   ToolButton9: TToolButton;

   ToolButton10: TToolButton;

   ToolButton11: TToolButton;

   ToolButton12: TToolButton;

   ToolButton13: TToolButton;

   ToolButton14: TToolButton;

   ToolButton15: TToolButton;

   ToolButton16: TToolButton;

   ToolButton17: TToolButton;

   ImageList1: TImageList;

    ScrollBox1: TScrollBox;

   Image1: TImage;

   ComboBox1: TComboBox;

   ToolButton19: TToolButton;

   ComboBox2: TComboBox;

   Label1: TLabel;

   Label2: TLabel;

   Edit1: TEdit;

   Label3: TLabel;

   UpDown1: TUpDown;

   MainMenu1: TMainMenu;

   F1: TMenuItem;

   O1: TMenuItem;

   S1: TMenuItem;

   L1: TMenuItem;

   E1: TMenuItem;

   ImageList2: TImageList;

   N1: TMenuItem;

   Label4: TLabel;

   Label5: TLabel;

   P1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   Button1: TButton;

   ToolButton20: TToolButton;

   FontDialog1: TFontDialog;

   ToolBar2: TToolBar;

   ToolButton21: TToolButton;

   ToolButton22: TToolButton;

   ToolButton23: TToolButton;

   ToolButton24: TToolButton;

   ToolButton25: TToolButton;

   ToolButton27: TToolButton;

   ToolButton28: TToolButton;

   ToolButton29: TToolButton;

   ToolButton30: TToolButton;

   ToolButton31: TToolButton;

   P2: TMenuItem;

   BatchMove1: TBatchMove;

   ToolButton18: TToolButton;

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure ToolButton2Click(Sender: TObject);

   procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

     Y: Integer);

   procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;

     Shift: TShiftState; X, Y: Integer);

   procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;

     Shift: TShiftState; X, Y: Integer);

   procedure ToolButton1Click(Sender: TObject);

   procedure ToolButton3Click(Sender: TObject);

   procedure ComboBox1Change(Sender: TObject);

   procedure ComboBox2Change(Sender: TObject);

   procedure Edit1Change(Sender: TObject);

   procedure ToolButton4Click(Sender: TObject);

   procedure ToolButton6Click(Sender: TObject);

   procedure ToolButton7Click(Sender: TObject);

   procedure ToolButton8Click(Sender: TObject);

   procedure ToolButton16Click(Sender: TObject);

   procedure N1Click(Sender: TObject);

   procedure ToolButton5Click(Sender: TObject);

   procedure ToolButton9Click(Sender: TObject);

   procedure ToolButton10Click(Sender: TObject);

   procedure ToolButton11Click(Sender: TObject);

   procedure ToolButton12Click(Sender: TObject);

   procedure ToolButton13Click(Sender: TObject);

   procedure ToolButton14Click(Sender: TObject);

   procedure ToolButton15Click(Sender: TObject);

   procedure ToolButton17Click(Sender: TObject);

   procedure ToolButton20Click(Sender: TObject);

   procedure ToolButton21Click(Sender: TObject);

   procedure ToolButton30Click(Sender: TObject);

   procedure ToolButton28Click(Sender: TObject);

   procedure P2Click(Sender: TObject);

   procedure ToolButton23Click(Sender: TObject);

   procedure S1Click(Sender: TObject);

   procedure ToolButton22Click(Sender: TObject);

   procedure O1Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

   procedure ToolButton27Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure ToolButton18Click(Sender: TObject);

 private

    {Private declarations }

 public

    {Public declarations }

  end;

 

var

 Form10: TForm10;

   ix:integer;

   iy:integer;

 

   sqx:integer;  //存入数据库中坐标数据

   sqy:integer;

   szx:integer;

   szy:integer;

   hzxx:string; //汉字信息

   txmc:string; //图型名称

   hzxxys:integer; //文本信息颜色

   hzxxsz:integer; //文本信息字体大小

 

   xzqx:integer; //选中图型坐标

   xzqy:integer;

   xzzx:integer;

   xzzy:integer;

   xzhzxx:string; //选中文本信息

   xzhzxxys:integer; //选中文本信息颜色

   xzhzxxsz:integer; //选中文本信息字体大小

 

   xztxlx:integer; //选中图型类型

   xzys:integer; //选中颜色

   xzms:integer;  //选中模式

   xzkd:integer; //选中宽度

 

 

   Font1:TFont; //字体

   sfdjzt:integer; //是否已经选中字体

   

 

 

   Drawing:bool; //是否开始画图

   Origin:TPoint;

   MovePt:TPoint; //光标起点位置,当前位置

 

   xzdwy:TPoint; //选中点位移量

   wyqs1:TPoint;

   wyzz1:TPoint;

 

   wyqs2:TPoint;

   wyzz2:TPoint;

   

 

 

   DrawingTool:integer ; //画?图型

   CurrentFile:AnsiString;

   functionDrawShape(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;    //定义画图函数

   functionTDDrawShape(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;    //定义拖动画图函数

   function Tdxsj(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;//写实时数

   implementation

 

uses sztpdx_form9, ryjbxx_datamodule1,wbsr_form8, dktx_form11,

 zdsc_form12 , txgl_form18, main_form1, sssj_datamodule3;

functionDrawShape(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;

   begin

 

     Form10.Image1.Canvas.Pen.Mode:=AMode;

     case DrawingTool of

         1:   //直线

         begin

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.LineTo(BottomRight.x,BottomRight.y);

         end;

          2: //变压器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X-12,TopLeft.y,TopLeft.X+12,TopLeft.y+24);

         Form10.Image1.Canvas.Ellipse(TopLeft.X-12,TopLeft.y+12,TopLeft.X+12,TopLeft.y+36);

         end;

         3: //电杆

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X-3,TopLeft.y,TopLeft.X+3,TopLeft.y+6);

         end;

         4: //标记

         begin

 

         Form10.Image1.Canvas.Ellipse(TopLeft.X-6,TopLeft.y,TopLeft.X+6,TopLeft.y+12);

 

         end;

         5: //开关

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X-6,TopLeft.y,TopLeft.X+6,TopLeft.y+24);

         end;

         6: //刀闸

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-10,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+10,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-10,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+16);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+16);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+20);

         end;

         7: //避雷器

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X-6,TopLeft.y+4,TopLeft.X+6,TopLeft.y+28);

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+12);

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+28);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+34);

         end;

         8: //电抗器

         begin

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.Arc(TopLeft.X-10,TopLeft.Y,TopLeft.X+10,TopLeft.Y+20,TopLeft.X,TopLeft.y+20,TopLeft.X-10,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y-5);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X-10,TopLeft.y+10);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+20);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+25);

 

         end;

          9: //电压互感器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X-8,TopLeft.y,TopLeft.X+8,TopLeft.y+16);

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y-4);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+24);

         end;

         10:  //电流互感器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X-8,TopLeft.y,TopLeft.X+8,TopLeft.y+16);

         Form10.Image1.Canvas.Ellipse(TopLeft.X-8,TopLeft.y+8,TopLeft.X+8,TopLeft.y+24);

         end;

         11:   //电容

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-6,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-6,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+10);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+16);

         end;

         12:   //接地线

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-8,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+8,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-5,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X+5,TopLeft.y+10);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-2,TopLeft.y+14);

          Form10.Image1.Canvas.LineTo(TopLeft.X+2,TopLeft.y+14);

         end;

          13: //熔断器

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X-6,TopLeft.y+4,TopLeft.X+6,TopLeft.y+28);

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+34);

          end;

          14: //电表

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X-6,TopLeft.y+4,TopLeft.X+6,TopLeft.y+28);

         Form10.Image1.Canvas.MoveTo(TopLeft.X-6,TopLeft.y+22);

         Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+22);

         end;

         16: //汉字

         begin

           if Font1.Color=clBlack then

           begin

              hzxxys:=0 //选中文本信息颜色

           end;

           if Font1.Color=clRed then

           begin

              hzxxys:=1 //选中文本信息颜色

           end;

           if Font1.Color=clBlue then

           begin

              hzxxys:=2 //选中文本信息颜色

           end;

           if Font1.Color=clGreen then

           begin

              hzxxys:=3 //选中文本信息颜色

           end;

           if Font1.Color=clWhite then

           begin

              hzxxys:=4 //选中文本信息颜色

           end;

              hzxxsz:=Font1.Size; //选中文本信息字体大小

             Form10.Image1.Canvas.Font.Size:=Font1.Size;

             Form10.Image1.Canvas.Font.Color:=Font1.Color;

             Form10.Image1.Canvas.TextOut(TopLeft.X,TopLeft.y,hzxx);

         end;

     end;

   end;

 

functionTDDrawShape(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;

   begin

      Form10.Image1.Canvas.Pen.Mode:=AMode;

      case xztxlx of   //选中图形类型

         1:   //直线

         begin

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.LineTo(BottomRight.x,BottomRight.y);

         end;

         2:  //变压器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.y);

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y+12,BottomRight.X,BottomRight.y+12);

         end;

         3: //电杆

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.y);

         end;

         4: //标记

         begin

         

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.y);

         end;

         5: //开关

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.y);

         end;

          6: //刀闸

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

           Form10.Image1.Canvas.MoveTo(TopLeft.X-10,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+10,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-10,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+16);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+16);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+20);

         end;

         7: //避雷器

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.Y);

         Form10.Image1.Canvas.MoveTo(TopLeft.X+6,TopLeft.y-4);

         Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+8);

          Form10.Image1.Canvas.MoveTo(TopLeft.X+6,TopLeft.y+24);

         Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+30);

         end;

          8: //电抗器

         begin

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

         Form10.Image1.Canvas.Arc(TopLeft.X,TopLeft.Y,TopLeft.X+20,TopLeft.Y+20,TopLeft.X+10,TopLeft.y+20,TopLeft.X,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X+10,TopLeft.y-5);

         Form10.Image1.Canvas.LineTo(TopLeft.X+10,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+10);

         Form10.Image1.Canvas.LineTo(TopLeft.X+10,TopLeft.y+10);

 

         Form10.Image1.Canvas.MoveTo(TopLeft.X+10,TopLeft.y+20);

         Form10.Image1.Canvas.LineTo(TopLeft.X+10,TopLeft.y+25);

 

          end;

         9:  //电压互感器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y,TopLeft.X+16,TopLeft.y+16);

         Form10.Image1.Canvas.MoveTo(TopLeft.X+8,TopLeft.y-4);

         Form10.Image1.Canvas.LineTo(TopLeft.X+8,TopLeft.y+24);

         end;

         10:  //电流互感器

         begin

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y,BottomRight.X,BottomRight.y);

         Form10.Image1.Canvas.Ellipse(TopLeft.X,TopLeft.y+8,BottomRight.X,BottomRight.y+8);

         end;

         11:   //电容

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-6,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-6,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+10);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+16);

         end;

         12:   //接地线

         begin

          Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y);

          Form10.Image1.Canvas.LineTo(TopLeft.X,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-8,TopLeft.y+6);

          Form10.Image1.Canvas.LineTo(TopLeft.X+8,TopLeft.y+6);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-5,TopLeft.y+10);

          Form10.Image1.Canvas.LineTo(TopLeft.X+5,TopLeft.y+10);

 

          Form10.Image1.Canvas.MoveTo(TopLeft.X-2,TopLeft.y+14);

          Form10.Image1.Canvas.LineTo(TopLeft.X+2,TopLeft.y+14);

         end;

          13: //熔断器

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X,TopLeft.y+4,TopLeft.X+12,TopLeft.y+28);

         Form10.Image1.Canvas.MoveTo(TopLeft.X+6,TopLeft.y);

         Form10.Image1.Canvas.LineTo(TopLeft.X+6,TopLeft.y+34);

          end;

         14: //电表

         begin

         Form10.Image1.Canvas.rectangle(TopLeft.X,TopLeft.y+4,TopLeft.X+12,TopLeft.y+28);

         Form10.Image1.Canvas.MoveTo(TopLeft.X,TopLeft.y+22);

         Form10.Image1.Canvas.LineTo(TopLeft.X+12,TopLeft.y+22);

         end;

         16: //汉字

         begin

           Form10.Image1.Canvas.Font.Charset:=ANSI_CHARSET;

           Form10.Image1.Canvas.Font.Size:=xzhzxxsz;

           Form10.Image1.Canvas.Font.Color:=clBlack;

           if xzhzxxys=0 then

           begin

           Form10.Image1.Canvas.Font.Color:=clBlack; //选中文本信息颜色

           end;

           if xzhzxxys=1 then

           begin

           Form10.Image1.Canvas.Font.Color:=clRed //选中文本信息颜色

           end;

           if xzhzxxys=2 then

           begin

           Form10.Image1.Canvas.Font.Color:=clBlue //选中文本信息颜色

           end;

           if xzhzxxys=3 then

           begin

           Form10.Image1.Canvas.Font.Color:=clGreen //选中文本信息颜色

           end;

           if xzhzxxys=4 then

           begin

           Form10.Image1.Canvas.Font.Color:=clWhite //选中文本信息颜色

           end;

           Form10.Image1.Canvas.TextOut(TopLeft.X,TopLeft.y,xzhzxx);

         end;

      end;

   end;

function Tdxsj(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode):integer;//写实时数据

var sbmc:string;   //设备名称

var axdy:Double;    //A相电压

var bxdy:Double;

var cxdy:Double;

var axdl:Double;   //A相电流

var bxdl:Double;

var cxdl:Double;

var zyggl:Double; //总有功功率

begin

    if (length(sbbh)>=1) and (xztxlx=2) then

      begin

      Form10.Image1.Canvas.Pen.Mode:=AMode;

      DataModule3.fhclssjl_Query1.Close;

      DataModule3.fhclssjl_Query1.Params.ParamByName('sbbh').AsString:=sbbh;

      DataModule3.fhclssjl_Query1.Open;

      if  DataModule3.fhclssjl_Query1.RecordCount>0then

      begin

      sbmc:=DataModule3.fhclssjl_Query1.FieldByName('sbbh_lookup').value;   //设备名称

      axdy:=DataModule3.fhclssjl_Query1.FieldByName('axdy').value;    //A相电压

      bxdy:=DataModule3.fhclssjl_Query1.FieldByName('bxdy').value;

      cxdy:=DataModule3.fhclssjl_Query1.FieldByName('cxdy').value;

      axdl:=DataModule3.fhclssjl_Query1.FieldByName('axdl').value;;   //A相电流

      bxdl:=DataModule3.fhclssjl_Query1.FieldByName('bxdl').value;;

      cxdl:=DataModule3.fhclssjl_Query1.FieldByName('cxdl').value;;

      zyggl:=DataModule3.fhclssjl_Query1.FieldByName('zyggl').value; //总有功功率

      end;

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y-42,'Ua:'+floattostr(axdy));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y-28,'Ub:'+floattostr(bxdy));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y-14,'Uc:'+floattostr(cxdy));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y,'I  a:'+floattostr(axdl));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y+14,'I  b:'+floattostr(bxdl));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y+28,'I  c:'+floattostr(cxdl));

      Form10.Image1.Canvas.TextOut(TopLeft.X+30,TopLeft.y+42,'P  :'+floattostr(zyggl));

 

 

 

 

      end;

end;

{$R *.dfm}

 

procedure TForm10.FormClose(Sender:TObject; var Action: TCloseAction);

begin

//action:=cafree;

end;

 

procedure TForm10.ToolButton2Click(Sender:TObject);

begin

DrawingTool:=1; //直线

end;

 

procedure TForm10.Image1MouseMove(Sender:TObject; Shift: TShiftState; X,

  Y:Integer);

begin

  if(Drawing) then

   begin

     if DrawingTool<>0 then   //非选中状态

     begin

     DrawShape(Origin,MovePt,pmNotXor);

     MovePt:=Point(X,Y);

     DrawShape(Origin,MovePt,pmNotxor);

     end;

     if drawingTool=0 then  //选中拖动状态

     begin

         if(DataModule1.txb_Query1.RecordCount=1) and(DataModule1.txb_Query1.FieldByName('qx').Value>0) then

         begin

         //清除屏幕上原有图型

         Form10.Image1.Canvas.pen.Color:=TColor(RGB(125,150,205));

         TDDrawShape(wyqs1,wyzz1,pmcopy );

          //生成拖动图型

         Form10.Image1.Canvas.pen.Color:=clblack;

         Form10.Image1.Canvas.Pen.Style:=psDot;

         TDDrawShape(wyqs2,wyzz2,pmNotXor);

 

         MovePt:=Point(x,y);

         xzdwy.X:=MovePt.X-Origin.X;

         xzdwy.Y:=Movept.Y-Origin.Y;

         wyqs2.X:=xzqx+xzdwy.X;

         wyqs2.Y:=xzqy+xzdwy.Y;

         wyzz2.X:=xzzx+xzdwy.X;

         wyzz2.Y:=xzzy+xzdwy.Y;

    

         TDDrawShape(wyqs2,wyzz2,pmNotXor);

         end;

 

 

 

     end;

   end;

 

   label4.Caption :=' 当前位置:'+inttostr(x)+','+inttostr(y);

 

end;

 

procedure TForm10.Image1MouseDown(Sender:TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

begin

  ifButton=mbLeft then

 begin //鼠标左键按下

 hzxx:='1';

 sbbh:='0';

 Drawing:=True;

 Form10.Image1.Canvas.MoveTo(X,Y);

 Origin:=Point(X,Y);

 MovePt:=Origin;

 label5.Caption :=' 起始位置:'+inttostr(x)+','+inttostr(y);

 

 if  DrawingTool=0 then

 begin

 DataModule1.txb_Query1.Close;

 DataModule1.txb_Query1.Params.ParamByName('qx').Asinteger :=X+2;

 DataModule1.txb_Query1.Params.ParamByName('zx').Asinteger :=X-2;

 DataModule1.txb_Query1.Params.ParamByName('qy').Asinteger :=Y+2;

 DataModule1.txb_Query1.Params.ParamByName('zy').Asinteger :=Y-2;

 DataModule1.txb_Query1.Params.ParamByName('ryid').Asinteger:=g_df_userid;

 DataModule1.txb_Query1.open;

  if(DataModule1.txb_Query1.RecordCount=1) and(DataModule1.txb_Query1.FieldByName('qx').Value>0) then

 begin

     //选中的作上标记

 

     Form10.Image1.Canvas.Pen.Color:=Clblack;

     TDDrawShape(wyqs2,wyzz2,pmCopy);

     //取选中图型信息

 

     xzqx:=DataModule1.txb_Query1.FieldByName('qx').value; //选中图型坐标

     xzqy:=DataModule1.txb_Query1.FieldByName('qy').value;

     xzzx:=DataModule1.txb_Query1.FieldByName('zx').value;

     xzzy:=DataModule1.txb_Query1.FieldByName('zy').value;

     xzhzxx:=DataModule1.txb_Query1.FieldByName('wbxx').value; //选中文本信息

     xztxlx:=DataModule1.txb_Query1.FieldByName('txlx').value; //选中图型类型

     xzys:=DataModule1.txb_Query1.FieldByName('ys').value;  //选中模式

     xzms:=DataModule1.txb_Query1.FieldByName('ms').value;  //选中模式

     xzkd:=DataModule1.txb_Query1.FieldByName('kd').value; //选中宽度

     xzhzxxys:=DataModule1.txb_Query1.FieldByName('wbxxys').value; //选中文本信息颜色

     xzhzxxsz:=DataModule1.txb_Query1.FieldByName('wbxxsz').value; //选中文本信息字体大小

     sbbh:=DataModule1.txb_Query1.FieldByName('sbbh').value;   //选中设备编号

 

     wyqs1.X:=xzqx;

     wyqs1.Y:=xzqy;

     wyzz1.X:=xzzx;

     wyzz1.Y:=xzzy;

 

     wyqs2.X:=xzqx;

     wyqs2.Y:=xzqy;

     wyzz2.X:=xzzx;

     wyzz2.Y:=xzzy;

 

     Form10.Image1.Canvas.Pen.Color:=Clred;     //选中的作上标记

     TDDrawShape(wyqs2,wyzz2,pmCopy);

      //选中的作上标记

     //MessageDlg('您选中的是'+inttostr(DataModule1.txb_Query1.FieldByName('txlx').Value),

    // mtInformation,

    // [mbCancel],

     //0);

 end;

 end;

 end; //鼠标左键按下

if Button=mbRight then

 begin //鼠标右键按下

  Form10.Image1.Canvas.MoveTo(X,Y);

  Origin:=Point(X,Y);

  MovePt:=Origin;

  label5.Caption :=' 起始位置:'+inttostr(x)+','+inttostr(y);

  if  DrawingTool=0 then

   begin

   DataModule1.txb_Query1.Close;

   DataModule1.txb_Query1.Params.ParamByName('qx').Asinteger :=X+2;

   DataModule1.txb_Query1.Params.ParamByName('zx').Asinteger :=X-2;

   DataModule1.txb_Query1.Params.ParamByName('qy').Asinteger :=Y+2;

   DataModule1.txb_Query1.Params.ParamByName('zy').Asinteger :=Y-2;

   DataModule1.txb_Query1.Params.ParamByName('ryid').Asinteger:=g_df_userid;

   DataModule1.txb_Query1.open;

 

 

 

 

   if (DataModule1.txb_Query1.RecordCount=1) and(DataModule1.txb_Query1.FieldByName('qx').Value>0) then

     begin

     xzqx:=DataModule1.txb_Query1.FieldByName('qx').value; //选中图型坐标

     xzqy:=DataModule1.txb_Query1.FieldByName('qy').value;

     xzzx:=DataModule1.txb_Query1.FieldByName('zx').value;

     xzzy:=DataModule1.txb_Query1.FieldByName('zy').value;

     xzhzxx:=DataModule1.txb_Query1.FieldByName('wbxx').value; //选中文本信息

     xztxlx:=DataModule1.txb_Query1.FieldByName('txlx').value; //选中图型类型

     xzys:=DataModule1.txb_Query1.FieldByName('ys').value;  //选中模式

     xzms:=DataModule1.txb_Query1.FieldByName('ms').value;  //选中模式

     xzkd:=DataModule1.txb_Query1.FieldByName('kd').value; //选中宽度

     xzhzxxys:=DataModule1.txb_Query1.FieldByName('wbxxys').value; //选中文本信息颜色

     xzhzxxsz:=DataModule1.txb_Query1.FieldByName('wbxxsz').value; //选中文本信息字体大小

     sbbh:=DataModule1.txb_Query1.FieldByName('sbbh').value;   //选中设备编号

 

     wyqs1.X:=xzqx;

     wyqs1.Y:=xzqy;

     wyzz1.X:=xzzx;

     wyzz1.Y:=xzzy;

 

     form18.ShowModal; //打开关联设备输入窗口

     end;

   end;

 end; //鼠标右键按下

 

end;

 

procedure TForm10.Image1MouseUp(Sender:TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

begin

  if(Drawing) then

 Begin

   //把当前图形起始、终止坐标存入表txb

  if  DrawingTool<>0 then

  begin

   DrawShape(Origin,Point(X,Y),pmCopy);

   Drawing:=False;

   if DrawingTool=1 then

   begin //直线

   sqx:=Origin.X;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X;

   szy:=Y;

   end;

   if DrawingTool=2 then

   begin //变压器

   sqx:=Origin.X-12;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+12;

   szy:=Y+24;

   end;

   if DrawingTool=3 then

   begin //电杆

   sqx:=Origin.X-3;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+3;

   szy:=Y+6;

   end;

   if DrawingTool=4 then

   begin //标记

   sqx:=Origin.X-6;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+6;

    szy:=Y+12;

   end;

   if DrawingTool=5 then

   begin //开关

   sqx:=Origin.X-6;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+6;

   szy:=Y+24;

   end;

   if DrawingTool=6 then

   begin //刀闸

   sqx:=Origin.X;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X;

   szy:=Y+12;

   end;

   if DrawingTool=7 then

   begin //避雷器

   sqx:=Origin.X-6;  //存入数据库中坐标数据

   sqy:=Origin.Y+4;

   szx:=X+6;

   szy:=Y+28;

   end;

   if DrawingTool=9 then

   begin  //电压互感器

   sqx:=Origin.X-8;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+8;

   szy:=Y+16;

   end;

    if DrawingTool=8 then

   begin  //电抗器

   sqx:=Origin.X-10;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+10;

   szy:=Y+20;

   end;

   if DrawingTool=10 then

   begin //电流互感器

   sqx:=Origin.X-8;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+8;

   szy:=Y+16;

   end;

   if DrawingTool=11 then

   begin //电容

   sqx:=Origin.X;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X;

   szy:=Y+12;

   end;

   if DrawingTool=12 then

   begin //接地线

   sqx:=Origin.X;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X;

   szy:=Y+12;

   end;

   if  DrawingTool=13 then

   begin //熔断器

   sqx:=Origin.X-6;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+6;

   szy:=Y+24;

   end;

   if  DrawingTool=14 then

   begin //电表

   sqx:=Origin.X-6;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+6;

   szy:=Y+24;

   end;

   if DrawingTool=16 then

   begin //汉字

   sqx:=Origin.X;  //存入数据库中坐标数据

   sqy:=Origin.Y;

   szx:=X+10;

   szy:=Y+10;

   end;

   DataModule1.in_txb_Query1.Close;

    DataModule1.in_txb_Query1.Params.ParamByName('name').AsString:=txmc;

   DataModule1.in_txb_Query1.Params.ParamByName('qx').Asinteger :=sqx;

   DataModule1.in_txb_Query1.Params.ParamByName('qy').Asinteger :=sqy;

   DataModule1.in_txb_Query1.Params.ParamByName('zx').Asinteger :=szx;

   DataModule1.in_txb_Query1.Params.ParamByName('zy').Asinteger :=szy;

   DataModule1.in_txb_Query1.Params.ParamByName('txlx').Asinteger:=DrawingTool;

   DataModule1.in_txb_Query1.Params.ParamByName('ys').Asinteger :=ComboBox1.ItemIndex;//颜色

   DataModule1.in_txb_Query1.Params.ParamByName('ms').Asinteger:=ComboBox2.ItemIndex; //模式

   DataModule1.in_txb_Query1.Params.ParamByName('kd').Asinteger:=Form10.UpDown1.Position; //宽度

   DataModule1.in_txb_Query1.Params.ParamByName('wbxx').Asstring :=hzxx;

   DataModule1.in_txb_Query1.Params.ParamByName('wbxxys').Asinteger:=hzxxys;

   DataModule1.in_txb_Query1.Params.ParamByName('wbxxsz').Asinteger:=hzxxsz;

   DataModule1.in_txb_Query1.Params.ParamByName('tzc').Asinteger :=iy;

   DataModule1.in_txb_Query1.Params.ParamByName('tzk').Asinteger :=ix;

   DataModule1.in_txb_Query1.Params.ParamByName('sbbh').Asstring :=sbbh;

   DataModule1.in_txb_Query1.Params.ParamByName('ryid').Asinteger:=g_df_userid;

   DataModule1.in_txb_Query1.ExecSQL;

 

 

 

  end;

   //把当前图形起始、终止坐标存入表txb

   //查找当前位置图形在txb中是否有,如有则得到焦点。

  if  DrawingTool=0 then //选择模式

   begin

   if (DataModule1.txb_Query1.RecordCount=1) and(DataModule1.txb_Query1.FieldByName('qx').Value>0) then  //判断是否选中

   begin

 

    Form10.Image1.Canvas.Pen.Style:=psSolid;

   case xzys of  //选择颜色

     0:

     begin

       Form10.Image1.Canvas.Pen.Color:=clblack;

     end;

     1:

     begin

       Form10.Image1.Canvas.Pen.Color:=clRed;

     end;

     2:

     begin

       Form10.Image1.Canvas.Pen.Color:=clBlue;

     end;

     3:

     begin

       Form10.Image1.Canvas.Pen.Color:=clGreen;

     end;

     4:

     begin

       Form10.Image1.Canvas.Pen.Color:=clWhite;

     end;

   end;

   case xzms of  //选择模式

     0:

      begin

       Form10.Image1.Canvas.Pen.Style:=psSolid;

     end;

     1:

     begin

       Form10.Image1.Canvas.Pen.Style:=psDot;

     end;

   end;

   TDDrawShape(wyqs2,wyzz2,pmCopy);

   //删除txb中原有图形

   DataModule1.del_txb_Query1.Close;

   DataModule1.del_txb_Query1.Params.ParamByName('name').AsString :=txmc;

   DataModule1.del_txb_Query1.Params.ParamByName('qx').Asinteger :=xzqx;

   DataModule1.del_txb_Query1.Params.ParamByName('qy').Asinteger :=xzqy;

   DataModule1.del_txb_Query1.Params.ParamByName('zx').Asinteger :=xzzx;

   DataModule1.del_txb_Query1.Params.ParamByName('zy').Asinteger :=xzzy;

   DataModule1.del_txb_Query1.Params.ParamByName('txlx').Asinteger:=xztxlx;

   DataModule1.del_txb_Query1.ExecSQL;

   //删除txb中原有图形

   Drawing:=False;

 

       sqx:=wyqs2.X;  //存入数据库中新的坐标数据

       sqy:=wyqs2.Y;

       szx:=wyzz2.X;

       szy:=WYzz2.Y;

 

     DataModule1.in_txb_Query1.Close;

     DataModule1.in_txb_Query1.Params.ParamByName('name').AsString :=txmc;

     DataModule1.in_txb_Query1.Params.ParamByName('qx').Asinteger :=sqx;

     DataModule1.in_txb_Query1.Params.ParamByName('qy').Asinteger :=sqy;

     DataModule1.in_txb_Query1.Params.ParamByName('zx').Asinteger :=szx;

     DataModule1.in_txb_Query1.Params.ParamByName('zy').Asinteger :=szy;

     DataModule1.in_txb_Query1.Params.ParamByName('txlx').Asinteger :=xztxlx;

     DataModule1.in_txb_Query1.Params.ParamByName('ys').Asinteger :=xzys; //颜色

     DataModule1.in_txb_Query1.Params.ParamByName('ms').Asinteger :=xzms; //模式

      DataModule1.in_txb_Query1.Params.ParamByName('kd').Asinteger:=xzkd; //宽度

     DataModule1.in_txb_Query1.Params.ParamByName('wbxx').Asstring :=xzhzxx;

     DataModule1.in_txb_Query1.Params.ParamByName('wbxxys').Asinteger:=xzhzxxys;

     DataModule1.in_txb_Query1.Params.ParamByName('wbxxsz').Asinteger:=xzhzxxsz;

     DataModule1.in_txb_Query1.Params.ParamByName('tzc').Asinteger :=iy;

     DataModule1.in_txb_Query1.Params.ParamByName('tzk').Asinteger :=ix; //宽度

     DataModule1.in_txb_Query1.Params.ParamByName('sbbh').Asstring :=sbbh;

      DataModule1.in_txb_Query1.Params.ParamByName('ryid').Asinteger:=g_df_userid;

     DataModule1.in_txb_Query1.ExecSQL;

     end;

   end;

 end;

 DrawingTool:=0;

end;

 

procedure TForm10.ToolButton1Click(Sender:TObject);

begin

DrawingTool:=0;   //鼠标选取

end;

 

procedure TForm10.ToolButton3Click(Sender:TObject);

begin

DrawingTool:=2; //变压器

end;

 

procedure TForm10.ComboBox1Change(Sender:TObject);

begin

case ComboBox1.ItemIndex of  //选择颜色

  0:

 begin

 Form10.Image1.Canvas.Pen.Color:=clblack;

 end;

  1:

 begin

 Form10.Image1.Canvas.Pen.Color:=clRed;

 end;

  2:

 begin

 Form10.Image1.Canvas.Pen.Color:=clBlue;

 end;

  3:

 begin

 Form10.Image1.Canvas.Pen.Color:=clGreen;

 end;

  4:

 begin

 Form10.Image1.Canvas.Pen.Color:=clWhite;

 end;

end;

end;

 

procedure TForm10.ComboBox2Change(Sender:TObject);

begin

case ComboBox2.ItemIndex of  //选择模式

  0:

 begin

 Form10.Image1.Canvas.Pen.Style:=psSolid;

 end;

  1:

 begin

 Form10.Image1.Canvas.Pen.Style:=psDot;

  end;

end;

end;

 

procedure TForm10.Edit1Change(Sender:TObject);

begin

  //Form10.Image1.Canvas.Pen.Width:=Form10.UpDown1.Position;

end;

 

procedure TForm10.ToolButton4Click(Sender:TObject);

begin

DrawingTool:=3; //电杆

end;

 

procedure TForm10.ToolButton6Click(Sender:TObject);

begin

DrawingTool:=5; //开关

end;

 

 

procedure TForm10.ToolButton7Click(Sender:TObject);

begin

DrawingTool:=6; //刀闸

end;

 

procedure TForm10.ToolButton8Click(Sender:TObject);

begin

DrawingTool:=7; //避雷器

end;

 

procedure TForm10.ToolButton16Click(Sender:TObject);

begin

//FontDialog1.Execute;

//Font1:=FontDialog1.Font;

if sfdjzt=1 then

begin

DrawingTool:=16; //汉字

form8.Showmodal;

end

else

begin

MessageDlg('请选字体再输入内容',

     mtInformation,

     [mbCancel],

     0);

end;

end;

 

procedure TForm10.N1Click(Sender: TObject);

begin

Form9.showmodal;

Form10.Image1.Enabled:=True;

Form10.Image1.Width:=ix;

Form10.Image1.Height:=iy;

Form10.Image1.Canvas.Brush.Color:=TColor(RGB(125,150,205));

Form10.Image1.Canvas.Rectangle(1,1,ix,iy);

end;

 

procedure TForm10.ToolButton5Click(Sender:TObject);

begin

DrawingTool:=4; //标记

end;

 

procedure TForm10.ToolButton9Click(Sender:TObject);

begin

DrawingTool:=8; //电抗器

end;

 

procedure TForm10.ToolButton10Click(Sender:TObject);

begin

DrawingTool:=9; //电压互感器

end;

 

procedure TForm10.ToolButton11Click(Sender:TObject);

begin

DrawingTool:=10; //电流互感器

end;

 

procedure TForm10.ToolButton12Click(Sender:TObject);

begin

DrawingTool:=11; //电容

end;

 

procedure TForm10.ToolButton13Click(Sender:TObject);

begin

DrawingTool:=12; //接地线

end;

 

procedure TForm10.ToolButton14Click(Sender:TObject);

begin

DrawingTool:=13; //熔断器

end;

 

procedure TForm10.ToolButton15Click(Sender:TObject);

begin

DrawingTool:=14; //电表

end;

 

procedure TForm10.ToolButton17Click(Sender:TObject);

begin

DrawingTool:=15; //曲线

end;

 

procedure TForm10.ToolButton20Click(Sender:TObject);

begin

FontDialog1.Execute;

Font1:=FontDialog1.Font;

sfdjzt:=1; //已选字体

end;

 

procedure TForm10.ToolButton21Click(Sender:TObject);

begin

Form9.showmodal;

Form10.Image1.Enabled:=True;

Form10.Image1.Width:=ix;

Form10.Image1.Height:=iy;

Form10.Image1.Canvas.Brush.Color:=TColor(RGB(125,150,205));

Form10.Image1.Canvas.Rectangle(1,1,ix,iy);

DataModule1.del_all_txb_Query1.Close;

DataModule1.del_all_txb_Query1.Params.ParamByName('ryid').AsInteger:=g_df_userid;

DataModule1.del_all_txb_Query1.ExecSQL;

end;

 

procedure TForm10.ToolButton30Click(Sender:TObject);

begin

form10.close;

end;

 

procedure TForm10.ToolButton28Click(Sender:TObject);

begin

Printer.BeginDoc();

Printer.Canvas.CopyRect(Form10.Image1.ClientRect,Form10.Image1.Canvas,Form10.Image1.ClientRect);

printer.EndDoc;

end;

 

procedure TForm10.P2Click(Sender: TObject);

begin

Printer.BeginDoc();

Printer.Canvas.CopyRect(Form10.Image1.ClientRect,Form10.Image1.Canvas,Form10.Image1.ClientRect);

printer.EndDoc;

end;

 

procedure TForm10.ToolButton23Click(Sender:TObject);

begin

DataModule1.del_yjtxb_name_Query1.Close;

DataModule1.del_yjtxb_name_Query1.ParamByName('name').AsString:=txmc;

DataModule1.del_yjtxb_name_Query1.ExecSQL;

DataModule1.txb_all_Query1.Close;

DataModule1.txb_all_Query1.Params.ParamByName('ryid').AsInteger:=g_df_userid;

DataModule1.txb_all_Query1.Open;

 

BatchMove1.Execute;

end;

 

procedure TForm10.S1Click(Sender: TObject);

begin

DataModule1.del_yjtxb_name_Query1.Close;

DataModule1.del_yjtxb_name_Query1.ParamByName('name').AsString:=txmc;

DataModule1.del_yjtxb_name_Query1.ExecSQL;

DataModule1.txb_all_Query1.Close;

DataModule1.txb_all_Query1.Params.ParamByName('ryid').AsInteger:=g_df_userid;

DataModule1.txb_all_Query1.Open;

 

BatchMove1.Execute;

end;

 

procedure TForm10.ToolButton22Click(Sender:TObject);

var i1:integer;

begin

form11.showmodal;

 

 

DataModule1.txb_query2.Close;

DataModule1.txb_Query2.Params.ParamByName('ryid').AsInteger:=g_df_userid;

DataModule1.txb_query2.open;

DataModule1.txb_query2.First;

 

iy:=DataModule1.txb_query2.FieldByName('tzc').value;

ix:=DataModule1.txb_query2.FieldByName('tzk').value;

 

Form10.Image1.Width:=ix;

Form10.Image1.Height:=iy;

Form10.Image1.Canvas.Brush.Color:=TColor(RGB(125,150,205));

Form10.Image1.Canvas.Rectangle(1,1,ix,iy);

 

for i1:=1 to DataModule1.txb_query2.RecordCount do

begin

     txmc:=DataModule1.txb_query2.FieldByName('name').value;

     xzqx:=DataModule1.txb_query2.FieldByName('qx').value; //选中图型坐标

     xzqy:=DataModule1.txb_query2.FieldByName('qy').value;

     xzzx:=DataModule1.txb_query2.FieldByName('zx').value;

     xzzy:=DataModule1.txb_query2.FieldByName('zy').value;

     xzhzxx:=DataModule1.txb_query2.FieldByName('wbxx').value; //选中文本信息

     xztxlx:=DataModule1.txb_query2.FieldByName('txlx').value; //选中图型类型

     xzys:=DataModule1.txb_query2.FieldByName('ys').value;  //选中模式

     xzms:=DataModule1.txb_query2.FieldByName('ms').value;  //选中模式

     xzkd:=DataModule1.txb_query2.FieldByName('kd').value; //选中宽度

     xzhzxxys:=DataModule1.txb_query2.FieldByName('wbxxys').value; //选中文本信息颜色

     xzhzxxsz:=DataModule1.txb_query2.FieldByName('wbxxsz').value; //选中文本信息字体大小

     sbbh:=DataModule1.txb_query2.FieldByName('sbbh').value; //选中

     wyqs2.X:=xzqx;

     wyqs2.Y:=xzqy;

     wyzz2.X:=xzzx;

     wyzz2.Y:=xzzy;

       case xzys of  //选择颜色

       0:

       begin

       Form10.Image1.Canvas.Pen.Color:=clblack;

       end;

       1:

       begin

       Form10.Image1.Canvas.Pen.Color:=clRed;

       end;

       2:

       begin

        Form10.Image1.Canvas.Pen.Color:=clBlue;

       end;

       3:

       begin

       Form10.Image1.Canvas.Pen.Color:=clGreen;

       end;

       4:

       begin

         Form10.Image1.Canvas.Pen.Color:=clWhite;

       end;

     end;

     case xzms of  //选择模式

       0:

       begin

       Form10.Image1.Canvas.Pen.Style:=psSolid;

       end;

       1:

       begin

       Form10.Image1.Canvas.Pen.Style:=psDot;

       end;

     end;

         Form10.Image1.Canvas.Font.Charset:=ANSI_CHARSET;

         Form10.Image1.Canvas.Font.Color:=clBlack;

         if xzhzxxys=0 then

         begin

         Font.Color:=clBlack //选中文本信息颜色

        end;

        if xzhzxxys=1 then

         begin

         Form10.Image1.Canvas.Font.Color:=clRed //选中文本信息颜色

         end;

        if xzhzxxys=2 then

         begin

         Form10.Image1.Canvas.Font.Color:=clBlue //选中文本信息颜色

         end;

         if xzhzxxys=3 then

         begin

         Form10.Image1.Canvas.Font.Color:=clGreen //选中文本信息颜色

         end;

         if xzhzxxys=4 then

         begin

         Form10.Image1.Canvas.Font.Color:=clWhite //选中文本信息颜色

         end;

     Form10.Image1.Canvas.Font.Size:=xzhzxxsz; //选中文本信息字体大小

     TDDrawShape(wyqs2,wyzz2,pmCopy);

     Tdxsj(wyqs2,wyzz2,pmCopy);

     DataModule1.txb_query2.next;

 

 

end;

     Form10.Image1.Enabled:=True;

     //Drawing:=True;

     //DrawingTool:=0;

 

end;

 

procedure TForm10.O1Click(Sender: TObject);

begin

form11.showmodal;

end;

 

procedure TForm10.N3Click(Sender: TObject);

begin

Form12.Showmodal;

end;

 

procedure TForm10.ToolButton27Click(Sender:TObject);

begin

Form12.Showmodal;

end;

 

procedure TForm10.Button1Click(Sender:TObject);

var i1:integer;

begin

Form12.Showmodal;

DataModule1.txb_query2.Close;

DataModule1.txb_Query2.Params.ParamByName('ryid').AsInteger:=g_df_userid;

DataModule1.txb_query2.open;

DataModule1.txb_query2.First;

 

iy:=DataModule1.txb_query2.FieldByName('tzc').value;

ix:=DataModule1.txb_query2.FieldByName('tzk').value;

 

Form10.Image1.Width:=ix;

Form10.Image1.Height:=iy;

Form10.Image1.Canvas.Brush.Color:=TColor(RGB(125,150,205));

Form10.Image1.Canvas.Rectangle(1,1,ix,iy);

 

for i1:=1 to DataModule1.txb_query2.RecordCount do

begin

     txmc:=DataModule1.txb_query2.FieldByName('name').value;

     xzqx:=DataModule1.txb_query2.FieldByName('qx').value; //选中图型坐标

     xzqy:=DataModule1.txb_query2.FieldByName('qy').value;

     xzzx:=DataModule1.txb_query2.FieldByName('zx').value;

     xzzy:=DataModule1.txb_query2.FieldByName('zy').value;

     xzhzxx:=DataModule1.txb_query2.FieldByName('wbxx').value; //选中文本信息

     xztxlx:=DataModule1.txb_query2.FieldByName('txlx').value; //选中图型类型

     xzys:=DataModule1.txb_query2.FieldByName('ys').value;  //选中模式

     xzms:=DataModule1.txb_query2.FieldByName('ms').value;  //选中模式

     xzkd:=DataModule1.txb_query2.FieldByName('kd').value; //选中宽度

     xzhzxxys:=DataModule1.txb_query2.FieldByName('wbxxys').value; //选中文本信息颜色

     xzhzxxsz:=DataModule1.txb_query2.FieldByName('wbxxsz').value; //选中文本信息字体大小

     sbbh:=DataModule1.txb_query2.FieldByName('sbbh').value; //选中

     wyqs2.X:=xzqx;

     wyqs2.Y:=xzqy;

     wyzz2.X:=xzzx;

     wyzz2.Y:=xzzy;

       case xzys of  //选择颜色

       0:

       begin

       Form10.Image1.Canvas.Pen.Color:=clblack;

       end;

       1:

       begin

       Form10.Image1.Canvas.Pen.Color:=clRed;

       end;

       2:

       begin

       Form10.Image1.Canvas.Pen.Color:=clBlue;

       end;

       3:

       begin

       Form10.Image1.Canvas.Pen.Color:=clGreen;

       end;

       4:

       begin

         Form10.Image1.Canvas.Pen.Color:=clWhite;

       end;

     end;

     case xzms of  //选择模式

       0:

       begin

       Form10.Image1.Canvas.Pen.Style:=psSolid;

       end;

       1:

       begin

       Form10.Image1.Canvas.Pen.Style:=psDot;

       end;

     end;

         Form10.Image1.Canvas.Font.Charset:=ANSI_CHARSET;

         Form10.Image1.Canvas.Font.Color:=clBlack;

         if xzhzxxys=0 then

         begin

         Font.Color:=clBlack //选中文本信息颜色

        end;

        if xzhzxxys=1 then

         begin

         Form10.Image1.Canvas.Font.Color:=clRed //选中文本信息颜色

         end;

        if xzhzxxys=2 then

         begin

         Form10.Image1.Canvas.Font.Color:=clBlue //选中文本信息颜色

         end;

         if xzhzxxys=3 then

          begin

         Form10.Image1.Canvas.Font.Color:=clGreen //选中文本信息颜色

         end;

         if xzhzxxys=4 then

         begin

         Form10.Image1.Canvas.Font.Color:=clWhite //选中文本信息颜色

         end;

     Form10.Image1.Canvas.Font.Size:=xzhzxxsz; //选中文本信息字体大小

     TDDrawShape(wyqs2,wyzz2,pmCopy);

     DataModule1.txb_query2.next;

 

 

end;

     Form10.Image1.Enabled:=True;

     //Drawing:=True;

     //DrawingTool:=0;

 

end;

 

procedure TForm10.ToolButton18Click(Sender:TObject);

begin

DrawingTool:=17; //变压器横向

end;

 

end.

---范小多