Es hat einige Tage gedauert, aber ich habe doch noch eine Lösung gefunden.
Ist nicht mal so kompliziert, hat aber einige Versuche gebraucht...
Es funktioniert jetzt zumindest korrekt in allen Varianten.
Delphi-Quellcode:
procedure Register;
var
OTAWizard: IOTAWizard;
begin
OTAWizard := TOTAToolWizard.Create;
RegisterPackageWizard(OTAWizard);
OTAWizard := TQuickSearchExpert.Create;
RegisterPackageWizard(OTAWizard);
TQuickSearchForm.CreateDockForm;
OTAWizard := TFullSearchExpert.Create;
RegisterPackageWizard(OTAWizard);
TFullSearchForm.CreateDockForm;
uoMenues.Initialize;
(BorlandIDEServices as IOTAKeyboardServices).AddKeyboardBinding(uoBindings);
(BorlandIDEServices as IOTAKeyboardServices).AddKeyboardBinding(TDupLineBinding.Create);
end;
function InitWizard(const BorlandIDEServices: IBorlandIDEServices; RegisterProc: TWizardRegisterProc;
var Terminate: TWizardTerminateProc): Boolean stdcall;
var
OTAWizard: IOTAWizard;
begin
OTAWizard := TOTAToolWizard.Create;
RegisterProc(OTAWizard);
OTAWizard := TQuickSearchExpert.Create;
RegisterProc(OTAWizard);
TQuickSearchForm.CreateDockForm;
OTAWizard := TFullSearchExpert.Create;
RegisterProc(OTAWizard);
TFullSearchForm.CreateDockForm;
uoMenues.Initialize;
(BorlandIDEServices as IOTAKeyboardServices).AddKeyboardBinding(uoBindings);
(BorlandIDEServices as IOTAKeyboardServices).AddKeyboardBinding(TDupLineBinding.Create);
Result := True;
end;
...
initialization
finalization
TQuickSearchForm.RemoveDockForm;
TFullSearchForm.RemoveDockForm;
end.