Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизКнопка динамической формы на панели задач. Найти похожие ветки
← →
alienserg (2004-04-22 18:54) [0]Нужно две вещи:
1. чтобы динамически создаваемая форма отображалась кнопкой на панели задач
2. чтобы при клике на эту форму остальные формы приложения не поднимались на передний план. Как переговорные формы в ICQ.
Дали совет:
procedure TDynForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
ExStyle := ExStyle or WS_EX_APPWINDOW;
WndParent := GetDesktopWindow;
end;
end;
процедура объявлена в разделе public создаваемой формы
Абсолютно никаких результатов это не дало.
Помогло
msgForm := TDynForm.Create(self);
SetWindowLong(msgForm.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
//SetParent(msgForm.Handle, GetDesktopWindow);
msgForm.Show;
Но вот WinAPI функцияSetParent(msgForm.Handle, GetDesktopWindow);
работать не хочет, поскольку есть одноименный метод у TCustomForm
Вопрос: почему не срабатывает процедура CreateParams
и как привязать окно не к форме, а к десктопу, чтобы все формы сразу не всплывали при клике, а только кликнутая.
← →
alienserg (2004-04-22 18:54) [0]Нужно две вещи:
1. чтобы динамически создаваемая форма отображалась кнопкой на панели задач
2. чтобы при клике на эту форму остальные формы приложения не поднимались на передний план. Как переговорные формы в ICQ.
Дали совет:
procedure TDynForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
ExStyle := ExStyle or WS_EX_APPWINDOW;
WndParent := GetDesktopWindow;
end;
end;
процедура объявлена в разделе public создаваемой формы
Абсолютно никаких результатов это не дало.
Помогло
msgForm := TDynForm.Create(self);
SetWindowLong(msgForm.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
//SetParent(msgForm.Handle, GetDesktopWindow);
msgForm.Show;
Но вот WinAPI функцияSetParent(msgForm.Handle, GetDesktopWindow);
работать не хочет, поскольку есть одноименный метод у TCustomForm
Вопрос: почему не срабатывает процедура CreateParams
и как привязать окно не к форме, а к десктопу, чтобы все формы сразу не всплывали при клике, а только кликнутая.
← →
WebErr © (2004-04-22 18:57) [1]
> Но вот WinAPI функция
> SetParent(msgForm.Handle, GetDesktopWindow);
> работать не хочет, поскольку есть одноименный метод у TCustomForm
Windows.SetParent(msgForm.Handle, GetDesktopWindow);
Должно сработать.
← →
WebErr © (2004-04-22 18:57) [1]
> Но вот WinAPI функция
> SetParent(msgForm.Handle, GetDesktopWindow);
> работать не хочет, поскольку есть одноименный метод у TCustomForm
Windows.SetParent(msgForm.Handle, GetDesktopWindow);
Должно сработать.
← →
alienserg (2004-04-22 19:02) [2]дополню:
среда D6,Win2003
метод CreateParams специально не вызываю, поскольку в совете было сказано, что данный метод вызывается сам при создании формы.
← →
alienserg (2004-04-22 19:02) [2]дополню:
среда D6,Win2003
метод CreateParams специально не вызываю, поскольку в совете было сказано, что данный метод вызывается сам при создании формы.
← →
alienserg (2004-04-22 19:07) [3]> WebErr © (22.04.04 18:57) [1]
О, теперь не ругается! Но и не работает, как надо. При клике на переговорную форму все равно заодно всплывает и главная форма.
← →
alienserg (2004-04-22 19:07) [3]> WebErr © (22.04.04 18:57) [1]
О, теперь не ругается! Но и не работает, как надо. При клике на переговорную форму все равно заодно всплывает и главная форма.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c