发信人: 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 |
|