MessageBox поверх всех окон

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
smith7
новенький
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

MessageBox поверх всех окон

Сообщение smith7 »

Код: Выделить всё

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, LCLType;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}
procedure DisplayMessageBox;
var
  Reply, BoxStyle: integer;
begin
  BoxStyle := MB_ICONQUESTION + MB_YESNO;
  Reply := Application.MessageBox('имя файла отправленного на печать', 'Печатать файл?', BoxStyle);
  if Reply = idYes then
    Application.MessageBox('Yes       ', 'Reply', MB_ICONINFORMATION)
  else
    Application.MessageBox('No         ', 'Reply', MB_ICONHAND);
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  DisplayMessageBox;
end;

end.


Обязательно! Нужно сделать отображение MessageBox, поверх всех окон.
Предполагается, что программа будет находится в трее, и по таймеру проверять содержимое конкретной папки.
Этот диалог будет вызываться, при появлении новых файлов.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

smith7, установи у окна флаг модальности.
smith7
новенький
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

Сообщение smith7 »

http://wiki.freepascal.org/Dialog_Examples
ничего про модальность MessageBox не написано.
Константы, типа
MB_APPLMODAL = $00000000;
MB_SYSTEMMODAL = $00001000;
MB_TASKMODAL = $00002000;
Не работают.

http://clip2net.com/clip/m62821/1376495 ... p-24kb.png
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Можно через список активных окон по таймеру менять свойства окна проверяя заголовок текущего окна и менять его свойства ...(Но это как-то "по китайски")

А я сделал проще написал свой аналог MessageBox (правда по другой причине - нужен был скрол текста ) с динамическим созданием формы, и уж "своей" форме можно уставить любые атрибуты включая и FormStyle:= fsStayOnTop;
Зы
Упрощенная версия уже тут :arrow:
viewtopic.php?p=71381#p71381
Ответить