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

📄 main.pas

📁 基于高速铁路周边电动势计算的关键
💻 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 + -