1 Востаннє редагувалося javascriptIsLife (19.01.2023 12:11:25)

Тема: Win + ↓

Комбінація клавіш Win + стрілка вниз призведить до того що форма ужимається до найменш можливого розміру і тулиться до панелі задач в район системного лотка.
https://i.postimg.cc/y3ZXR441/d7.gif

2

Re: Win + ↓

А до чого тут Pascal/Delphi?

Подякували: leofun011

3

Re: Win + ↓

Яка це версія Делфі?

4

Re: Win + ↓

Delphi XE2.

5

Re: Win + ↓

Таке може бути якщо це не єдина форма в програмі, і ви перекривали якісь методи класу TForm чи його предків. Без коду точно сказати неможливо.

6

Re: Win + ↓

Ну це якась ідіотія. Майже впевенений що це не так. Як відловити клавіатурну кобмінацію Win + ↓ щоб у відповідь згорнути форму?

7

Re: Win + ↓

В новоствореній формі такого немає. Форма одна єдина.

8

Re: Win + ↓

Якщо форма одна, і веде себе таким чином, то можна хіба що зайти в Project > View source і погратися зі значенням Application.MainFormOnTaskbar. Хоча це дивно, я не пам'ятаю, щоб колись таке бачив на проекті з однією формою.
Якщо форм дві чи більше, то це очікувана поведінка, бо без додаткової кнопки на таскбарі, ви не змогли б розгорнути вікно, після того, як воно повністю сховається під час мінімізації.
Створити кнопки для окремих форм допоможе такий клас:

type
  TStandaloneForm = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

...

{ TStandaloneForm }

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

Форми, які повинні мати свої кнопки на панелі задач просто успадкуйте від TStandaloneForm:

type
  TForm2 = class(TStandaloneForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Подякували: leofun011

9

Re: Win + ↓

Application.MainFormOnTaskbar = False тому що при запусуку програми програма повинна згортатися в системний лотоr при запусуку і при мінімізації. Зміна Application.MainFormOnTaskbar не допомогла. Мені ліниво розибратися тому я прибрав кнопку згортання з рамки вікна залишивши леше кпноку закриття і воно перестало реагувати на комбінацію Win + ↓, але якщо достатньо швидко клацати по піктограмі вікна в панелі задач, то воно все одно згорнеться.