Форум: "Начинающим";
Текущий архив: 2012.01.08;
Скачать: [xml.tar.bz2];
Внизпередний план Найти похожие ветки
← →
Gu (2011-09-29 08:58) [0]есть несколько функций для вывода окна на передний план
ShowWindow(Application.MainForm.Handle,SW_RESTORE);
SetActiveWindow(Application.MainForm.Handle);
SetForegroundWindow(Application.MainForm.Handle);
но на передний план окно выводится в редких случаях (win7x64ent), в основном только кнопка на панели задач моргает. раньше помница какойто параметр был в виндах типа "запрещать окнам забирать фокусировку" и кнопка мигала, никто не знает как это отключить хотябы на время или может еще какие функции есть?
вот это тоже не помогает:
procedure AppGoToForeground;
var
Info: TAnimationInfo;
Animation: Boolean;
begin
// Проверяем, включена ли анимация для окон
Info.cbSize := SizeOf(TAnimationInfo);
Animation := SystemParametersInfo(SPI_GETANIMATION, SizeOf(Info), @Info, 0) and
(Info.iMinAnimate <> 0);
// Если включена, отключаем, чтобы не было ненужного мерцания
if Animation then
begin
Info.iMinAnimate := 0;
SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;
// Если приложение не минимизировано, минимизируем
if not IsIconic(Application.Handle) then Application.Minimize;
// Восстанавливаем приложение. При этом оно автоматически выводится
// на передний план
Application.Restore;
// Если анимация окон была включена, снова включаем её
if Animation then
begin
Info.iMinAnimate := 1;
SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;
end;
← →
Омлет © (2011-09-29 09:17) [1]http://www.transl-gunsmoker.ru/2010/10/blog-post_25.html
← →
DVM © (2011-09-29 10:10) [2]
> Gu (29.09.11 08:58)
Вот так попробуй http://www.swissdelphicenter.ch/torry/showcode.php?id=261
Несмотря на все дебаты вокруг метода, работает нормально уже многие годы.
Еще есть SwitchToThisWindow()
← →
Gu (2011-09-29 11:25) [3]
> Омлет © (29.09.11 09:17) [1]
это уже видел. там из всей толпы только функция с маусом работает, но как то стремно - курсор на другие приложение кликает попутно
+
> Еще есть SwitchToThisWindow
тоже странно себя ведет, окно вытаскивается на передний план через раз, а вместе с ним все окна которые под ним были.
> Вот так попробуй
интересно, ща займусь пробованием...
← →
RWolf © (2011-09-29 13:32) [4]а зачем вам выводить окно неактивного приложения на передний план?
чтобы мешать пользователю печатать?
для уведомлений есть специальная область — трей. за подробностями юзер сам сходит, щелчком мыши.
← →
Омлет © (2011-09-29 13:47) [5]> RWolf ©
Обычно это делается при предотвращении запуска второй копии приложения - уже запущенный экземпляр должен выползти на передний план.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.01.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c