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

📄 mainfrm.pas

📁 自已写的IP扫描工具
💻 PAS
字号:
{*******************************************************************************
   Unit description:  Main Form for DLL
   Modifier:  cy                    Date:  2003/03/17
   Modifier:                        Date:
                    Coding standard version NO. :1.0
                   Copyright(C)SCM ,All right reserved
*******************************************************************************}
unit Mainfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, ComCtrls, ImgList, ToolWin, StdActns, ActnList;

type  
  TMainForm = class(TForm)
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    ActionList1: TActionList;
    EditCut1: TEditCut;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    EditUndo1: TEditUndo;
    WindowClose1: TWindowClose;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    tlbAPSForm: TToolBar;
    tlbCut: TToolButton;
    tlbCopy: TToolButton;
    tlbPaste: TToolButton;
    tlbUndo: TToolButton;
    tlbCascade: TToolButton;
    tlbHorizontal: TToolButton;
    tlbVertical: TToolButton;
    tlbClose: TToolButton;
    ilAPSForm: TImageList;
    menuMESMain: TMainMenu;
    FILE1: TMenuItem;
    DatabaseConnection1: TMenuItem;
    Exit1: TMenuItem;
    Menu1: TMenuItem;
    Language1: TMenuItem;
    English1: TMenuItem;
    TraditionalChinese1: TMenuItem;
    SimplifiedChinese1: TMenuItem;
    RepairSheetReinput: TMenuItem;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Exit1Click(Sender: TObject);
    procedure DatabaseConnection1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure English1Click(Sender: TObject);
    procedure TraditionalChinese1Click(Sender: TObject);
    procedure SimplifiedChinese1Click(Sender: TObject);
    procedure RepairSheetReinputClick(Sender: TObject);
  private
    { Private declarations }
    procedure uSetLanguage(ALanguage:integer;ALangName:string);
  public
    { Public declarations }
  end;

  procedure FormFreeCallBack(ACaseName:string);stdcall;
Const
  ENU = (SUBLANG_ENGLISH_US shl 10) or LANG_ENGLISH;
  CHT = (SUBLANG_CHINESE_TRADITIONAL shl 10) or LANG_CHINESE;
  CHS = (SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE;

var
  MainForm: TMainForm;

implementation

uses clsGlobal, clsLoadDLL;

var
  slDLL:TStringList;

{$R *.dfm}

procedure FormFreeCallBack(ACaseName:string);
begin
  TLoadDLL(slDLL.Objects[slDLL.IndexOf(ACaseName)]).DLLForm :=nil;
end;  

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
  I:integer;
begin
  for I:=MDIChildCount-1 downto 0 do
    MDIChildren[I].Close;
  action:=cafree;
  if  Assigned(ObjGlobal) then ObjGlobal.Free ;
end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if MessageDlg(' Are you sure that you want to leave system?',
        mtConfirmation,[mbYes, mbNo], 0) = mrYes then
     CanClose:=true
  else
     CanClose:=false;
end;

procedure TMainForm.Exit1Click(Sender: TObject);
begin
  close;
end;

procedure TMainForm.DatabaseConnection1Click(Sender: TObject);
begin
  objGlobal.objDataConnect.DataConnection;
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[1].Text:=DateToStr(date)+'  '+TimeToStr(time);
end;

procedure TMainForm.FormCreate(Sender: TObject);  
begin
  objGlobal:=TGlobal.Create;
  slDLL:=TStringList.Create ;
  slDLL.Add('ImportStation');
  objGlobal.gDBType:=1;
  StatusBar1.Panels[2].Text:=objGlobal.objUser.FName;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to slDLL.Count -1 do
    if Assigned(slDLL.Objects[i]) then
    begin
      TLoadDLL(slDLL.Objects[i]).SetDLL ;
      FreeLibrary(TLoadDLL(slDLL.Objects[i]).iDLL); 
    end;
  slDLL.Free ;
end;

procedure TMainForm.English1Click(Sender: TObject);
begin
  uSetLanguage(ENU,'ENU');
end;

procedure TMainForm.TraditionalChinese1Click(Sender: TObject);
begin
  uSetLanguage(CHT,'CHT');
end;

procedure TMainForm.SimplifiedChinese1Click(Sender: TObject);
begin
  uSetLanguage(CHS,'CHS');
end;

procedure TMainForm.uSetLanguage(ALanguage: integer;ALangName: string);
var
  i:integer;
begin
  if MDIChildCount>0 then
  begin
    if MessageDlg('Change language will close all the open windows?',
          mtConfirmation,[mbYes, mbNo], 0) =mrNO then
       Exit;
    for I:=MDIChildCount-1 downto 0 do
    begin
      MDIChildren[I].Close;
      MDIChildren[I].Free;
    end;
  end;
  self.Caption:='MainForm'+'('+aLangName+')';
  objGlobal.gMultiLanguage :=aLanguage;  
end;

procedure TMainForm.RepairSheetReinputClick(Sender: TObject);
begin
  if CreateobjLoadDLL(slDLL,'ImportStation') then
     LoadDLL(slDLL,@FormFreeCallBack,'ImportStation');
end;

end.



⌨️ 快捷键说明

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