Форма является дочерней для панелиDelphi , Программа и Интерфейс , MDI приложенияФорма является дочерней для панелиАвтор: Xavier Pacheco { Copyright © 1998 by Delphi 4 Developer's Guide - Xavier Pacheco and Steve Teixeira } unit NewChildFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ChildFrm, ExtCtrls; type TNewChildForm = class(TChildForm) Image1: TImage; private { Private declarations } public { Public declarations } end; var NewChildForm: TNewChildForm; implementation {$R *.DFM} end. { Copyright © 1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira } unit ChildFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus; type TChildForm = class(TForm) private FAsChild: Boolean; FTempParent: TWinControl; 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 overridden 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} 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; end. { Copyright © 1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira } unit MainFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, NewChildFrm; type TMainForm = class(TForm) pnlMain: TPanel; Splitter1: TSplitter; pnlParent: TPanel; btnNormal: TButton; btnChild: TButton; btnFree: TButton; procedure btnNormalClick(Sender: TObject); procedure btnChildClick(Sender: TObject); procedure btnFreeClick(Sender: TObject); private FNewChildForm: TNewChildForm; public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.DFM} procedure TMainForm.btnNormalClick(Sender: TObject); var LocalChildForm: TNewChildForm; begin LocalChildForm := TNewChildForm.Create(Application); try LocalChildForm.ShowModal; finally LocalChildForm.Free; end; end; procedure TMainForm.btnChildClick(Sender: TObject); begin if not Assigned(FNewChildForm) then begin FNewChildForm := TNewChildForm.Create(Application, pnlParent); FNewChildform.Show; pnlParent.Height := pnlParent.Height - 1; end; end; procedure TMainForm.btnFreeClick(Sender: TObject); begin if Assigned(FNewChildForm) then begin FNewChildForm.Free; FNewChildform := nil; end; end; end.Скачать весь проект Программа на Delphi, демонстрирующая создание и управление дочерними формами в основной форме. Проект состоит из трех модулей:
В целом, это проект демонстрирует создание и управление дочерними формами в приложении Delphi. Он также показывает, как переопределять методы базового класса для настройки поведения派生的 классов. Форма является дочерней для панели. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: MDI приложения ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |