Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

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

AW: Modales Fenster in DLL, Taskleiste

  Alt 17. Mär 2015, 16:41
Mittlerweile habe ich eine Lösung gefunden, auf die mich dieser Beitrag bei StackOverflow gebracht hat.

Delphi-Quellcode:
type
  TfmPluginSettings = class(TForm)
  [...]
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  [...]
  end;

implementation

var hwndTotalCmd: HWND;

procedure TfmPluginSettings.CreateParams(var Params: TCreateParams);
begin
    inherited;
    Params.WndParent:= hwndTotalCmd;
end;

procedure PluginShowForm(const AhParent: HWND);
var
    fmPluginSettings: TfmPluginSettings;
begin
    hwndTotalCmd:= AhParent;
    fmPluginSettings:= TfmPluginSettings.Create(nil);
    try
        fmPluginSettings.Init;
        fmPluginSettings.ShowModal;
    finally
        fmPluginSettings.Free;
    end;
end;
Gibt's da noch eine Möglichkeit, die unitglobale Variable zu vermeiden und stattdessen z.B. in eine Feldvariable von TfmPluginSettings zu verwandeln? Das CreateParams wird ja nicht direkt gerufen, aber sofort ausgelöst, wenn der Konstruktor arbeitet, z.B. durch ein inherited Create; . AFAIK sollte man es ja vermeiden, vor dem inherited eines Konstruktors irgendwas anderes zu machen.

MfG Dalai
  Mit Zitat antworten Zitat