📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdStyleActnCtrls, ActnMan, ToolWin, ActnCtrls,
ExtCtrls, Menus, jpeg, ComCtrls, Tabs, Buttons, SkinCaption, WinSkinData,
WinSkinStore, RzStatus, RzPanel,IniFiles,Shellapi,Comobj;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
XXXX4: TMenuItem;
XXX1: TMenuItem;
Panel1: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Image1: TImage;
Image3: TImage;
Panel2: TPanel;
Image2: TImage;
Image4: TImage;
TabSet1: TTabSet;
Image7: TImage;
SpeedButton18: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
SpeedButton19: TSpeedButton;
RzStatusBar1: TRzStatusBar;
RzStatusPane1: TRzStatusPane;
RzClockStatus1: TRzClockStatus;
RzKeyStatus1: TRzKeyStatus;
RzStatusPane2: TRzStatusPane;
RzMarqueeStatus1: TRzMarqueeStatus;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N11: TMenuItem;
N10: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
SkinStore1: TSkinStore;
SkinData1: TSkinData;
SkinCaption1: TSkinCaption;
procedure createForm(vFlag:integer;vFormName:string);
procedure N2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure delTabs(FormCaption:string); //删除TAB上的信息;
procedure addTabs(FormCaption:string); //增加TAB上的信息;
var
MainForm: TMainForm;
implementation
uses ShowDrawUnit, CalculateUnit, SetparaUnit, About, GlobalVarDefs,
ModeExcelUnit, Progress, SystemUnit;
{$R *.dfm}
procedure addTabs(FormCaption:string);
var
i:integer;
vFlag:string;
begin
with MainForm.TabSet1 do begin
if Tabs.Count=0 then
Tabs.Add(FormCaption);
for i:=0 to Tabs.Count-1 do
if Tabs.Strings[i]=FormCaption then begin
TabIndex :=i;
vFlag:='true';
Break;
end;
if vFlag<>'true' then begin
Tabs.Add(FormCaption);
TabIndex :=i;
end;
end;
end;
procedure delTabs(FormCaption: string);
var
i:integer;
begin
with MainForm.TabSet1 do
for i:=0 to Tabs.Count-1 do
if Tabs.Strings[i]=FormCaption then begin
Tabs.Delete(i);
Break;
end;
end;
//****************创建窗体****************//
procedure TMainForm.createForm(vFlag:integer;vFormName:string);
//定义是否已经存在该实例
procedure iSelect(k:integer);
var
i:integer;
begin
//通过TabSet1组件实现对文档的快速切换
with TabSet1 do begin
case k of
11: begin
for i:=0 to Tabs.Count-1 do
if Tabs.Strings[i]='电动势图' then Exit;
//创建窗体
ShowDrawForm:=TShowDrawForm.Create(Self);
//设置窗体状态
ShowDrawForm.WindowState :=wsMaximized;
end;
end;
end;
end;
var
i:integer;
vF:string;
begin
//判断是否存在已经打开的窗体
if MainForm.MDIChildCount<>0 then begin
//遍历多文档中是否存在需要打开的窗体
for i:=0 to MainForm.MDIChildCount-1 do
if MainForm.MDIChildren[i].Name =vFormName then
vF:='true';
if vF='' then
iSelect(vFlag);
end else
iSelect(vFlag);
end;
procedure TMainForm.N2Click(Sender: TObject);
begin
SetparaForm:=TSetparaForm.Create(Self);
SetparaForm.ShowModal;
end;
procedure TMainForm.N6Click(Sender: TObject);
begin
CalculateForm.ShowModal;
end;
procedure TMainForm.N5Click(Sender: TObject);
begin
AboutForm.ShowModal;
end;
procedure TMainForm.N9Click(Sender: TObject);
begin
ShowDrawForm.ToolButton8Click(Sender);
end;
procedure TMainForm.N11Click(Sender: TObject);
begin
if Application.MessageBox('确定要退出系统吗?', '询问', MB_YESNO +
MB_ICONQUESTION) = IDNO then
begin
Exit;
end
else
Close;
end;
procedure TMainForm.N4Click(Sender: TObject);
begin
ShellExecute(handle,'open','help.CHM', nil,nil,SW_ShowNormal);
end;
procedure TMainForm.FormCreate(Sender: TObject);
var
Ini: TIniFile;
FileName:string;
a1,a2,a3,a4:Single;
begin
Ini := TIniFile.Create(ChangeFileExt( Application.ExeName, '.INI' ));
FileName:=ChangeFileExt( Application.ExeName, '.INI' );
try
a1:=Ini.ReadFloat( 'SysSet', 'outR' , 1.0 );
a2:=Ini.ReadFloat( 'SysSet', 'inR' , 1.0 );
a3:=Ini.ReadFloat( 'SysSet', 'sideT', 1.0 );
a4:=Ini.ReadFloat( 'SysSet', 'K' , 1.0 );
rPara.SingTral :=Ini.ReadBool('SysSet', 'SingTral', True ); //1是单线铁路;0是复线铁
rPara.RunState :=Ini.ReadBool('SysSet', 'RunState', True ); //1正常状态;0短路状态
rPara.rat :=Ini.ReadInteger( 'SysSet', 'rat' , 50 );
if Ini.ReadBool('SysSet', 'DK', False ) then
StrXUnite:= 'DK';
if Ini.ReadBool('SysSet', 'CK', True ) then
StrXUnite:= 'CK';
if Ini.ReadBool('SysSet', 'AK', False ) then
StrXUnite:= 'AK';
AddRedValue:= Ini.ReadInteger('SysSet', 'AddRedValue', 60);
RzMarqueeStatus1.Caption:= Ini.ReadString('SysSet', 'scrollStr' , '中铁第四勘察设计院集团有限公司电化处电磁兼容室' );
rE_Infor.E_K := a1*a2*a3*a4;
rE_Infor.E_w := rPara.rat;
if Ini.ReadBool('SysSet', 'MainLogoBool', True )= False then
begin
if FileExists(Ini.ReadString('SysSet', 'MainLogo', 'c:/xxx.jpg')) then
try
Image7.Picture.LoadFromFile(Ini.ReadString('SysSet', 'MainLogo', 'c:/xxx.jpg'));
except
end;
end;
finally
Ini.Free;
end;
end;
procedure TMainForm.N10Click(Sender: TObject);
begin
createForm(11,'电动势图');
addTabs('电动势图');
N9.Enabled:=True;
ShowDrawForm.Show;
end;
procedure TMainForm.N7Click(Sender: TObject);
begin
ShellExecute(handle,'open','calc.exe','','',SW_SHOWNORMAL);
end;
procedure TMainForm.N12Click(Sender: TObject);
begin
ShellExecute(handle,'open','notepad.exe','','',SW_SHOWNORMAL);
end;
procedure TMainForm.N13Click(Sender: TObject);
begin
DoExcel.Create(true);
progressform:=Tprogressform.Create(self);
progressform.Caption:='生成Excel模板';
progressform.ShowModal;
end;
procedure TMainForm.N3Click(Sender: TObject);
begin
SystemSetForm:=TSystemSetForm.Create(Self);
SystemSetForm.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -