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

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

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

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

Сообщение smith7 » 13.08.2013 12:26:27

Код: Выделить всё
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, поверх всех окон.
Предполагается, что программа будет находится в трее, и по таймеру проверять содержимое конкретной папки.
Этот диалог будет вызываться, при появлении новых файлов.
smith7
новенький
 
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

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

Сообщение Лекс Айрин » 13.08.2013 14:56:35

smith7, установи у окна флаг модальности.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение smith7 » 14.08.2013 19:46:06

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
smith7
новенький
 
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

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

Сообщение Alex2013 » 16.08.2013 14:58:47

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

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


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 255

Рейтинг@Mail.ru
cron