Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Спрятать часы в Tray

Delphi , Рабочий стол , TrayBar

Спрятать часы в Tray


function ShowTrayClock(bValue: Boolean) : Boolean; 
var 
  TrayWnd, TrayNWnd, ClockWnd: HWND; 
begin 
  TrayWnd  := FindWindow('Shell_TrayWnd', nil); 
  TrayNWnd := FindWindowEx(TrayWnd, 0, 'TrayNotifyWnd', nil); 
  ClockWnd := FindWindowEx(TrayNWnd, 0, 'TrayClockWClass', nil); 
  Result := IsWindow(ClockWnd); 
  if Result then 
  begin 
    ShowWindow(ClockWnd, Ord(bValue)); 
    PostMessage(ClockWnd, WM_PAINT, 0, 0); 
  end; 
end; 

// Example to hide they clock: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
   ShowTrayClock(Boolean(0)); 
end;  

Here's a translation of the provided text into Russian:

Код, написанный на Delphi, используется для скрытия или отображения часов в системном трее.

Краткое описание функций:

  1. Функция ShowTrayClock принимает булевое значение как аргумент, которое определяет, нужно ли отобразить или скрыть часы.
  2. Она использует функции Windows API FindWindow, FindWindowEx и IsWindow для поиска окна системного трея, окна области уведомлений и окна часов соответственно.
  3. Если окно часов найдено, она отображает или скрывает окно в зависимости от значения булевого аргумента с помощью функции ShowWindow.
  4. Функция PostMessage используется для отправки сообщения WM_ PAINT окну часов для его перерисовки после отображения или скрытия.

Процедура Button1Click в классе формы вызывает ShowTrayClock с значением False, чтобы скрыть часы системного трея при нажатии кнопки.

Некоторые улучшения, которые можно сделать:

  • Обработка ошибок: код не проверяет ошибки, которые могут возникнуть при поиске окон. Хорошо бы добавить обработку ошибок с помощью функций Windows API, таких как GetLastError или возвращаемое значение функции IsWindow.
  • Читаемость кода: можно улучшить именование переменных и форматирование для более читаемого кода.
  • Альтернативное решение: вместо ручного поиска окна часов можно использовать функцию Windows API SH_ShowClock, которая может отобразить или скрыть часы системного трея.

Пример использования функции SH_ShowClock:

function ShowTrayClock(bValue: Boolean): Boolean;
begin
  Result := SH_ShowClock(bValue);
end;

// Пример скрытия часов:
procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowTrayClock(False);
end;

В этом коде функция SH_ShowClock используется вместо ручного поиска окна часов. Это делает код более компактным и понятным.

В статье описывается функция, позволяющая спрятать или отобразить часы в трее Windows, а также пример использования этой функции для скрытия часов на форме Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TrayBar ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:16:40/0.0054469108581543/1