图形编辑详细功能的实现及部分关键代码
图形编辑详细功能及部分关键代码
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.
---范小多