程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 生產管理系統主窗口設計及實現代碼

生產管理系統主窗口設計及實現代碼

編輯:Delphi

 (1) 利用系統默認生成的窗體作為主窗體,並為其添加一個主菜單(MainMenu)控件和一個狀態欄控件(StatusBar),並為窗體添加一張圖片作為背景,本實例中所使用的圖片為光盤目錄下的“流水線.jpg”文件。各個控件的布局如圖3.31所示。

生產管理系統主窗口設計及實現代碼

  圖3.31  系統主窗體

  (2) 窗體的屬性設置如表3.4所示。

生產管理系統主窗口設計及實現代碼

  表3.4  主窗體屬性設置

  (3) 雙擊主菜單控件,在菜單編輯器中添加如圖3.32所示的窗體菜單,圖中標識了菜單的層級、Caption屬性和Name屬性。狀態欄控件的設置在第1章中已有說明,請讀者自行參考。

生產管理系統主窗口設計及實現代碼

  (4) 單擊主菜單中的各個菜單選項,為各個子窗體添加處理代碼。

      private 
        { Private declarations } 
      public 
        { Public declarations } 
    //各個MDI子窗體間通過主窗體定義的公共變量來傳遞數據 
        str,str2,str3,str4:string; 
    //標識是哪個子窗體來使用上面4個公共變量 
    //bomflag=1表示BOM窗體使用上面的變量,bomflag=2,3表示主需求窗體使用 
        bomflag:integer; 
      end; 
      
    var 
      main: Tmain; 
    implementation 
      
    {$R *.dfm} 
    uses MaterialsForm,BomForm,CalendarForm,mainrequireForm,mainproduceform,MRPCalForm,
mrphistoryForm; 

    //---------------打開物料主文件維護子窗口--------------------- 
    procedure Tmain.N4Click(Sender: TObject); 
    var 
    newform:Tmaterials; 
    i,flag:integer; 
    begin 
    //flag=0表示該窗體不存在 
      flag:=0; 
      for i:=0 to main.MDIChildCount do 
     begin 
    // 通過對窗體標題判斷窗體是否存在 
      if main.MDIChildren[i].Caption='物料主文件維護' then 
       begin 
       //如果窗體已存在,則恢復窗體 
         SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0); 
         mdichildren[i].Show; 
         flag:=1; 
       //退出循環 
       break; 
       end; 
       end; 
      //若窗體不存在,則創建窗體

     if flag=0 then 
     begin 
     newform:=Tmaterials.Create(application); 
     newform.Caption:='物料主文件維護'; 
     end; 
    end; 

    //----------------打開物料清單(BOM)子窗體------------------------ 
    procedure Tmain.BOM1Click(Sender: TObject); 
    var 
    newform:Tbom; 
    i,flag:integer; 
    begin 
      flag:=0; 
      for i:=0 to main.MDIChildCount do 
     begin 
    // 通過對窗體標題判斷窗體是否存在 
      if main.MDIChildren[i].Caption='物料清單(BOM)' then 
       begin 
       //如果窗體已存在,則恢復窗體 
         SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0); 
        mdichildren[i].Show; 
    //標識窗體已存在 
         flag:=1; 
       //退出循環 
       break; 
       end; 
       end; 
      //若窗體不存在,則創建窗體 
       if flag=0 then 
     begin 
     newform:=Tbom.Create(application); 
     newform.Caption:='物料清單(BOM)'; 
     end; 
    end;       
      
    //---------平鋪各個子窗體-------------- 
    procedure Tmain.N8Click(Sender: TObject); 
    begin 
     Tile; 
    end; 
    //------------層疊各個子窗體---------- 
    procedure Tmain.N9Click(Sender: TObject); 
    begin 
      Cascade; 
    end;

  //----------關閉主窗體---------------------- 
    procedure Tmain.N3Click(Sender: TObject); 
    begin 
    main.Close; 
    end; 
    //-------------------------------------------------------------------- 
    // 這裡是【物料主文件】菜單選項和【物料清單(BOM)】菜單選項的Click事件響應處理代碼,其他子窗體相 
    // 對應的菜單選項處理代碼和上面的代碼基本一致 
    // 讀者請參考配書光盤中/chapt3/main.pas 
    //-------------------------------------------------------------------- 

  文本框: 圖3.33 MDI子窗體的設置* 注意: 這些代碼需要根據在創建並保存相應的子窗體後才能添加,否則將導致編譯出錯。例如添加【物料主文件】菜單選項的Clock事件處理代碼,需要先建立一個新的窗體,設置其窗體屬性,尤其是FormStyle屬性必須設為fsMDIChild,同時需要選擇Project | Options...菜單命令,在彈出的對話框的Forms選項卡中,將物料主文件維護窗體(materials)從Auto-Create forms列表框中移到 Available forms列表框中,如圖3.33所示。因為MDI文檔的子窗體默認是隨父窗體自動創建和顯示的,通過上述操作,才可以在程序中動態地生成子窗口。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved