Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2015, 16:52   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
Вопрос Мигание Кнопки В Taskbar С Помощью Flashwindowex

Доброго времени суток!
Нашёл пример с запуском и остановкой мигания кнопки в TaskBar.
Код:
..
var
fl: FLASHWINFO;
...
begin
  ZeroMemory(@fl, SizeOf(fl)); // Очистить структуру
  fl.cbSize := SizeOf(fl); // Размер структуры FLASHWINFO (для отслеживания версий)
  fl.hwnd := Self.Handle; // Дескриптор окна
  fl.dwFlags := FLASHW_ALL; // Набор флагов, задающий режим использования функции FlashWindowEx. Тоже самое, что FLASHW_CAPTION or FLASHW_TRAY;
  fl.uCount := 100; // Количество инверсий заголовка окна и/или кнопки на Панели задач. После 99 "мыргов" - моргание прекратится
  fl.dwTimeout := 0; // Время между изменениями состояния заголовка окна и/или кнопки на Панели задач. Если значение равно нулю, используется системное значение таймаута. Моргание со стандартной частотой курсора
  FlashWindowEx(fl);
end;
...
begin
  // Тут просто изменяем набор флагов
  fl.dwFlags := FLASHW_ALL or FLASHW_TIMERNOFG;
  FlashWindowEx(fl);
end;
Возник вопрос, как зациклить процесс мигания, чтобы он был бесконечным. Не очень хороший вариант и с ограничением в 999999
Код:
fl.uCount := 999999;
Shouldercannon вне форума Ответить с цитированием
Старый 07.01.2015, 17:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
begin
  fl.dwFlags := FLASHW_ALL or FLASHW_TIMER; // Набор флагов, задающий режим использования end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2015, 21:47   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

а бесконечный цикл while(1) do не подойдёт?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 08.01.2015, 01:13   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
а бесконечный цикл while(1) do не подойдёт?
А работать когда будем?
northener вне форума Ответить с цитированием
Старый 08.01.2015, 07:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
не подойдёт?
Нет. Не подойдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2015, 08:21   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

ну что тогда, подключать таймер и в нём мигать?
Код:
SetTimer(wnd,1,1000,nil);//установка таймера
...
$0113:
begin
    fl.dwFlags := FLASHW_ALL or FLASHW_TIMER;
end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 08.01.2015, 11:27   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Как насчет прочитать документацию и не нести пургу?
waleri вне форума Ответить с цитированием
Старый 08.01.2015, 11:35   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
подключать таймер и в нём мигать?
FLASHW_TIMER это и делает без лишних таймеров пользователя )
Я потому это и предложил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2015, 14:13   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
FLASHW_TIMER это и делает без лишних таймеров пользователя )
Я потому это и предложил.
Бинго! Только сразу убираем
Код:
fl.uCount
иначе не будет эффекта.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
taskbar Windows 7 Алексей_C Компоненты Delphi 0 27.08.2012 20:46
Мигание кнопки SpeedButton Valera Общие вопросы Delphi 9 03.08.2010 15:03
Можно ли выключать компьютер с помощью красной кнопки сетевого фильтра? Лукманов Александр Свободное общение 62 03.03.2009 21:27
Как перевести WinXP в ждучий режим с помощью кнопки на форме? Bill Gates Win Api 3 05.01.2008 12:14
сокрытие кнопки в Taskbar Alar Компоненты Delphi 0 30.10.2006 12:29