⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitlinelost3.~pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 ~PAS
字号:
unit UnitLineLost3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Series, TeEngine, TeeProcs, Chart, StdCtrls;

type
  TFormLineLost3 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    ChartLine: TChart;
    ChartBar: TChart;
    Series1: TLineSeries;
    Series2: TBarSeries;
    CheckBo3D: TCheckBox;
    CheckBoMarks: TCheckBox;
    CheckBoLine: TCheckBox;
    CheckBoBar: TCheckBox;
    ScrollLine: TScrollBar;
    ScrollBar: TScrollBar;
    procedure FormResize(Sender: TObject);
    procedure CheckBo3DClick(Sender: TObject);
    procedure CheckBoMarksClick(Sender: TObject);
    procedure CheckBoLineClick(Sender: TObject);
    procedure CheckBoBarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ScrollLineChange(Sender: TObject);
    procedure ChartLineResize(Sender: TObject);
    procedure ChartLineScroll(Sender: TObject);
    procedure ChartLineUndoZoom(Sender: TObject);
    procedure ChartLineZoom(Sender: TObject);
    procedure ScrollBarChange(Sender: TObject);
    procedure ChartBarResize(Sender: TObject);
    procedure ChartBarScroll(Sender: TObject);
    procedure ChartBarUndoZoom(Sender: TObject);
    procedure ChartBarZoom(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    ChangingBars  : Boolean;
    ChangingLines : Boolean;
    Procedure CalcScrollBarPos;
    Procedure CalcScrollLinePos;
  end;

var
  FormLineLost3: TFormLineLost3;

implementation

{$R *.dfm}

procedure TFormLineLost3.FormResize(Sender: TObject);
begin
  FormLineLost3.Panel1.Height := (self.Height - self.Panel3.Height) div 2;
  FormLineLost3.Panel2.Height := (self.Height - self.Panel3.Height) div 2;

  FormLineLost3.Panel1.top    := Self.Top;
  FormLineLost3.Panel2.top    := Self.Top + (self.Height - self.Panel3.Height) div 2;;
end;

procedure TFormLineLost3.CheckBo3DClick(Sender: TObject);
begin
  ChartLine.View3D := not ChartLine.View3D;
  ChartBar.View3D  := not ChartBar.View3D;
end;

procedure TFormLineLost3.CheckBoMarksClick(Sender: TObject);
begin
  ChartLine.Series[0].Marks.Visible := not ChartLine.Series[0].Marks.Visible;
  ChartBar.Series[0].Marks.Visible  := not ChartBar.Series[0].Marks.Visible;
end;

procedure TFormLineLost3.CheckBoLineClick(Sender: TObject);
begin
  if ( CheckBoLine.Checked = true and CheckBoBar.Checked = True ) then
  begin
    FormLineLost3.Panel1.Height := (self.Height - self.Panel3.Height) div 2;
    FormLineLost3.Panel2.Height := (self.Height - self.Panel3.Height) div 2;

    FormLineLost3.Panel1.top    := Self.Top;
    FormLineLost3.Panel2.top    := Self.Top + (self.Height - self.Panel3.Height) div 2;;

    ChartBar.MarginBottom       := 15;
    ChartLine.MarginBottom      := 15;
  end;

  if ( CheckBoLine.Checked = true and CheckBoBar.Checked = false ) then
  begin
    FormLineLost3.Panel1.Height := self.Height - self.Panel3.Height;
    FormLineLost3.Panel2.Height := 0;

    FormLineLost3.Panel1.top    := Self.Top;
    ChartLine.MarginBottom      := 10;
    ChartBar.MarginBottom       := 10;
  end;

  if ( CheckBoLine.Checked = false and CheckBoBar.Checked = True ) then
  begin
    FormLineLost3.Panel1.Height := 0;
    FormLineLost3.Panel2.Height := self.Height - self.Panel3.Height;

    FormLineLost3.Panel2.top    := Self.Top;
    ChartBar.MarginBottom       := 10;
    ChartLine.MarginBottom      := 10;
  end
end;

procedure TFormLineLost3.CheckBoBarClick(Sender: TObject);
begin
if ( CheckBoLine.Checked = true and CheckBoBar.Checked = True ) then
  begin
    FormLineLost3.Panel1.Height := (self.Height - self.Panel3.Height) div 2;
    FormLineLost3.Panel2.Height := (self.Height - self.Panel3.Height) div 2;

    FormLineLost3.Panel1.top    := Self.Top;
    FormLineLost3.Panel2.top    := Self.Top + (self.Height - self.Panel3.Height) div 2;;

    ChartBar.MarginBottom       := 15;
    ChartLine.MarginBottom      := 15;
  end;

  if ( CheckBoLine.Checked = true and CheckBoBar.Checked = false ) then
  begin
    FormLineLost3.Panel1.Height := self.Height - self.Panel3.Height;
    FormLineLost3.Panel2.Height := 0;

    FormLineLost3.Panel1.top    := Self.Top;

    ChartBar.MarginBottom       := 10;
    ChartLine.MarginBottom      := 10;
  end;

  if ( CheckBoLine.Checked = false and CheckBoBar.Checked = True ) then
  begin
    FormLineLost3.Panel1.Height := 0;
    FormLineLost3.Panel2.Height := self.Height - self.Panel3.Height;

    FormLineLost3.Panel2.top    := Self.Top;

    ChartBar.MarginBottom       := 10;
    ChartLine.MarginBottom      := 10;
  end
end;

procedure TFormLineLost3.FormShow(Sender: TObject);
begin
  CheckBo3D.Checked    := False;
  CheckBoMarks.Checked := False;
  CheckBoLine.Checked  := True;
  CheckBoBar.Checked   := True;

  ChartLine.Series[0].Marks.Visible := False;
  ChartBar.Series[0].Marks.Visible  := False;
  ChartLine.View3D := False;
  ChartBar.View3D  := False;

  ChangingLines  := false;
  ChangingLines  := false;
  ChartLine.ZoomPercent(50);
  ChartBar.ZoomPercent(50);
  CalcScrollBarPos;
  CalcScrollLinePos;
end;

procedure TFormLineLost3.ScrollLineChange(Sender: TObject);
var Difer:Double;
begin
  if not ChangingLines then
  With ChartLine.BottomAxis do
  Begin
    Difer:=Maximum-Minimum;
    Maximum:=ChartLine.MaxXValue(ChartLine.BottomAxis)-ScrollLine.Position*Difer/100.0;
    Minimum:=Maximum-Difer;
  end;
end;

procedure TFormLineLost3.ScrollBarChange(Sender: TObject);
var Difer:Double;
begin
  if not ChangingBars then
  With ChartBar.BottomAxis do
  Begin
    Difer:=Maximum-Minimum;
    Maximum:=ChartBar.MaxXValue(ChartBar.BottomAxis)-ScrollBar.Position*Difer/100.0;
    Minimum:=Maximum-Difer;
  end;
end;

Procedure TFormLineLost3.CalcScrollBarPos;
Var Difer:Double;
Begin
  ChangingBars:=True;
  With ChartBar do
  Begin
   if BottomAxis.Automatic then
      ScrollBar.Enabled:=False
   else
   Begin
     ScrollBar.Enabled :=True;
     Difer:=MaxXValue(BottomAxis)-MinXValue(BottomAxis);
     if Difer>0 then
     ScrollBar.Position:=
       Round(100.0*(BottomAxis.Minimum-MinXValue(BottomAxis))/Difer);
   end;
  end;
  ChangingBars:=False;
End;

Procedure TFormLineLost3.CalcScrollLinePos;
Var Difer:Double;
Begin
  ChangingLines:=True;
  With ChartLine do
  Begin
   if BottomAxis.Automatic then
      ScrollLine.Enabled:=False
   else
   Begin
     ScrollLine.Enabled:=True;
     Difer:=MaxXValue(BottomAxis)-MinXValue(BottomAxis);
     if Difer>0 then
     ScrollLine.Position:=
       Round(100.0*(BottomAxis.Minimum-MinXValue(BottomAxis))/Difer);
   end;
  end;
  ChangingLines:=False;
End;

procedure TFormLineLost3.ChartLineResize(Sender: TObject);
begin
  ScrollLine.Left:=0;
  ScrollLine.Top:=ChartLine.Height-ScrollLine.Height;
  ScrollLine.Width:=ChartLine.Width;
end;

procedure TFormLineLost3.ChartLineScroll(Sender: TObject);
begin
  CalcScrollLinePos;
end;

procedure TFormLineLost3.ChartLineUndoZoom(Sender: TObject);
begin
  CalcScrollLinePos;
end;

procedure TFormLineLost3.ChartLineZoom(Sender: TObject);
begin
  CalcScrollLinePos;
end;

procedure TFormLineLost3.ChartBarResize(Sender: TObject);
begin
  CalcScrollBarPos;
end;

procedure TFormLineLost3.ChartBarScroll(Sender: TObject);
begin
  CalcScrollBarPos;
end;

procedure TFormLineLost3.ChartBarUndoZoom(Sender: TObject);
begin
  CalcScrollBarPos;
end;

procedure TFormLineLost3.ChartBarZoom(Sender: TObject);
begin
  CalcScrollBarPos;
end;

procedure TFormLineLost3.FormCreate(Sender: TObject);
begin
  ChangingLines  := false;
  ChangingLines  := false;
  ChartLine.ZoomPercent(50);
  ChartBar.ZoomPercent(50);
  CalcScrollBarPos;
  CalcScrollLinePos;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -