📄 waveview.pas
字号:
unit WaveView;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, Buttons, StdCtrls, XPMenu, TeeProcs, TeEngine,
Chart, Series, ComCtrls, dxCore, dxButton, Menus;
type
TWaveViewFrm = class(TForm)
FrameImg: TImage;
IconImg: TImage;
CaptionLbl: TLabel;
MinSpdBtn: TSpeedButton;
CloseSpdBtn: TSpeedButton;
Chart1: TChart;
Series1: TFastLineSeries;
Chart2: TChart;
Label2: TLabel;
Label3: TLabel;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
SaveDialog1: TSaveDialog;
UpDown1: TUpDown;
PopupMenu1: TPopupMenu;
T1: TMenuItem;
T2: TMenuItem;
T3: TMenuItem;
T4: TMenuItem;
T5: TMenuItem;
V1: TMenuItem;
C2: TMenuItem;
V2: TMenuItem;
C3: TMenuItem;
V3: TMenuItem;
C4: TMenuItem;
V4: TMenuItem;
C5: TMenuItem;
V5: TMenuItem;
C1: TMenuItem;
T6: TMenuItem;
T7: TMenuItem;
T8: TMenuItem;
T9: TMenuItem;
T10: TMenuItem;
T11: TMenuItem;
T12: TMenuItem;
T13: TMenuItem;
T14: TMenuItem;
T15: TMenuItem;
T16: TMenuItem;
T17: TMenuItem;
T18: TMenuItem;
T19: TMenuItem;
T20: TMenuItem;
T21: TMenuItem;
T22: TMenuItem;
T23: TMenuItem;
T24: TMenuItem;
T25: TMenuItem;
T26: TMenuItem;
T27: TMenuItem;
T28: TMenuItem;
T29: TMenuItem;
T30: TMenuItem;
T31: TMenuItem;
T32: TMenuItem;
N1: TMenuItem;
C32: TMenuItem;
V32: TMenuItem;
C31: TMenuItem;
V31: TMenuItem;
C30: TMenuItem;
V30: TMenuItem;
C29: TMenuItem;
V29: TMenuItem;
C28: TMenuItem;
V28: TMenuItem;
C27: TMenuItem;
V27: TMenuItem;
C26: TMenuItem;
V26: TMenuItem;
C25: TMenuItem;
V25: TMenuItem;
C24: TMenuItem;
V24: TMenuItem;
C23: TMenuItem;
V23: TMenuItem;
C22: TMenuItem;
V22: TMenuItem;
C21: TMenuItem;
V21: TMenuItem;
C20: TMenuItem;
V20: TMenuItem;
C19: TMenuItem;
V19: TMenuItem;
C18: TMenuItem;
V18: TMenuItem;
C17: TMenuItem;
V17: TMenuItem;
C16: TMenuItem;
V16: TMenuItem;
C15: TMenuItem;
V15: TMenuItem;
C14: TMenuItem;
V14: TMenuItem;
C13: TMenuItem;
V13: TMenuItem;
C12: TMenuItem;
V12: TMenuItem;
C11: TMenuItem;
V11: TMenuItem;
C10: TMenuItem;
V10: TMenuItem;
C9: TMenuItem;
V9: TMenuItem;
C8: TMenuItem;
V8: TMenuItem;
C7: TMenuItem;
V7: TMenuItem;
C6: TMenuItem;
V6: TMenuItem;
Label1: TLabel;
Label4: TLabel;
UpDown2: TUpDown;
Label8: TLabel;
UpDown4: TUpDown;
Label9: TLabel;
UpDown5: TUpDown;
Label10: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Series2: TFastLineSeries;
Series3: TFastLineSeries;
Series4: TFastLineSeries;
Series5: TFastLineSeries;
Series6: TFastLineSeries;
Series7: TFastLineSeries;
Label11: TLabel;
Label13: TLabel;
Label15: TLabel;
Label12: TLabel;
Label14: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
UpDown3: TUpDown;
Label19: TLabel;
procedure FormCreate(Sender: TObject);
procedure MinSpdBtnClick(Sender: TObject);
procedure CloseSpdBtnClick(Sender: TObject);
procedure FrameImgMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FrameImgMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FrameImgMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure V1Click(Sender: TObject);
procedure C2Click(Sender: TObject);
procedure V2Click(Sender: TObject);
procedure V3Click(Sender: TObject);
procedure C4Click(Sender: TObject);
procedure V4Click(Sender: TObject);
procedure C5Click(Sender: TObject);
procedure V5Click(Sender: TObject);
procedure C6Click(Sender: TObject);
procedure V6Click(Sender: TObject);
procedure V7Click(Sender: TObject);
procedure C8Click(Sender: TObject);
procedure V8Click(Sender: TObject);
procedure C9Click(Sender: TObject);
procedure V9Click(Sender: TObject);
procedure C10Click(Sender: TObject);
procedure V10Click(Sender: TObject);
procedure C11Click(Sender: TObject);
procedure V11Click(Sender: TObject);
procedure C7Click(Sender: TObject);
procedure C3Click(Sender: TObject);
procedure C12Click(Sender: TObject);
procedure V12Click(Sender: TObject);
procedure C13Click(Sender: TObject);
procedure V13Click(Sender: TObject);
procedure C14Click(Sender: TObject);
procedure V14Click(Sender: TObject);
procedure C15Click(Sender: TObject);
procedure V15Click(Sender: TObject);
procedure C16Click(Sender: TObject);
procedure V16Click(Sender: TObject);
procedure C17Click(Sender: TObject);
procedure V17Click(Sender: TObject);
procedure C18Click(Sender: TObject);
procedure V18Click(Sender: TObject);
procedure C19Click(Sender: TObject);
procedure V19Click(Sender: TObject);
procedure C20Click(Sender: TObject);
procedure V20Click(Sender: TObject);
procedure C21Click(Sender: TObject);
procedure V21Click(Sender: TObject);
procedure C22Click(Sender: TObject);
procedure V22Click(Sender: TObject);
procedure C23Click(Sender: TObject);
procedure V23Click(Sender: TObject);
procedure C24Click(Sender: TObject);
procedure V24Click(Sender: TObject);
procedure C25Click(Sender: TObject);
procedure V25Click(Sender: TObject);
procedure C26Click(Sender: TObject);
procedure V26Click(Sender: TObject);
procedure C27Click(Sender: TObject);
procedure V27Click(Sender: TObject);
procedure C28Click(Sender: TObject);
procedure V28Click(Sender: TObject);
procedure C29Click(Sender: TObject);
procedure V29Click(Sender: TObject);
procedure C30Click(Sender: TObject);
procedure V30Click(Sender: TObject);
procedure C31Click(Sender: TObject);
procedure V31Click(Sender: TObject);
procedure C32Click(Sender: TObject);
procedure V32Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure UpDown4Click(Sender: TObject; Button: TUDBtnType);
procedure UpDown5Click(Sender: TObject; Button: TUDBtnType);
procedure Label9MouseEnter(Sender: TObject);
procedure Label9MouseLeave(Sender: TObject);
procedure Label10MouseEnter(Sender: TObject);
procedure Label10MouseLeave(Sender: TObject);
procedure Label9Click(Sender: TObject);
procedure Label10Click(Sender: TObject);
procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
procedure Label5MouseEnter(Sender: TObject);
procedure Label5MouseLeave(Sender: TObject);
procedure Label5Click(Sender: TObject);
procedure Series2Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Series3Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Chart1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Chart2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure UpDown3Click(Sender: TObject; Button: TUDBtnType);
procedure Series1Click(Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
//************************为窗口增加一个任务栏显示****************//
procedure CreateParams(Var Param:TCreateParams);override;
end;
var
WaveViewFrm: TWaveViewFrm;
golMouseDownFlag3: Boolean;//鼠标是否在标题栏内按下
golOldMouseX3,golOldMouseY3:Integer;//鼠标按下后的坐标
golX1,golX2,golX: Double;//测时线当前位置
conSeries,VerSeries: array[1..20] of TFastLineSeries;//控制、校验曲线
implementation
uses Main, ParaAdd, Printers;
{$R *.dfm}
procedure TWaveViewFrm.CreateParams(Var Param:TCreateParams);
begin
//************************为数据设置窗口增加一个任务栏显示****************//
Inherited CreateParams(Param);
Param.wndParent:= GetDesktopWindow;
end;
procedure TWaveViewFrm.FormCreate(Sender: TObject);
var
I:Integer;
begin
//窗体初始化位置及大小
WaveViewFrm.Left:=0;
WaveViewFrm.Top:=0;
Width:=MainFrm.Width;
WaveViewFrm.Height:=MainFrm.Height;
ScrollBar2.Min:=0;
ScrollBar2.Max:=3000;
ScrollBar3.Min:=0;
ScrollBar3.Max:=65;
//动态生成控制、校验曲线
for I:=1 to 20 do
begin
conSeries[I]:=TFastLineSeries.Create(Self);
verSeries[I]:=TFastLineSeries.Create(Self);
conSeries[I].Marks.Font.Name:='MS Sans Serif';
conSeries[I].Marks.Font.Size:=11;
conSeries[I].Marks.Font.Color:=$000080FF;
conSeries[I].Marks.Style:=smsXValue;
conSeries[I].Marks.BackColor:=clBlack;
conSeries[I].Marks.Transparent:=True;
conSeries[I].Marks.Arrow.Visible:=False;
if I<11 then
begin
conSeries[I].ParentChart:=Chart1;
conSeries[I].Active:=False;
conSeries[I].Tag:=0;
verSeries[I].ParentChart:=Chart1;
verSeries[I].Active:=False;
verSeries[I].Tag:=0;
end
else
begin
conSeries[I].ParentChart:=Chart2;
verSeries[I].ParentChart:=Chart2;
end;
end;
end;
procedure TWaveViewFrm.MinSpdBtnClick(Sender: TObject);
begin
//***********窗体最小化*************//
WaveViewFrm.WindowState:=wsMinimized;
end;
procedure TWaveViewFrm.CloseSpdBtnClick(Sender: TObject);
begin
//***********关闭窗体*************//
Close;
end;
procedure TWaveViewFrm.FrameImgMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//**************判断鼠标是否在标题栏,若是则MouseDownFlag为真****************//
if (X>FrameImg.Left) and (X<(FrameImg.Left+FrameImg.Width)) and
(Y>FrameImg.Top) and (Y<40) then
begin
golMouseDownFlag3:=True;
golOldMouseX3:=X;
golOldMouseY3:=Y;
end;
end;
procedure TWaveViewFrm.FrameImgMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
//********若MouseDownFlag为真,则鼠标在标题栏,可以实现窗体的拖动************//
if golMouseDownFlag3=True then
begin
WaveViewFrm.Left:=WaveViewFrm.Left+(X-golOldMouseX3);
WaveViewFrm.Top:=WaveViewFrm.Top+(Y-golOldMouseY3);
end;
end;
procedure TWaveViewFrm.FrameImgMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//**************清鼠标按下标志***********//
golMouseDownFlag3:=False;
end;
procedure TWaveViewFrm.C1Click(Sender: TObject);
var
I:Integer;
begin
C1.Checked:=not C1.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=1 then
conSeries[I].Active:=C1.Checked;
end;
procedure TWaveViewFrm.V1Click(Sender: TObject);
begin
V1.Checked:=not V1.Checked;
end;
procedure TWaveViewFrm.C2Click(Sender: TObject);
var
I:Integer;
begin
C2.Checked:=not C2.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=2 then
conSeries[I].Active:=C2.Checked;
end;
procedure TWaveViewFrm.V2Click(Sender: TObject);
begin
V2.Checked:=not V2.Checked;
end;
procedure TWaveViewFrm.C3Click(Sender: TObject);
var
I:Integer;
begin
C3.Checked:=not C3.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=3 then
conSeries[I].Active:=C3.Checked;
end;
procedure TWaveViewFrm.V3Click(Sender: TObject);
begin
V3.Checked:=not V3.Checked;
end;
procedure TWaveViewFrm.C4Click(Sender: TObject);
var
I:Integer;
begin
C4.Checked:=not C4.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=4 then
conSeries[I].Active:=C4.Checked;
end;
procedure TWaveViewFrm.V4Click(Sender: TObject);
begin
V4.Checked:=not V4.Checked;
end;
procedure TWaveViewFrm.C5Click(Sender: TObject);
var
I:Integer;
begin
C5.Checked:=not C5.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=5 then
conSeries[I].Active:=C5.Checked;
end;
procedure TWaveViewFrm.V5Click(Sender: TObject);
begin
V5.Checked:=not V5.Checked;
end;
procedure TWaveViewFrm.C6Click(Sender: TObject);
var
I:Integer;
begin
C6.Checked:=not C6.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=6 then
conSeries[I].Active:=C6.Checked;
end;
procedure TWaveViewFrm.V6Click(Sender: TObject);
begin
V6.Checked:=not V6.Checked;
end;
procedure TWaveViewFrm.C7Click(Sender: TObject);
var
I:Integer;
begin
C7.Checked:=not C7.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=7 then
conSeries[I].Active:=C7.Checked;
end;
procedure TWaveViewFrm.V7Click(Sender: TObject);
begin
V7.Checked:=not V7.Checked;
end;
procedure TWaveViewFrm.C8Click(Sender: TObject);
var
I:Integer;
begin
C8.Checked:=not C8.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=8 then
conSeries[I].Active:=C8.Checked;
end;
procedure TWaveViewFrm.V8Click(Sender: TObject);
begin
V8.Checked:=not V8.Checked;
end;
procedure TWaveViewFrm.C9Click(Sender: TObject);
var
I:Integer;
begin
C9.Checked:=not C9.Checked;
for I:=1 to 10 do
if conSeries[I].Tag=9 then
conSeries[I].Active:=C9.Checked;
end;
procedure TWaveViewFrm.V9Click(Sender: TObject);
begin
V9.Checked:=not V9.Checked;
end;
procedure TWaveViewFrm.C10Click(Sender: TObject);
var
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -