![]() |
TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Hallo zusammen,
nach einem Delphiversionswechsel will ich nun die enthaltene Standardkomponente TTaskBar nutzen. Dabei möchte ich zur Laufzeit das Vorschaubild wechseln (Musikplayer: es soll das jeweilige Cover angezeigt werden). Ich habe schon einiges gesucht aber speziell dazu nichts gefunden. Vielen Dank schon mal vorab für Hilfestellung! |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
(war falsch)
|
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Ich weiß nicht ob es TTaskbar kann.
Aber den "Bug" der alten Delphi-Versionen kannst du ausnutzen. Nicht MainForm und Application in der Taskbar anzeigen, sondern ein unsichtbares Dummyfenster, auf welchem du dein Cover malst. Bei MainFormOnTaskbar=False wird dort ein leeres Fenster angezeigt, weil die interne MessageOnlyForm im Application nichts drauf hat. |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
|
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Hallo zusammen,
@KodeZwerg, danke, die ganzen Infos kenne ich schon, sie helfen aber nicht bei diesem Problem. Zum jetzigen Stand nehme ich an, dass ich erstens die Tab-Eigenschaft
Delphi-Quellcode:
setzen muss und dann in dem Event
CustomizedPreview
Delphi-Quellcode:
das Bild zuweisen muss.
OnThumbPreviewRequest
Dazu nutze ich folgenden Code:
Delphi-Quellcode:
Das funktioniert prinzipiell erst mal, aber ich sehe nur den oberen linken Teil des Bildes.
procedure Tfrm_Main.Taskbar1ThumbPreviewRequest(Sender: TObject; APreviewHeight, APreviewWidth: Integer; PreviewBitmap: TBitmap);
begin PreviewBitmap.PixelFormat := pf32bit; PreviewBitmap.Width := APreviewWidth; PreviewBitmap.Height := APreviewHeight; PreviewBitmap.Canvas.FillRect(TRect.Create(0, 0, APreviewWidth, APreviewHeight)); PreviewBitmap.Canvas.BrushCopy(Rect(0, 0, cxImage1.Width, cxImage1.Height), cxImage1.Picture.Bitmap, Rect(0, 0, cxImage1.Width, cxImage1.Height), $00FFFFFF); end; Wie kann ich denn das ganze Bild anzeigen? |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich denke er meint das, was "Aero Peek" macht. (wenn es aktiviert ist)
Das Vorschaubild des Fensters, da über den Control-Buttons (Taskleisten-Schaltflächen). Anhang 48818 Einige Mediaplayer zeigen da gern nur das Cover der abgespielten CD an. [edit] Jupp, klingt nach ThumbPreview. [/edit] Im winzigen Taskleistenbutton das Cover anzeigen ... da erkennt man doch nichts. Außerdem würde es dann reichen, wenn er dann einfach nur ein TIcon erstellt und das dort anzeigt. |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Hallo zusammen,
Danke für die Tipps. Habe nun eine Lösung erarbeitet die zu funktionieren scheint. Meine Festlegung dabei ist, dass die anzuzeigenden Cover quadratisch sind und ich deswegen eine feste Konstante dem
Delphi-Quellcode:
zuordne.
PreviewBitmap.Width
Delphi-Quellcode:
:dp:
procedure Tfrm_Main.Taskbar1ThumbPreviewRequest(Sender: TObject; APreviewHeight, APreviewWidth: Integer; PreviewBitmap: TBitmap);
var R : TRect; begin PreviewBitmap.PixelFormat := pf32bit; PreviewBitmap.Width := 80; PreviewBitmap.Height := APreviewHeight; PreviewBitmap.Canvas.FillRect(TRect.Create(0, 0, APreviewWidth, APreviewHeight)); R := TRect.Create(0, 0, PreviewBitmap.Width, PreviewBitmap.Height); PreviewBitmap.Canvas.StretchDraw(R, cxImage1.Picture.Bitmap); end; |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Ja sorry, ich dacht wegen Namensgebung wären die Links passend aber gut das es nun klappt was Du vorhattest! :thumb:
|
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
Hat jemand eine Idee wie man in der Vorschau alle sichtbaren auch die modalen Fenster anzeigt?
Es ist auch möglich modale Fenster mit Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; auch in der Taskbar anzuzeigen, diese werden dann aber als einzelne Einträge in der Taskleiste angezeigt. Ich würde gerne auf dem Thumbnail/Vorschau des Hauptmenüs auch die modalen Fenster die vom Hauptmenü aus geöffnet wurden sehen können. Ich hätte gedacht vielleicht mit TTaskBar und OnThumbPreviewRequest selber eine Vorschau zu erstellen, das Event wird aber nur einmal ausgelöst und dann nicht mehr. |
AW: TTaskBar: zur Laufzeit ein Vorschau-Bild zuweisen
![]() ![]() ![]() WS_EX_APPWINDOW WS_EX_TOOLWINDOW WS_EX_NOACTIVATE ![]() 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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz