Добавлю и я сюда свой вопрос
. Предположим у меня в проекте 2 формы. Вторую вызываю (показываю, она создаётся при старте приложения) по нажатию на кнопку на главной форме в немодальном режиме. Заметил, что есть следующая функциональность - если фокус находится у второй формы, то при нажатии (точнее при последующем отжатии) кнопки Alt фокус временно переходит к главной форме (может быть это следствие того, что там должно быть меню, но у меня там меню никакого нет). И если ещё раз нажать (тут уже именно реакция на нажатие) Alt, то фокус вернётся на вторую форму.
- Код: Выделить всё
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, Unit1, LResources, Unit2
{ you can add units after this };
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
begin
{$I project1.lrs}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses
Unit2;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;
initialization
{$I unit1.lrs}
end.
- Код: Выделить всё
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
type
TForm2 = class(TForm)
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
initialization
{$I unit2.lrs}
end.
Теперь вопрос - кто этими переключениями занимается и как бы это отключить?