【delphi开源代码栏目提醒】:以下是网学会员为您推荐的delphi开源代码-MenuOper.pas,希望本篇文章对您学习有所帮助。
unit MenuOper;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls;
type
TMenuOper = class(TInterfacedObject)
procedure ShowForm(PageControl: TPageControl; FormClass: TFormClass; Caption: string);
procedure CloseSheet(TabSheet: TTabSheet);
function FindEqualForm(FormClass: TFormClass; PageControl: TPageControl): Boolean;
end;
implementation
{ TMenuOper }
{-------------------------------------------------------------------------------
过程名: TMenuOper.CloseSheet
作者: Administrator
日期: 2007.06.26
参数: TabSheet: TTabSheet
返回值: 无
功能: 关闭TabSheet
-------------------------------------------------------------------------------}
procedure TMenuOper.CloseSheet(TabSheet: TTabSheet);
begin
if TabSheet.Name <> 'MainPage' then
TabSheet.Free;
end;
{-------------------------------------------------------------------------------
过程名: TMenuOper.ShowForm
作者: Administrator
日期: 2007.06.26
参数: PageControl: TPageControl; FormClass: TFormClass
返回值: 无
功能: 创建窗口并显示在TabSheet上
-------------------------------------------------------------------------------}
procedure TMenuOper.ShowForm(PageControl: TPageControl;
FormClass: TFormClass; Caption: string);
var Form: TForm;
TabSheet: TTabSheet;
begin
if FindEqualForm(FormClass, PageControl) then Exit;
TabSheet := TTabSheet.Create(PageControl);
TabSheet.PageControl := PageControl;
TabSheet.Caption := Caption;
Form := FormClass.Create(TabSheet);
Form.Parent := TabSheet;
TabSheet.Tag := Integer(Form);
PageControl.ActivePage := TabSheet;
Form.Left:=PageControl.Left;
Form.Top:=PageControl.Top;
Form.Show;
end;
function TMenuOper.FindEqualForm(FormClass: TFormClass; PageControl: TPageControl): Boolean;
var i: Integer;
begin
Result := False;
for i := PageControl.PageCount - 1 downto 1 do
if TForm(PageControl.Pages[i].Tag) is FormClass then
Result := True;
end;
end.