⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 childfrm.pas

📁 软件类别: 数据库 软件大小: 2.60M 运行环境: Win9xNT/2000/XP 一套车辆管理系统,此版本为商业版,大家一定用的着。
💻 PAS
字号:
unit ChildFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, Menus,math,db,DBGrids;

type

  TChildForm = class(TForm)
    PChild: TPanel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure WMWindowPosChanging(var msg:TWMWindowPosChanging);
    message WM_WINDOWPOSCHANGING;
    procedure FormResize(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    FAsChild: Boolean;
    FTempParent: TWinControl;
    procedure  CentalPanel;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure Loaded; override;
  public
    constructor Create(AOwner: TComponent); overload; override;
    constructor Create(AOwner: TComponent; AParent: TWinControl); reintroduce; overload;

    // The method below must be overriden to return either the main menu
    // of the form, or nil.
    function GetFormMenu: TMainMenu; virtual; abstract;
    function CanChange: Boolean; virtual;
  end;

var
  ChildForm: TChildForm;

implementation

{$R *.DFM}
procedure  TChildForm.CentalPanel;
begin

 if PChild.Width < ClientWidth then
  PChild.Left := (ClientWidth - PChild.Width ) div 2
  else
  PChild.Left := 0;
 if PChild.Height <ClientHeight then
  PChild.Top :=(ClientHeight - PChild.Height ) div 2
  else
  PChild.Top := 0;

end;
procedure TChildForm.WMWindowPosChanging(var msg:TWMWindowPosChanging);
var
  CaptionHeight:integer;
begin
   CaptionHeight := GetSystemMetrics(SM_CYCAPTION);
   msg.WindowPos ^.cx :=Max(msg.WindowPos ^.cx,PChild.Width+20);
   msg.WindowPos ^.cy :=Max(msg.WindowPos ^.cy,PChild.Height+20+CaptionHeight);
   inherited;
end;

constructor TChildForm.Create(AOwner: TComponent);
begin
  FAsChild := False;
  inherited Create(AOwner);
end;

constructor TChildForm.Create(AOwner: TComponent; AParent: TWinControl);
begin
  FAsChild := True;
  FTempParent := aParent;
  inherited Create(AOwner);
end;

procedure TChildForm.Loaded;
begin
  inherited;
  if FAsChild then
  begin
    align := alClient;
    BorderStyle := bsNone;
    BorderIcons := [];
    Parent := FTempParent;
    Position := poDefault;
  end;
end;

procedure TChildForm.CreateParams(var Params: TCreateParams);
Begin
  Inherited CreateParams(Params);
  if FAsChild then
    Params.Style := Params.Style or WS_CHILD;
end;

function TChildForm.CanChange: Boolean;
begin
  Result := True;
end;

procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action :=cafree;
end;

procedure TChildForm.FormDestroy(Sender: TObject);
begin
 ChildForm :=nil;
end;

procedure TChildForm.FormResize(Sender: TObject);
begin
  CentalPanel;
end;

procedure TChildForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if not (ActiveControl is TDBGrid)  then
 case Key of
    VK_ESCAPE: Close;
    VK_RETURN:
      begin
        if Shift = [ssShift] then
          Perform(WM_NEXTDLGCTL, 1, 0)
        else
          Perform(WM_NEXTDLGCTL, 0, 0);
      end;
    VK_F4, VK_DOWN:
      if screen.ActiveControl is TCustomEdit then
        if (Key = VK_F4) or ((Key = VK_DOWN) and (Shift = [ssAlt])) then
          TCustomEdit(screen.ActiveControl).Perform(WM_LBUTTONDBLCLK, 0, 0);
  end;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -