说明:此程序是在Delphi 10.3.3上编写和测试.
unit uMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
RzButton, RzTabs, uBaseFrame;
type
TRzTabSheet = class(RzTabs.TRzTabSheet)
public
FrameClassName: String;
Frame: TBaseFrame;
end;
TMainForm = class(TForm)
PageControl: TRzPageControl;
TabSheet1: TRzTabSheet;
TabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
ButtonRun: TRzButton;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure PageControlChange(Sender: TObject);
procedure ButtonRunClick(Sender: TObject);
procedure PageControlPaintCardBackground(Sender: TObject; ACanvas: TCanvas;
ARow: Integer; const ARect: TRect; var Handled: Boolean);
procedure PageControlPaintTabBackground(Sender: TObject; ACanvas: TCanvas;
ATabIndex: Integer; const ARect: TRect; var Handled: Boolean);
private
procedure WmAfterShow(var Msg: TMessage); message WM_USER;
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
begin
ReportMemoryLeaksOnShutDown := Tr

该程序演示了在Delphi10.3.3中如何创建一个主窗体,包含一个页签控件(TRzPageControl),每个页签对应一个不同的帧表单(TFrame)。每个TRzTabSheet类扩展以存储帧表单的类名和实例,当切换页签时,根据指定的类名动态创建或获取帧表单,并执行相应的Run方法。此外,还有一个运行按钮,点击后会触发当前活动页签上的帧表单的Run方法。页面背景在切换时会改变颜色,提供了自定义的绘制方法。
955

被折叠的 条评论
为什么被折叠?



