我想编一个小型广告表单,让我可以轻松地将其实施到我的其他任何项目中。 广告表单应显示在我的真实项目/应用程序启动之前。在Mainform之前添加表单
有些要求必须得到满足:
- 易于实施任何项目,没有任何麻烦 - 添加表单/单位和几乎所有负责剩下的照顾。
- 我的应用程序的MainForm的(Application.MainForm)应在运行时后,我的广告形式来创建已成功关闭(或要求已得到满足)
- 只增加1个单位/形式应该是落实不够
我迄今取得的进展是:
- 我创造出隐藏在空的主窗体(Application.MainForm)
- 然后,我创建一个MODALFORM,这是实际的广告表格 - 右侧modalresult,免费我的我们lcomescreen并进入“主应用程序”
- 我需要从我的项目中删除所有自动创建表单
- 我打开一些参数我的项目的源文件中的程序,包括应用程序的主窗口(源)
- 不幸的是我要补充各单位/表格的项目,而不只是一个
这是我到目前为止(递归路径问题?):
项目来源:
program MyTestProgram;
uses
Vcl.Forms,
Windows,
uMainWindow in 'uMainWindow.pas' {Form1},
uEmptyForm in '..\AdProject\uEmptyForm.pas' {AdEmptyMainForm},
uWelcomeScreen in '..\AdProject\uWelcomeScreen.pas' {WelcomeScreen}; // shouldn't be here
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Run;
LoadAdWindow('Title of my app', uMainWindow.TForm1, uMainWindow.Form1);
end.
EmptyForm单位:
unit uEmptyForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TAdEmptyMainForm = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
AdEmptyMainForm: TAdEmptyMainForm;
procedure LoadAdWindow (Appname: string; InstanceClass: TComponentClass; var Reference);
implementation
{$R *.dfm}
uses
uWelcomeScreen; // Has to be added to the project, otherwise it doesn't detect the unit in the same path as this unit
procedure LoadAdWindow (Appname: string; InstanceClass: TComponentClass; var Reference);
begin
Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;
Application.Title := Appname;
Application.CreateForm(TAdEmptyMainForm, AdEmptyMainForm);
with uWelcomeScreen.TWelcomeScreen.Create(Application.MainForm) do
begin
Caption := Appname;
if ShowModal <> 1337 then ExitProcess(0);
Free;
end;
Application.CreateForm(InstanceClass, Reference);
end;
end.
欢迎屏幕成功后,应用程序关闭。 这是否正确吗? 任何帮助表示赞赏!
您可以在创建主窗体时调用该广告窗体。 – William
@William为什么我之前没有想到这个? * facepalm *编辑:附加单位呢?我想保持表格/单元分开,但我需要将所有表格添加到我的项目中,而不是仅为1 –
为什么?您可以在其他项目上添加广告表单并执行相同的逻辑 – William