Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.07.2016
Сообщений: 1
1

Отображать время в трее

05.07.2016, 09:54. Показов 588. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Написал код определенного секундомера.
Добавил PopupMenu в трей.
Теперь, при нажатии на кнопку "Время" в меню трея, он отображает текущее значение секундомера, но статично.
А хотелось бы чтобы время обновлялось.Не подскажете, что можно придумать?


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
procedure TForm1.IconMouse(var Msg:TMessage);
Var p:tpoint;
begin
 GetCursorPos(p); // Запоминаем координаты курсора мыши
 Case Msg.LParam OF  // Проверяем какая кнопка была нажата
  WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Действия, выполняемый по одинарному или двойному щелчку левой кнопки мыши на значке. В нашем случае это просто активация приложения}
                   Begin
                    Ic(2,Application.Icon);  // Удаляем значок из трея
                    ShowWindow(Application.Handle,SW_SHOW); // Восстанавливаем кнопку программы
                    ShowWindow(Handle,SW_SHOW); // Восстанавливаем окно программы
                    Update;
                   End;
  WM_RBUTTONUP: {Действия, выполняемый по одинарному щелчку правой кнопки мыши}
   Begin
    SetForegroundWindow(Handle);  // Восстанавливаем программу в качестве переднего окна
 
      PopupMenu1.Popup(p.X,p.Y);
    //TPopupMenu.Popup(p.X,p.Y);  // Возможность добавить PopMenu
    PostMessage(Handle,WM_NULL,0,0);
   end;
 End;
end;
 
Procedure TForm1.OnMinimizeProc(Sender:TObject);
Begin
 PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
End;
 
Procedure TForm1.ControlWindow(Var Msg:TMessage);
Begin
 IF Msg.WParam=SC_MINIMIZE then
  Begin
   Ic(1,Application.Icon);                    // Добавляем значок в трей
   ShowWindow(Handle,SW_HIDE);                // Скрываем программу
   ShowWindow(Application.Handle,SW_HIDE);  // Скрываем кнопку с TaskBar'а
 End
 else inherited;
End;
 
Procedure TForm1.Ic(n:Integer;Icon:TIcon);
Var Nim:TNotifyIconData;
begin
 With Nim do
  Begin
   cbSize:=SizeOf(Nim);
   Wnd:=Self.Handle;
   uID:=1;
   uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
   hicon:=Icon.Handle;
   uCallbackMessage:=wm_user+1;
  szTip := 'Подсчет времени';
  End;
 Case n OF
  1: Shell_NotifyIcon(Nim_Add,@Nim);
  2: Shell_NotifyIcon(Nim_Delete,@Nim);
  3: Shell_NotifyIcon(Nim_Modify,@Nim);
 End;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
 ShowMessage('Текущий проект '+ CurrentProject);
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
  ShowMessage('Текущее Время '+ IntToStr(hour)+':'+IntToStr(min)+':'+IntToStr(sec));
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2016, 09:54
Ответы с готовыми решениями:

Не отображать интерфейс приложения, а показать только иконку в трее
Я хочу сделать прогу таким образом: 1. При её запуске появляется ТОЛЬКО иконка в трее, NotifyIcon....

Отображать текущее время на форме
киньте скрипт счетчика для программы.Спасибо

На время длительной операции отображать заставку
Когда нужно совершить операции с несколькими сотнями (тысячами) записей, в программе появляется...

Как в Label отображать текущее время компьютера
Вопрос следующий. Есть компонента label. В нее вбивается текущая дата и время через событие...

5
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
05.07.2016, 10:40 2
Цитата Сообщение от AngryArt Посмотреть сообщение
он отображает текущее значение секундомера, но статично.
В выпадающем сообщении. Да?
А ты сделай форму всплывающую, в которой и будет отображение с таймером.
0
BOGG ART
05.07.2016, 22:16
  #3

Не по теме:

Проект прикрепите.

0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
05.07.2016, 23:50 4
Цитата Сообщение от AngryArt Посмотреть сообщение
procedure TForm1.N2Click(Sender: TObject);
begin
* ShowMessage('Текущее Время '+ IntToStr(hour)+':'+IntToStr(min)+':'+IntToStr(sec));
end;
Попробуй вот эту часть кода убрать с N2Click и на таймер поставить.
0
82 / 82 / 39
Регистрация: 17.02.2016
Сообщений: 464
06.07.2016, 07:21 5
NIKOLAYY, и получим тучу окон с временем

тсу нужно время в трее по аналогии с часами винды
0
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
06.07.2016, 08:55 6
Не факт.
А часы в трее - это если что вовсе не иконка, а отдельное окошко.
0
06.07.2016, 08:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2016, 08:55
Помогаю со студенческими работами здесь

Формат даты в DbGrid, как не отображать время?
В Access поле дата (Краткий формат даты), маска ввода (00.00.0000;0;_) В Access дата отображается...

На протяжении всей игры отображать игровое время
Вобщем, дело такое. Мне надо, чтобы на протяжении всей игры отображалось игровое время(за секунду в...

Как правильно хранить и отображать дату и время?
MVC 4 C# Есть модель данных, в которой требуется хранить дату и время для каждого объекта. В базе...

MVC4 В цикле отображать текущее время сервера
Доброго времени дня ! Не могу решить простую проблему: есть частичное представление, в котором...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru