发信人: plenilune88(望月) 
整理人: soaringbird(2002-02-02 09:05:27), 站内信件
 | 
 
 
procedure nextTab(Form:TForm);
 begin  //跳到下一个输入焦点
   Form.Perform(WM_NEXTDLGCTL,0,0);
 end;
 
 procedure dragWin(Form:TForm);
 begin  //拖动窗体(用于无标题栏窗体)
   ReleaseCapture;
   Form.Perform(WM_SYSCOMMAND,$f012,0);
 end;
 
 function existsForm(FormClass:TFormClass):boolean;
 var i:integer;
 begin  //判断程序窗体是否存在
   Result:=true;
   for i:=0 to Screen.FormCount-1 do
     if Screen.Forms[i] is FormClass then exit;
   Result:=false;
 end;
 
 function existsWin(Form,Caption:string):boolean;
 begin  //判断Window窗体是否存在
   if FindWindow(PChar(Form),PChar(Caption))=0
      then Result:=false
      else Result:=true;
 end;
 
 procedure focusWin(Form:TForm);
 begin  //使窗体获得焦点
   if Form.WindowState = wsMinimized then Form.WindowState:=wsNormal;
   Form.show;
   Form.BringToFront;
 end;
 
 function existsMDIChildWin(MainForm:TForm;FormClass:TFormClass):boolean;
 var i:integer;
 begin  //判断MDI子窗体是否存在
   Result:=True;
   for I:=0 to MainForm.MDIChildCount-1 do
     if MainForm.MDIChildren[I] is FormClass then exit;
   Result:=false;
 end;
 
 procedure focusMDIChildWin(MainForm,Form:TForm);
 begin  //使MDI子窗体获得焦点
   SendMessage(MainForm.ClientHandle,WM_MDIACTIVATE,Form.Handle,0);
   if Form.WindowState = wsMinimized then Form.WindowState:=wsNormal;
 end;
 
 function CloseNowMDIChildWin(Form:TForm):boolean;
 begin  //关闭当前MDI子窗体
   Result:=true;
   if Form.MDIChildCount>0
     then
       Form.ActiveMDIChild.Close
     else
       Result:=false;  
 end;
 
 function CloseAllMDIChildWin(Form:TForm):boolean;
 var i:integer;
 begin  //关闭所有MDI子窗体
   Result:=true;
   try
     for i:=0 to Form.MDIChildCount-1 do
       Form.MDIChildren[i].Close;
   except
     Result:=false;
   end;     
 end;
 
 function FindAndShowWinForm(FormClassName,FormCaption:string):boolean;
 var PreWin:HWND;
 begin  //查找并显示Windows中已存在窗体
   PreWin:=FindWindow(PChar(FormClassName),PChar(FormCaption));
   if PreWin<>0 then
     begin
       SetForeGroundWindow(PreWin);
       Result:=true;
     end
   else
     Result:=false;
 end;
 
 procedure ExploerWeb(handle:HWND;URL:string);
 var Returnvalue : integer;
 begin //浏览Web
   ReturnValue := ShellExecute(handle, 'open', PChar(URL), nil, nil, SW_SHOWNORMAL);
   if ReturnValue<=32 then
   case Returnvalue of
     0 : Raise Exception.Create('内存不足!');
     ERROR_FILE_NOT_FOUND: Raise Exception.Create('没有找到文件!');
     ERROR_PATH_NOT_FOUND: Raise Exception.Create('路径不对!');
     ERROR_BAD_FORMAT : Raise Exception.Create('文件格式不对!');
     else
       Raise Exception.Create('错误:'+IntToStr(Returnvalue)+'!');
   end;
 end;
 
 function ShowSingleMDIForm(MainForm,Form:TForm;FormClass:TFormClass):TForm;
 begin  //显示单一MDI子窗体
  if existsMDIChildWin(MainForm as TForm,FormClass) then
     focusMDIChildWin(MainForm as TForm,Form)
   else begin
     Form:=FormClass.Create(MainForm);
     try
       Form.Show;
     except
       FreeAndNil(Form);
     end;
   end;
   Result:=Form;
 end;
 
 procedure ShowAllChildForm(Form:TForm);
 var i:integer;
 begin  //显示当前窗体的所有子窗体
   for i:=0 to Form.ComponentCount-1 do
     if Form.Components[i].ClassParent=TForm then
       (Form.Components[i] as TForm).Show;
 end;
 
 procedure HideAllChildForm(Form:TForm);
 var i:integer;
 begin  //隐藏当前窗体的所有子窗体
   for i:=0 to Form.ComponentCount-1 do
     if Form.Components[i].ClassParent=TForm then 
       (Form.Components[i] as TForm).Hide;
 end;
 
 //中大方略版权所有
 //www.cnflag.net
 
  ----                 .-'''''-.
              .'         `.
             :             :
            :               :
            :      _/|      :
             :   =/_/      :
              `._/ |     .'
           (   /  ,|...-'
            \_/^\/||__
         _/~  `""~`"` \_
      __/  -'/  `-._ `\_\__
    /     /-'`  `\   \  \-.\ 
 
 孤意望月 血泪无痕 
 
 http://plenilune.top263.net
 http://www.cnflag.net   | 
 
 
 |