![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно вывести сообщение по верх других окон? [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