📄 unitlarge.~pas
字号:
unit UnitLarge;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, TeeProcs, TeEngine, Chart,
QuickRpt;
type
TFormLarge = class(TForm)
Chart1: TChart;
Panel1: TPanel;
StatusBar1: TStatusBar;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
QRCompositeReport1: TQRCompositeReport;
Label1: TLabel;
CheckBox1: TCheckBox;
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure QRCompositeReport1AddReports(Sender: TObject);
procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
OldX,OldY:Longint;
CrossHairColor:TColor;
CrossHairStyle:TPenStyle;
{ Public declarations }
end;
var
FormLarge: TFormLarge;
implementation
uses UnitRPTitle, UnitQRchart;
{$R *.dfm}
procedure TFormLarge.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure TFormLarge.BitBtn2Click(Sender: TObject);
var
i:integer;
begin
//FormQRChart.QRChart1.Width:=
//FormQRChart.QRChart1.Height:=
FormQRChart.QuickRep1.PrintIfEmpty:=false;
for i:=0 to Chart1.SeriesCount-1 do
Chart1.Series[0].ParentChart :=FormQRChart.QRChart1.Chart;
QRCompositeReport1.Preview;
for i:=0 to FormQRChart.QRChart1.Chart.SeriesCount-1 do
FormQRChart.QRChart1.Chart.Series[0].ParentChart:=Chart1;
end;
procedure TFormLarge.QRCompositeReport1AddReports(Sender: TObject);
begin
with QRCompositeReport1.Reports do
begin
Add(FormRPtitle.QuickRep1);
Add(FormQRChart.QuickRep1);
end;
end;
procedure TFormLarge.Chart1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
{ This procedure draws the crosshair lines }
Procedure DrawCross(AX,AY:Integer);
begin
With Chart1,Canvas do
begin
Pen.Color:=CrossHairColor;
Pen.Style:=CrossHairStyle;
Pen.Mode:=pmXor;
Pen.Width:=1;
MoveTo(ax,ChartRect.Top-Height3D);
LineTo(ax,ChartRect.Bottom-Height3D);
MoveTo(ChartRect.Left+Width3D,ay);
LineTo(ChartRect.Right+Width3D,ay);
end;
end;
Var tmpX,tmpY:Double;
begin
if checkbox1.Checked=true then begin
if (OldX<>-1) then
begin
DrawCross(OldX,OldY); { draw old crosshair }
OldX:=-1;
end;
{ check if mouse is inside Chart rectangle }
if PtInRect( Chart1.ChartRect, Point(X-Chart1.Width3D,Y+Chart1.Height3D) ) then
begin
DrawCross(x,y); { draw crosshair at current position }
{ store old position }
OldX:=x;
OldY:=y;
{ set label text }
With chart1.Series[0] do
begin
GetCursorValues(tmpX,tmpY); { <-- get values under mouse cursor }
Label1.Caption:='强力值:'+GetVertAxis.LabelValue(tmpY)+
' '+
'伸长量值:'+GetHorizAxis.LabelValue(tmpX);
//label1.Left:=x;
//label1.Top:=y;
end;
end;
end;
end;
procedure TFormLarge.FormCreate(Sender: TObject);
begin
OldX:=-1; { initialize variables }
CrossHairColor:=clYellow;
CrossHairStyle:=psSolid;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -