Einzelnen Beitrag anzeigen

lxo

Registriert seit: 30. Nov 2017
260 Beiträge
 
Delphi 12 Athens
 
#11

AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen

  Alt 10. Aug 2022, 12:03
MSDN-Library durchsuchenSetWindowLong, bzw. bereits in MSDN-Library durchsuchenCreateWindowEx oder eben Delphi-Referenz durchsuchenTCustomForm.CreateParams
WS_EX_APPWINDOW
WS_EX_TOOLWINDOW
WS_EX_NOACTIVATE

https://docs.microsoft.com/en-us/win...-window-styles

Wie man in der Hilfe rauslesen kann, gibt es meherere Eigenschaften, um zu steuern, ob oder ob nicht eine Form in der Taskleiste sichtbar sein soll. (lässt sich auch mannigfaltig in der SuFu entdecken)


Delphi-Quellcode:
procedure TYourForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

// bzw. alternativ später auch noch in
procedure TYourForm.CreateWindowHandle(const Params: TCreateParams);
procedure TYourForm.CreateWnd;
Damit bekomme ich aber ein weiteres Thumbnail.
Wenn die Form nicht modal ist, ist es auch in Ordnung dann kann man ja auch auf beide zugreifen.

Wird jedoch ein modales Fenster geöffnet möchte gerne nur ein Thumbnail haben, da ja auch nur ein Fenster aktiv ist.
Nur das aktive würde mir schon reichen.

Ich hab es hinbekommen, wenn man die TTaskBar einfach nur erzeugt mit dem aktiven Form als Owner dann ist es eigentlich schon das, was ich möchte.
Nur leider bis zur zweiten Ebene, wenn ich im modalen Fenster dann nochmal eins modal öffne wird das nicht mehr angezeigt in der Taskleiste.

Alternative wäre auch CustomizedPreview und die Events OnThumbPreviewRequest, OnWindowPreviewItemRequest zu verwenden.
Da bekomme ich es aber nicht hin mit GetFormImage ein Bitmap in PixelFormat 32bit zu kriegen ohne das die Farben verfälschen.
  Mit Zitat antworten Zitat