Подтвердить что ты не робот

Как я могу получить кнопки панели задач для форм, которые не являются основной формой?

Как вы создаете форму на панели задач в Delphi? Например, в Firefox, когда вы открываете страницу в новом окне, она создает другое окно на панели задач без создания нового процесса. В настоящее время приложение Delphi открывает новую форму при нажатии кнопки, но на панели задач все еще есть только одна вещь, поэтому вы не можете alt-tab между основной формой и формой, которая создается, когда кнопка щелкнул. Как изменить его, чтобы новая форма появилась с новой кнопкой на панели задач? Мой текущий код выглядит следующим образом:

procedure Form1ButtonClick(Sender: TObject);
begin
    Form2.Show;
end;

Я общался с CreateWindowEx, но в идеале я хотел бы найти более простое решение, чем прямое использование Windows API.

4b9b3361

Ответ 1

Если я правильно понимаю, что вы хотите, вы можете показать свои вторичные формы на панели задач, переопределив процедуру CreateParams, как описано в Свернуть дочерние формы, не зависящие от в главной форме delphi.about.com, например:

interface

type
  TMyForm = class(TForm)
  ...
  protected
    procedure CreateParams(var Params: TCreateParams) ; override;
  ...

implementation

procedure TMyForm.CreateParams(var Params: TCreateParams) ;
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := 0;
end;

Ответ 2

если не использовать эту строку лучше в порядке формы:

Params.WndParent := 0;