Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#10

AW: Modales Fenster in DLL, Taskleiste

  Alt 18. Mär 2015, 15:54
Jetzt weiß ich wieder, warum ich diese Variante verworfen hatte:
Delphi-Quellcode:
type
  TfmPluginSettings = class(TForm)
  [...]
  private
    FParent : HWND;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  public
    constructor Create(AOwner: TComponent; const AParent: HWND = 0); overload;
  [...]
  end;

procedure PluginShowForm(const AhParent: HWND);
var
    fmPluginSettings: TfmPluginSettings;
begin
    fmPluginSettings:= TfmPluginSettings.Create(nil, AhParent);
    try
        fmPluginSettings.Init;
        fmPluginSettings.ShowModal;
    finally
        fmPluginSettings.Free;
    end;
end;

constructor TfmPluginSettings.Create(AOwner: TComponent; const AParent: HWND = 0);
begin
    FParent:= AParent;
    inherited Create(AOwner);
end;

procedure TfmPluginSettings.CreateParams(var Params: TCreateParams);
begin
    inherited;
    Params.WndParent:= FParent;
end;
Bekommt man die Warnung
Zitat:
[Warnung] guiPluginSettings.pas(57): Methode 'Create' verbirgt virtuelle Methode vom Basistyp 'TCustomForm'
irgendwie weg? Oder ginge das nur, wenn man die Warnung für den Bereich abschaltet? Das scheint aber nur für die gesamte Klassendeklaration zu funktionieren, nicht für die Deklaration des Konstruktors selbst. override; kann ich ja nicht verwenden, weil die Methode eine andere Signatur hat.

MfG Dalai
  Mit Zitat antworten Zitat