📄 main_unt.pas
字号:
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 + -