के बजाय मेरा कस्टम डेल्फी फॉर्म (डीएलएल से) खोलना संभव है, मुझे अपने घटकों (थोडा वनक्लिक इंस्टॉलर) के साथ एक जटिल फ़ॉर्म बनाना होगा, और इसे इसके प्रतिस्थापन के रूप में उपयोग करना होगा मानक InnoSetup विज़ार्ड। क्या यह संभव है?इनोसेटअप: मानक सेटअप विज़ार्ड
मेरा फॉर्म डीएलएल में रखा गया है, और यह डीएलएल इनोसेटअप प्रक्रिया के लिए उपलब्ध होगा।
यह कैसे मैं ऐसा करने की कोशिश की है:
library OneClickWizard;
uses
SysUtils,
Classes,
Wizard in 'Wizard.pas' {FormWizard};
{$R *.res}
exports
CreateWizardForm,
DestroyWizardForm;
begin
end.
डेल्फी रूप
डेल्फी DLL कोड
unit Wizard;
interface
type
TFormWizard = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormWizard: TFormWizard;
procedure CreateWizardForm(AppHandle: THandle); stdcall;
procedure DestroyWizardForm; stdcall;
implementation
{$R *.dfm}
procedure CreateWizardForm(AppHandle: THandle);
begin
Application.Handle := AppHandle;
FormWizard := TFormWizard.Create(Application);
FormWizard.Show;
FormWizard.Refresh;
end;
procedure DestroyWizardForm;
begin
FormWizard.Free;
end;
InnoSetup स्क्रिप्ट (आईएसएस)
[Setup]
;Disable all of the default wizard pages
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyMemo=true
DisableReadyPage=true
DisableStartupPrompt=true
DisableWelcomePage=true
DisableFinishedPage=true
[Files]
Source:"OneClickWizard.dll"; Flags: dontcopy
[Code]
procedure CreateWizardForm(AppHandle: Cardinal);
external '[email protected]:OneClickWizard.dll stdcall';
procedure DestroyWizardForm;
external '[email protected]:OneClickWizard.dll stdcall';
procedure InitializeWizard();
begin
CreateWizardForm(MainForm.Handle);
end;
स्क्रीन पर दिखाई देने वाला फॉर्म, लेकिन यह मेरे इनपुट पर प्रतिक्रिया नहीं करता है। ऐसा लगता है कि यह मुख्य संदेश चक्र से बाहर है। यह सही तरीके से कैसे करें?
शर्म की बात है! निश्चित रूप से, मुझे ShowModal – Andrew