Перекомпиляция приложения написанного на Delphi 10 в Delphi 11

uazero

Местный
Регистрация
12 Янв 2005
Сообщения
24
Реакции
22
Credits
40
В приложении, которое я разрабатывал, использовался код, который отображал значок каждого открытого окна на панели задач. В Delphi 7 и т.д. до BDS 2007 был требуемый эффект. После перехода на BDS 2007 эффект поменялся. На панели задач стало отображаться два значка главного окна, как я понимаю, один из значков был значком приложения, второй - значком главного окна. Сам код такой:

в файле проекта .DPR
program XXXX;

uses
Forms,
SysUtils,
Windows,
Main in 'Main.pas' {MainForm},
...

begin
Application.Initialize;

SetWindowLong(
Application.Handle,
GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) and (not WS_EX_APPWINDOW) or WS_EX_TOOLWINDOW);

Application.Title := 'XXXX';
....

В модуле каждой формы
добавляем секцию
protected
procedure CreateParams(var Params: TCreateParams); override;

реализация

procedure TForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW and not WS_EX_TOOLWINDOW;
Params.WndParent := GetDesktopWindow;
end;

Может кто нибудь знает другой код, который будет давать нужный результат в BDS 2007 ?