|
基類窗體要實現的需求包括:控件窗體的字體,權限控制,控制子窗體的顯示范圍,以及其它一些通用方法的聲明。。。。。。
通用方法可聲明為VIRTUAL方法,以允許從它繼承的子窗體
可以OVERRIDE這些方法,達到多態(tài)的效果。
unit uBaseForm;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TBaseForm = class(TForm) procedure FormClose(Sender: TObject; var Action: TCloseAction); private FRights: string; procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;//控制子窗體的顯示范圍 public property Rights: string read FRights write FRights;//權限控制 end;
var BaseForm: TBaseForm;
implementation
{$R *.dfm}
procedure TBaseForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end;
procedure TBaseForm.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); begin with Message.MinMaxInfo^ do begin ptMaxPosition.X := Screen.WorkAreaLeft; {Left position when maximized} ptMaxPosition.Y := Application.MainForm.Height; {Top position when maximized} ptMaxTrackSize.X := Screen.Width; {Maximum width} ptMaxTrackSize.Y := screen.WorkAreaHeight - Application.MainForm.Height; {Maximum height} end; Message.Result := 0; {Tell windows you have changed minmaxinfo} inherited; end;
end.
|