Ohne diese Zuweisung kann man das Hauptfenster nicht mehr vor das Extrafenster und wenn man das Hauptform minimiert wird automatisch auch die Extraform mit minimiert und das Taskbaricon der ExtraForm entfernt. Aber du hast Recht, ohne die Zuweisung funktioniert die Hintgeschichte so wie sie soll. Ich hätte aber trotzdem gern das Fensterverhalten, wie ich es bekomme, wenn ich den Parent ändere.
[EDIT] Auch die Nutzung von Application.MainFormOnTaskBar unter Delphi 2007 bringt nichts, da auch hier das Parent auf null gesetzt werden muss um das entsprechende Fensterverhalten zu bekommen.
[EDIT 2]
Ich hab eine Lösung gefunden. Man muss einfach eine eigene Hintklasse nutzen, in welcher man mit CreateParams den Parent auf null setzt. Diese Hintklasse stellt mann dann noch Application vor und schon läuft alles
Hier ist der wichtige Teil des Quellcodes - im Anhang befindet sich nochmal das komplette Projekt:
Delphi-Quellcode:
program Project1;
uses
Forms,
Controls,
Unit1 in 'Unit1.pas' {frmMain},
Unit2 in 'Unit2.pas' {frmExtra};
{$R *.res}
type
TFixedHintWindow = class(THintWindow)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TFixedHintWindow.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end;
begin
Application.Initialize;
HintWindowClass := TFixedHintWindow;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.