Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно вывести сообщение по верх других окон? [D6, XP]


17Landgraf ©   (2007-01-17 13:40:00) 

Добрый день Уважаемые участники форума!

Как можно вывести сообщение по верх других окон?
Поясню: У меня есть программка, сидит в трее, мне надо чтоб раз в день она  выдавала сообщение (напоминание). Т.е если я работаю в Word-е, надо чтоб я увидел это сообщение (т.е. оно должно появиться по верх остальных окон).

Я знаю есть API функция: BringWindowToTop

Если использовать такой код:

begin
  ShowMessage('Test');
  BringWindowToTop(FindWindow('TMessageForm','Project'));
end;


то он не работает. Как я понял, когда выскакивает окно с сообщением,все управление передается именно этому окну. И функция срабатывает только, когда управление передается назад основному окну. Но формы с сообщением уже нет :) Соответственно FindWindow возвращает ноль.

Подскажите решение этой задачи?


Amoeba   (2007-01-17 16:47:00) [1]

Никак.


Джо   (2007-01-17 16:44:00) [2]

>
>
> [5] 17Landgraf   (17.01.07 16:32)
> Вот здесь возник еще один вопросик:
> Как можно изменить шрифт в тексте сообщения: сделать его
> жирным?

Сделать свою форму. См. [2].


17Landgraf   (2007-01-17 16:32:00) [3]

Вот здесь возник еще один вопросик:
Как можно изменить шрифт в тексте сообщения: сделать его жирным?
Сообщение выводится вот так:
MessageBox(0, 'Текст', 'Заголовок', MB_OK or MB_SYSTEMMODAL);


17Landgraf   (2007-01-17 13:59:00) [4]

Спасибо всем откликнувшимся ;-)


Сергей М.   (2007-01-17 13:46:00) [5]

MessageBox(0, 'Текст', 'Заголовок', MB_OK or MB_SYSTEMMODAL);


Джо   (2007-01-17 13:46:00) [6]


> Подскажите решение этой задачи?

Создай свой форму, выставь FormStyle := fsStayOnTop и вот текст модуля:

unit Unit2;

interface

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

type
 TForm2 = class(TForm)
   Label1: TLabel;
   Button1: TButton;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

// Используй вместо ShowMessage
procedure ShowTopWindow (const Msg: string);

implementation

{$R *.dfm}

procedure ShowTopWindow (const Msg: string);
var
 Dlg: TForm2;
begin
 Dlg := TForm2.Create(nil);
 try
   Dlg.Caption := Msg;
   Dlg.ShowModal
 finally
   Dlg.Free
 end;
end;

end.

И всех делов :)


Джо   (2007-01-17 13:46:00) [7]

>   Dlg.Caption := Msg;

Dlg.Label1.Caption


Наверх

Титульная страница Поиск, карта сайта Написать письмо