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

uazero

Member
Joined
Jan 12, 2005
Messages
26
Reaction score
22
В приложении, которое я разрабатывал, использовался код, который отображал значок каждого открытого окна на панели задач. В 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 ?
 

ingram

blackbery
Joined
Jun 10, 2017
Messages
86
Reaction score
1
"Hi there, just had to do a similar migration recently. From what I understand, the main issue you'll face is with Delphi's RTL (Runtime Library), so be prepared to spend some time tweaking your code to make it compatible with the new version."
 
Top