Карта сайтаСсылкиКонтакты

Показать форму без фокуса

PDF Печать
Статьи

Чтобы показать форму без фокуса, выполните следующее:


// В классе TCustomForm, в секции protected добавьте

     procedure ShowParam(var param : integer);dynamic;
     {
     Эта процедура вызывается, когда форма должна быть показана,
     теперь Вы должны переопределить этот метод и написать свой вариант
     для ShowWindow API. Например
     }
     function InShowFocus : boolean ;dynamic;
     // эта функция определяет будет ли иметь форма фокус после отображения или нет.

 // и этот код

procedure TCustomForm.ShowParam(var param: Integer);
const
   ShowCommands: array[TWindowState] of Integer =
     (SW_SHOWNORMAL, SW_SHOWMINNOACTIVE, SW_SHOWMAXIMIZED);
begin
   param := ShowCommands[FWindowState];
end;

function TCustomForm.InShowFocus: Boolean;
begin
   Result := True;
end;
//-------------------------------------------------------
 // теперь в Вашем классе можете использовать Unit2;

interface

 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, Buttons, ExtCtrls;

type
   TForm2 = class(TForm)
   private
     { Private declarations }
   protected
     procedure ShowParam(var param: Integer); override;
     function InShowFocus: Boolean; override;
   public
     { Public declarations }
   end;

var
   Form2: TForm2;

implementation

{$R *.dfm}

 { TForm2 }

function TForm2.InShowFocus: Boolean;
begin
   Result := False;
end;

procedure TForm2.ShowParam(var param: Integer);
begin
   inherited;
   param := SW_SHOWNOACTIVATE;
end;

end.

 

Добавить комментарий


Защитный код
Обновить