Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Welcome PlugIn : auf Schließen der Page reagieren

  Alt 9. Nov 2023, 23:40
Keine Ahnung, warum das nicht funktioniert.

Während die Interfaces welcomeplugin und Creator eine direkte Interface-Implementation haben, wird der notifier nochmal abgeleitet:

Delphi-Quellcode:
/// <summary>
  /// Interface for notify Welcome Page Plugin about showing, closing or resizing
  /// </summary>
  INTAWelcomePagePluginNotifier280 = interface(IUnknown)
    ['{B157D07D-3332-41E6-85A9-5E01210F3856}']
    /// <summary>
    /// Event to display main Plugin View (the equivalent of OnShow)
    /// </summary>
    procedure ViewShow(Sender: TWinControl);
    /// <summary>
    /// Event to hide/close the main Plugin View
    /// </summary>
    procedure ViewHide;
    /// <summary>
    /// Event when the main Plugin View size change
    /// </summary>
    procedure ViewResize(AColumnSpan, ARowSpan: Integer);
  end;

  INTAWelcomePagePluginNotifier = interface(INTAWelcomePagePluginNotifier280)
    ['{38B3EA34-D832-48D0-AF84-7449EB28D221}']
  end;
Eigentlich sollte es so sein, dass man beide Interfaces in die Class-Definition aufnehmen kann, funktioniert aber beides nicht (also die Aufnahme funktioniert, nur werden die implementierten Prozeduren nicht aufgerufen).

Edit: Ich vermute mal:

- INTAWelcomePageContentPluginCreator ist als interface von (INTAWelcomePagePlugin) definiert.

Registriert wird aber nur WelcomePagePluginService.RegisterPluginCreator(TWP DemoPlugInCreator.Create);

Wobei TWPDemoPlugInCreator als INTAWelcomePagePlugin definiert ist.

Wenn ich jetzt in die Creator-Klasse eine weitere Ableitung aufnehme (das Notifier-Interface, das von IUnknown abgleitet ist), dann wird das vom Service wohl nicht berücksichtigt.

Geändert von Harry Stahl (10. Nov 2023 um 00:21 Uhr)
  Mit Zitat antworten Zitat