У нас есть приложение, которое обрабатывает наше собственное сообщение - временная процедура считывает для них базу данных.Если найдена запись, то мы покажем форму модально.
Это не очень хорошее решение, потому что пользователь может печатать, видеть что-то и т. Д., И форма прерывает эту операцию.
Мне показалось, что я иногда видел, что диалоги, окна отсоединены от приложения, и они, похоже, являются еще одной задачей (панель задач имеет два элемента в это время).Но эти вещи случаются не часто, и они являются ошибками ...
Но тогда я хочу найти способ вызвать то же самое.
Таймер проверяет БД, и если этонашел запись, затем мы покажем форму на заднем плане, что, кажется, является другой задачей, и она мигает, и это периодически меняет заголовок.Когда пользователь щелкает по нему, он сам разрушается и отображает оригинальную форму «сообщения» как модальную.
Можем ли мы сделать это с трюками Win32?И как?
Спасибо: дд
Спасибо за первые ответы.
Я попытался создать простой пример.Вы можете увидеть здесь:
type
TC = class(TPanel)
private
protected
procedure WMActivate(var Message: TWMActivate); message WM_ACTIVATE;
public
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
t : TC;
begin
t := TC.Create(Self);
t.Width := 100;
t.Height := 100;
t.Caption := 'aaaa';
ShowWindow(t.Handle, sw_SHOW);
end;
{ TC }
procedure TC.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := GetDesktopwindow;
end;
procedure TC.WMActivate(var Message: TWMActivate);
begin
if Message.Active <> WA_INACTIVE
then begin
SHowMessage('b');
SHowWindow(Self.Handle, sw_HIDE);
end;
end;
Это работает, но у меня есть одна проблема.Значок задачи совпадает с приложением.Если кто-то случайно щелкнул по нему, возможно, нажал не на тот элемент.Как переопределить иконку подокна?
Спасибо: dd