• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 484
  • Last Modified:

Windows 7 Taskbar API: How to add entries for a taskbar button for multiple windows

When I run my Delphi application, Windows 7 shows a taskbar button in the Windows taskbar. When the user opens a new form in my application, I want that the taskbar button for my application is visually changed and when the user clicks on it a popup appears with a list of the windows (see picture).

Windows taskbar button

So basically the standard Windows behaviour like in Outlook when you have multiple emails open at the same time.

I searched the web and found a few "solutions", but they don't work for me. Maybe I overlook something really easy but I cannot find it. I attached my sample that does not work and I would like somebody to fix it.

When you run the program, click on the button to open a new window. Now the taskbar button should have changed to indicate that there is a new window for this app but it doesn't do that.

I would be pleased if someone can change the program so that it works.

Regards,
Dirk.
Test2.zip
0
dirkil2
Asked:
dirkil2
1 Solution
 
Sinisa VukCommented:
Remove all code except that from Button click event. Add these lines:
...
private
  procedure CreateParams(var Params: TCreateParams); override;
...

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  //set form ext. params
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  //set parent for your form
  Params.WndParent := GetDesktopWindow;
end;

Open in new window


... similar is here... http://www.swissdelphicenter.ch/torry/showcode.php?id=775
0
 
dirkil2Author Commented:
Absolutely perfect!! Thank you very much for your help which made my day!
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now