Мигание Кнопки В Taskbar С Помощью Flashwindowex

Тема в разделе "Delphi - Компоненты", создана пользователем Shouldercannon, 5 янв 2015.

  1. Shouldercannon

    Shouldercannon Well-Known Member

    Регистрация:
    25 май 2010
    Сообщения:
    125
    Симпатии:
    0
    Доброго времени суток!
    Нашёл пример с запуском и остановкой мигания кнопки в TaskBar. И столкнулся с проблемами.
    1. После остановки мигания кнопкой стоп, кнопка формы в TaskBar хоть и не мигает, но продолжает светиться (замечено если произвести остановку в момент мигания).
    2. Как с помощью таймера зациклить мигание и затем остановить?
     

    Вложения:

    • FlashButton.zip
      Размер файла:
      9,2 КБ
      Просмотров:
      3
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Похоже Ваши проблемы в нежелании читать хелпы... <_<
    Ваш Button2Click замораживает моргание а не отменяет. Посто задайте условие для прекращения моргания.
    Код (Delphi):
    var
    fl: FLASHWINFO; // глобальная переменная

    procedure TFormMain.Button1Click(Sender: TObject);
    begin
    ZeroMemory(@fl,SizeOf(fl)); // очистить структуру
    fl.cbSize := SizeOf(fl);
    fl.hwnd := Self.Handle;
    fl.dwFlags := FLASHW_ALL; // тоже самое что FLASHW_CAPTION or FLASHW_TRAY;
    fl.uCount := 100; // после 99 "мыргов" - моргание прекратится
    fl.dwTimeout := 0; // моргание со стандартной частотой курсора
    FlashWindowEx(fl);
    end;

    procedure TFormMain.Button2Click(Sender: TObject);
    begin
    // структура была заполнена в Button1Click.
    // тут просто изменяем набор флагов
    fl.dwFlags := FLASHW_ALL or FLASHW_TIMERNOFG;
    FlashWindowEx(fl);
    end;
    Не понял вопрос... это типа - где взять таймер? <_<
     
  3. Shouldercannon

    Shouldercannon Well-Known Member

    Регистрация:
    25 май 2010
    Сообщения:
    125
    Симпатии:
    0
    Имел ввиду как это моргание через таймер пустить. Чтобы моргало хоть вечность, пока не произойдёт нужное действие.
    Решено. TTImer не нужен.
    Код (Text):
    fl.dwFlags := FLASHW_ALL or FLASHW_TIMER;
    но без
    Код (Text):
    fl.uCount
    иначе эффекта не будет.
     
Загрузка...

Поделиться этой страницей