Показать сообщение отдельно
  #2  
Старый 01.07.2009, 18:49
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Вроде как простой вариант :

1. Присвоить значение свойству FormStyle главной формы приложения fsStayOnTop;

2. В диалоговом окне создать обработчик события WM_NCHITTEST:

Код:
uses
  Messages,

type
  TOKRightDlg = class(TForm)
    OKBtn: TButton;
    CancelBtn: TButton;
  private
   procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  public
    function Execute : boolean;
  end;

implementation

procedure TOKRightDlg.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
with Message do
   if Result = HTCAPTION then begin
      Result := HTNOWHERE;
   end;
end;


3. В методе Execute (диалога) указать :

Код:
function TOKRightDlg.Execute : boolean;
begin
  Result:=false;

  Application.NormalizeTopMosts; //  ЭТО

  if ShowModal = mrOk then begin
    Result:=true;

  end;
end;

4. Вызывать из главной формы так :

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.BringToFront;
  OKRightDlg.Execute;
end;


Вроде бы работает ...
Ответить с цитированием