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

📄 main_unt.pas

📁 煤矿行业采掘接替计划自动生成系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Main_Unt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ToolWin, ComCtrls, Menus, ExtCtrls, StdCtrls, Buttons,
  DB, DBCtrls, Grids, DBGrids,ADODB, PageList, jpeg, ImgList;
type
  TFaceTask=record
    FaceId:integer;
    FaceName:string;
    DeltaT:integer; //变化后的工期与原工期的差
  end;

  //以下是为了调试程序之用
  TDrillTask_DayProgress=record
    Lane_Id:integer;
    Project_Id:integer;
    Name:string;
    Section_Type:string;
    WorkQuantity:single;
    DayProgress:single;
    TaskTime:integer;
    LST:TDate;
    LFT:TDate;
  end;


  TMain_Frm = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolBar2: TToolBar;
    N6: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    Splitter1: TSplitter;
    StatusBar1: TStatusBar;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N2: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    PageList1: TPageList;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    Image1: TImage;
    Label1: TLabel;
    ImageList1: TImageList;
    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;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    //调整回采面的工期后,调整回采接替计划的开、完工时间;
    //调整掘进任务的开、完工时间;掘进接替计划的开、完工时间
    procedure N17Click(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N36Click(Sender: TObject);
    procedure N26Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    StatusBarLen:integer;
    PosId:integer;
    Col:TColor;
    Step:double;
    StatusBar_rect:trect; //进度条尺寸变量

    DT_Prog:array of TDrillTask_DayProgress;//调试程序之用

    procedure StatusBarFill;
    //调整回采接替计划的开、完工时间
    procedure AdjustMineRelayTime(FaceTask:TFaceTask);
    //调整掘进任务的开、完工时间
    procedure AdjustDrillTaskTime(FaceName:string;FaceTask:TFaceTask);
    { Public declarations }
  end;

var
  Main_Frm: TMain_Frm;
  HaveForm:boolean=false;
  FaceParaAdjust:boolean=false;//回采面参数调整控制变量,当值为true时,处于回采面参数调整状态
  MineRelay_FrmCreated:boolean=false; //判断MineRelay_Frm窗体是否已经创建
  DrillRelay_FrmCreated:boolean=false; //判断DrillRelay_Frm窗体是否已经创建
  LaneInfo_FrmCreated:boolean=false;
implementation
uses FormBase_Unt, DataEdit_BaseUnt, DateQuery_BaseUnt,
      BaseInfo_Unt,WorkerEquip_Unt,FaceLaneClass_Unt,Relay_BaseUnt,Relay_Unt,PriorTask_Unt,
  Data_Unt,DrillRelay_Unt,CAD_Pro_Exc_Unt,MineRelay_Unt,WorkGroupConfirm_Unt,LaneInfo_Unt,
  ReportCondition_Unt,FaceInfo_Unt,MineStatistic_Unt, DrillStatistic_Unt,Unt_Gra,Unt_Project,
  MineRelayEdit_Unt,DrillRelayEdit_Unt,Hint_Unt;
function GetWindowsWorkArea: TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA,0,@result,0);
end;
{$R *.dfm}

procedure TMain_Frm.FormCreate(Sender: TObject);
var R:Trect;
begin
//得到屏幕的工作区域
R:=GetWindowsWorkArea;
//使主窗体恰好填充屏幕
Main_Frm.SetBounds(R.Left,R.Top,R.Right-R.Left,R.Bottom-R.Top);
StatusBarLen:=StatusBar1.Panels[1].Width-3;//进度条填充的最右边界
//定义进行填充的进度条的尺寸
StatusBar_Rect.Bottom:=StatusBar1.Height-1;
StatusBar_Rect.Top:=3;//3为StatusBar1的控件的条框宽度
StatusBar_Rect.Left:=StatusBar1.Left+StatusBar1.Panels[0].Width+2;

end;

procedure TMain_Frm.StatusBarFill;
var i:integer;
begin
Application.ProcessMessages;
i:=round(PosId*Step);
if i>=StatusBarLen then //如果已经达到进度条的边界,则刷新后退出
  begin
    StatusBar1.Refresh;
    exit;
  end;
//定义进度条向前进度的位置,i已经包含了前进的进度
StatusBar_Rect.Right:=StatusBar1.Left+StatusBar1.Panels[0].Width+2+i;
StatusBar1.Canvas.Brush.Color:=Col;
StatusBar1.Canvas.FillRect(StatusBar_Rect);
end;

procedure TMain_Frm.N6Click(Sender: TObject);
begin
if HaveForm then exit;
BaseInfo_Frm:=TBaseInfo_Frm.Create(Panel2);
BaseInfo_Frm.Parent:=Panel2;
BaseInfo_Frm.Show;
HaveForm:=true;
StatusBar1.Panels[0].Text:='煤矿基本信息录入......';
end;

procedure TMain_Frm.N9Click(Sender: TObject);
begin
if HaveForm then exit;
WorkerEquip_Frm:=TWorkerEquip_Frm.Create(Panel2);
WorkerEquip_Frm.Parent:=Panel2;
WorkerEquip_Frm.Show;
HaveForm:=true;
StatusBar1.Panels[0].Text:='人员与设备信息录入......';
end;

procedure TMain_Frm.N10Click(Sender: TObject);
begin
if HaveForm then exit;
FaceLaneClass_Frm:=TFaceLaneClass_Frm.Create(Panel2);
FaceLaneClass_Frm.Parent:=Panel2;
FaceLaneClass_Frm.Show;
HaveForm:=true;
StatusBar1.Panels[0].Text:='回采面和巷道类信息录入......';
end;

procedure TMain_Frm.N11Click(Sender: TObject);
begin
if HaveForm then exit;
Relay_Frm:=TRelay_Frm.Create(Panel2);
Relay_Frm.Parent:=Panel2;
Relay_Frm.Show;
HaveForm:=true;
StatusBar1.Panels[0].Text:='接替方案信息录入......';
end;

procedure TMain_Frm.N8Click(Sender: TObject);
begin
  {PriorTask_Frm:=TPriorTask_Frm.Create(self);
  PriorTask_Frm.ShowModal;
  PriorTask_Frm.Free;
  PriorTask_Frm:=nil;}
end;

procedure TMain_Frm.N20Click(Sender: TObject);
begin
  Hint_Frm:=THint_Frm.Create(self);
  if DrillRelay_FrmCreated
    then
      begin
        //showmessage('MineRelay_Frm is created!');
        DrillRelay_Frm.DrillRelay_StripGraph;
        Main_Frm.N33.Enabled:=true;
      end
    else
      begin
        //showmessage('MineRelay_Frm not created!');
        DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
        DrillRelay_Frm.DrillRelay_StripGraph;
        Main_Frm.N33.Enabled:=true;
      end;
  Hint_Frm.Free;
  Hint_Frm:=nil;

  {try
    DrillRelay_Frm.DrillRelay_StripGraph;
    Main_Frm.N33.Enabled:=true;
  except
    try
      DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
      DrillRelay_Frm.DrillRelay_StripGraph;
      Main_Frm.N33.Enabled:=true;
    except
      showmessage('窗体创建错误!');
      exit;
    end;
  end;}
end;

procedure TMain_Frm.N21Click(Sender: TObject);
begin
  Hint_Frm:=THint_Frm.Create(self);
  if DrillRelay_FrmCreated
    then
      begin
        //showmessage('MineRelay_Frm is created!');
        DrillRelay_Frm.MineDrillRelay_StripGraph;
        //Main_Frm.N33.Enabled:=true;
      end
    else
      begin
        //showmessage('MineRelay_Frm not created!');
        DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
        DrillRelay_Frm.MineDrillRelay_StripGraph;
        //Main_Frm.N33.Enabled:=true;
      end;
  Hint_Frm.Free;
  Hint_Frm:=nil;
  
  {try
    DrillRelay_Frm.MineDrillRelay_StripGraph;
  except
    //try
      //DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
      //DrillRelay_Frm.MineDrillRelay_StripGraph;
    //except
      //showmessage('窗体创建错误!');
      //exit;
    //end;
  end;}
end;

procedure TMain_Frm.N19Click(Sender: TObject);
begin
  Hint_Frm:=THint_Frm.Create(self);
  if MineRelay_FrmCreated
    then
      begin
        //showmessage('MineRelay_Frm is created!');
        MineRelay_Frm.MineRelay_StripGraph;
        Main_Frm.N32.Enabled:=true;
      end
    else
      begin
        //showmessage('MineRelay_Frm not created!');
        MineRelay_Frm:=TMineRelay_Frm.Create(self);
        MineRelay_Frm.MineRelay_StripGraph;
        Main_Frm.N32.Enabled:=true;
      end;
  Hint_Frm.Free;
  Hint_Frm:=nil;
  {try
    //showmessage('试着直接使用MineRelay_Frm窗体中的过程');
    MineRelay_Frm.MineRelay_StripGraph;
    //showmessage('直接使用成功!');
    Main_Frm.N32.Enabled:=true;
  except
    try
      //showmessage('直接使用不成功,以下创建MineRelay_Frm窗体');
      MineRelay_Frm:=TMineRelay_Frm.Create(self);
      MineRelay_Frm.MineRelay_StripGraph;
      Main_Frm.N32.Enabled:=true;
    except
      showmessage('窗体创建错误!');
      exit;
    end;
  end;
  Hint_Frm.Free;
  Hint_Frm:=nil;}
end;

procedure TMain_Frm.N22Click(Sender: TObject);
var
Id:integer;
begin
  WorkGroupConfirm_Frm:=TWorkGroupConfirm_Frm.Create(self);
  WorkGroupConfirm_Frm.ShowModal;
  Id:=WorkGroupConfirm_Frm.GroupId;
  WorkGroupConfirm_Frm.Free;
  WorkGroupConfirm_Frm:=nil;
  if not Data_Frm.Worker_AdoTab.Locate('WorkGroup_Id',Id,[locaseinsensitive])
    then
      begin
        showmessage('请正确选择采煤队!');
        exit;
      end;
  if Data_Frm.Worker_AdoTab.FieldByName('WorkGroup_Type').AsString<>'采煤' then
    begin
      showmessage('请正确选择采煤队!');
      exit;
    end;

  Hint_Frm:=THint_Frm.Create(self);

  if DrillRelay_FrmCreated
    then
      begin
        //showmessage('MineRelay_Frm is created!');
        DrillRelay_Frm.WorkGroupRelay_StripGraph(Id);
        //Main_Frm.N33.Enabled:=true;
      end
    else
      begin
        //showmessage('MineRelay_Frm not created!');
        DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
        DrillRelay_Frm.WorkGroupRelay_StripGraph(Id);
        //Main_Frm.N33.Enabled:=true;
      end;

  Hint_Frm.Free;
  Hint_Frm:=nil;
  
  {try
    DrillRelay_Frm.WorkGroupRelay_StripGraph(Id);
  except
    try
      DrillRelay_Frm:=TDrillRelay_Frm.Create(self);
      DrillRelay_Frm.WorkGroupRelay_StripGraph(Id);
    except
      showmessage('窗体创建错误!');
      exit;
    end;
  end;}
end;

procedure TMain_Frm.N23Click(Sender: TObject);

⌨️ 快捷键说明

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