Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
 Аватар для Star
3 / 3 / 0
Регистрация: 04.11.2008
Сообщений: 79

Свернуть приложение в трей

13.11.2008, 22:31. Показов 5578. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как сделать так, чтобы при щелчке на кнопку программа сворачивалась в трей?! Очень надо! Заранее спасибо!

Добавлено через 1 час 54 минуты 27 секунд
И вот еще дополнительный вопрос: как сделать оператор типа if... and... then... если в if указано свойство Text, например, Edita. Как например реакция на ввод пароля. Я сделал вот так: if Form1.Edit1.Text:='99999' and Form1.Edit2.Text:='99999' then ShowMessage ('Привет!');
У меня ничего не получилось! Подскажите please!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2008, 22:31
Ответы с готовыми решениями:

Свернуть приложение при запуске в трей
Procedure TForm1. WindowMessage (Var Msg:TMessage); Begin IF Msg.WParam=SC_MINIMIZE then Begin ActionIcon (1,Application.Icon); //...

Свернуть приложение в трей при нажатии на кнопку Minimize
Скажите пожалуйста как сделать так например я нажал на кнопку minimize и чтобы она сразу свернулся в трей а не на taskbar. заранее спасибо

Свернуть в трей
Использую библиотеку Jedi - JvTrayIcon1 Activate = true; TvRestoreDbClick = True; Иконка после того как закрываю приложение висит в...

8
 Аватар для Delphiist
1230 / 66 / 16
Регистрация: 23.04.2007
Сообщений: 127
14.11.2008, 20:25
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Подскажите пожалуйста, как сделать так, чтобы при щелчке на кнопку программа сворачивалась в трей?! Очень надо! Заранее спасибо!
Для начала объявим переменную:
Code
1
2
var
   NotifyIconData: TNotifyIconDataA;
После заполним ее данными, например в событии OnCreate формы:
Code
1
2
3
4
5
6
7
8
9
   with NotifyIconData do begin
      cbSize := SizeOf(NotifyIconData);
      Wnd := Form1.Handle;
      uID := 1;
      uFlags := NIF_MESSAGE or  NIF_ICON or NIF_TIP;
      uCallbackMessage := WM_USER + 1;
      hIcon := Application.Icon.Handle;
      szTip := 'Всплывающая подсказка';
   end;
При нажатии кнопки сворачиваем, скрываем приложение и помещаем иконку в трей:
Code
1
2
3
4
5
6
procedure TForm1.Button1Click(Sender: TObject);
begin
   Application.Minimize;
   ShowWindow(Application.Handle, SW_HIDE);
   Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
Далее объявим процедуру для обработки нашего сообщения (CallbackMessage):
Code
1
procedure MyMessage(var Msg: TMessage); message WM_USER + 1;
И сама процедура:
Code
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.MyMessage(var Msg: TMessage);
begin
   if Msg.WParam = 1 then
      // Восстанавливаем по двойному щелчку по иконке
      if Msg.LParam = WM_LBUTTONDBLCLK then begin
         Application.Restore;
         Application.BringToFront;
         ShowWindow(Application.Handle, SW_SHOW);
         Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
      end;
end;


По второму вопросу:

Вместо присваивания ":=" поставить просто равенство "=" и каждое из условий заключить в скобки:
Code
1
2
3
if (Form1.Edit1.Text='99999') and
   (Form1.Edit2.Text='99999')
then ShowMessage('Привет!');
1
 Аватар для Star
3 / 3 / 0
Регистрация: 04.11.2008
Сообщений: 79
14.11.2008, 22:57  [ТС]
Огромное спасибо!Пожалуйста помоги еще с одним! Не можешь привести список номеров клавиш? Ну я знаю что стрелки вверх, вправо, влево, вниз обозначаются как Key=39, key=38,key=40,key=37. Скажи как обозначить клавиши, начиная с Delete и кончая Enterом в отсеке калькулятора! Буквы не затрагивать!

И еще: напиши пожалуйста код, в котором выбирается случайное положение курсора на событии онкрит формы!
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
14.11.2008, 23:31
Вот, думаю хватит:

backspase-8
tab-9
enter=13
shift-16
ctrl-17
alt-18
pause-19
caps lock-20
esc-27
пробел-32
page up-33
page down-34
end-35
home-36
insert-45
delete-46
от 0 до 9-- от 48 до 57
windows(левая)-91
windows(правая)-92
num lock-144
scroll lock-145
:-186
+-187
<-188
минус(-) -189
>-190
?-191
~-192
[-219
\-220
]-221

Добавлено через 3 минуты 0 секунд
кстати, буквы и цифры имеют номера схожие с таблицей кодировки символов

Добавлено через 4 минуты 51 секунду
в отсеке калькулятора
минус(-)-109
плюс(+)-107
деление(/)-111
умножить(*)-106
del-110

Добавлено через 1 минуту 24 секунды
остальное ищи в инете на тему "виртуальные коды клавиш"

Добавлено через 3 минуты 33 секунды
Вот как переместить курсор;

Delphi
1
2
3
4
5
procedure TForm1.FormClick(Sender: TObject);
begin
randomize;
setcursorpos(random(1024),random(768));
end;

getcursorpos(x,y)-возвратит координаты мыши в данный момент.(x,y)-полученная координата
2
 Аватар для Star
3 / 3 / 0
Регистрация: 04.11.2008
Сообщений: 79
15.11.2008, 10:28  [ТС]
А еще можно спросить? Как сделать так, чтобы при нажатии кнопки текст в Edit "просканировался" на наличие цифр, и если цифр нет выдалось сообщение "Цифр нет", а если есть, то "Цифры присутствуют"?

Добавлено через 1 час 11 минут 56 секунд
Если надо, я тут по материалам из одного сайта сделал программку, но без исходников! Только компилированный образец! Эта программа определяет название клавиши по ее номеру, который вводит пользователь. Но если поле, где должно быть название не изменилось, значит, такой клавиши нет! Вот здесь программа:


Если что, говорите кому надо определять клавиши по названиям, доработаю.
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
15.11.2008, 13:02
Цитата Сообщение от Star Посмотреть сообщение
А еще можно спросить? Как сделать так, чтобы при нажатии кнопки текст в Edit "просканировался" на наличие цифр, и если цифр нет выдалось сообщение "Цифр нет", а если есть, то "Цифры присутствуют"?

Есть два варианта, можно ограничить ввод букв:

Delphi
1
2
3
4
5
6
7
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
 if  not (Key in ['0'..'9',char(8)]) then
    begin
      Key := #0;
  end;
end;


а можно просто написать, сообщение цифры есть выдаст программа только если в едите только цифры, если же смесь цифр и букв, то выдаст сообщение, что цифр нету

Delphi
1
2
3
4
5
6
7
8
var i:integer;
...
try
i:=StrToInt(edit1.text);
ShowMessage('Цифры есть');
except
ShowMessage('Цифр нету');
end;
1
 Аватар для Ranger
12 / 12 / 2
Регистрация: 03.10.2008
Сообщений: 437
10.02.2009, 20:28
Цитата Сообщение от Delphiist Посмотреть сообщение
Для начала объявим переменную:
Code
1
2
var
   NotifyIconData: TNotifyIconDataA;
Выдается ошибка: Undeclared identifier: 'TNotifyIconData'
0
Почетный модератор
 Аватар для Humanoid
11560 / 4354 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
10.02.2009, 20:51
Цитата Сообщение от Ranger
Выдается ошибка: Undeclared identifier: 'TNotifyIconData'
Uses ShellAPI
0
 Аватар для proplayer
6 / 6 / 1
Регистрация: 05.01.2009
Сообщений: 82
10.02.2009, 22:09
Цитата Сообщение от Star Посмотреть сообщение
Огромное спасибо!Пожалуйста помоги еще с одним! Не можешь привести список номеров клавиш? Ну я знаю что стрелки вверх, вправо, влево, вниз обозначаются как Key=39, key=38,key=40,key=37. Скажи как обозначить клавиши, начиная с Delete и кончая Enterом в отсеке калькулятора! Буквы не затрагивать!

И еще: напиши пожалуйста код, в котором выбирается случайное положение курсора на событии онкрит формы!
Клавиша, Десятичное число, Шестнадцатеричное число, Символическое имя, Сравнение по
функции ord
F1 112 $70 VK_F1
F2 113 $71 VK_F2
F3 114 $72 VK_F3
F4 115 $73 VK_F4
F5 116 $74 VK_F5
F6 117 $75 VK_F6
F7 118 $76 VK_F7
F8 119 $77 VK_F8
F9 120 $78 VK_F9
F10 121 $79 VK_F10
пробел 32 $20 VK_SPACE
BackSpace 8 $8 VK_BACK
Tab 9 $9 VK_TAB
Enter 13 $0D VK_RETURN
Shift 16 $10 VK_SHIFT
Ctrl 17 $11 VK_CONTROL
Alt 18 $12 VK_MENU
CapsLock 20 $14 VK_CAPITAL
Esc 27 $1B VK_ESCAPE
Insert 45 $2D VK_INSERT
PageUp 33 $21 VK_PRIOR
PageDown 34 $22 VK_NEXT
End 35 $23 VK_END
Home 36 $24 VK_HOME
← 37 $25 VK_LEFT
↑ 38 $26 VK_UP
→ 39 $27 VK_RIGHT
↓ 40 $28 VK_DOWN
Delete 46 $2E VK_DELETE
PrintScreen 44 $2C VK_SNAPSHOT
ScrollLock 145 $91 VK_SCROLL
Pause 19 $13 VK_PAUSE
NumLock 144 $90 VK_NUMLOCK
0,) 48 $30 ord('0')
1 ! 49 $31 ord('1')
2 @ 50 $32 ord('2')
3 # 51 $33 ord('3')
4 $ 52 $34 ord('4')
5 % 53 $35 ord('5')
6 ^ 54 $36 ord('6')
7 & 55 $37 ord('7')
8 * 56 $38 ord('8')
9 ( 57 $39 ord('9')
` ~ 192 $C0
- _ 189 $BD
= + 187 $BB
[ { 219 $DB
] } 221 $DD
; : 186 $BA
' " 222 $DE
\ | 220 $DC
, < 188 $BC
. > 190 $BE
/ ? 191 $BF
a,A 65 $41 ord('A')
b,B 66 $42 ord('B')
c,C 67 $43 ord('C')
d,D 68 $44 ord('D')
e,E 69 $45 ord('E')
f,F 70 $46 ord('F')
g,G 71 $47 ord('G')
h,H 72 $48 ord('H')
i,I 73 $49 ord('I')
j,J 74 $4A ord('J')
k,K 75 $4B ord('K')
l,L 76 $4C ord('L')
m,M 77 $4D ord('M')
n,N 78 $4E ord('N')
o,O 79 $4F ord('O')
p,P 80 $50 ord('P')
q,Q 81 $51 ord('Q')
r,R 82 $52 ord('R')
s,S 83 $53 ord('S')
t,T 84 $54 ord('T')
u,U 85 $55 ord('U')
v,V 86 $56 ord('V')
w,W 87 $57 ord('W')
x,X 88 $58 ord('X')
y,Y 89 $59 ord('Y')
z,Z 90 $5A ord('Z')
На правой клавиатуре при выключенной клавише NumLock
0 96 $60 VK_NUMPAD0
1 97 $61 VK_NUMPAD1
2 98 $62 VK_NUMPAD2
3 99 $63 VK_NUMPAD3
4 100 $64 VK_NUMPAD4
5 101 $65 VK_NUMPAD5
6 102 $66 VK_NUMPAD6
7 103 $67 VK_NUMPAD7
8 104 $68 VK_NUMPAD8
9 105 $69 VK_NUMPAD9
* 106 $6A VK_MULTIPLY
+ 107 $6B VK_ADD
- 109 $6D VK_SUBTRACT
. 110 $6E VK_DECIMAL
/ 111 $6F VK_DIVIDE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2009, 22:09
Помогаю со студенческими работами здесь

Свернуть прогу в трей
нашел компонент TextTrayIcon не пойму как с ним работать. А может кто другой способ знает для того что бы прога в трей сворачивалась?

Свернуть в трей. CoolTrayIcon
Здравствуйте, Как свернуть окно в трей с помощью CoolTrayIcon при нажатии на кнопку &quot;Свернуть&quot;?

Как свернуть прогу в трей?
Народ как свернуть прогу в трей ну соответственно вытаскивать оттуда и проводить всякие опирации над ней из трея??

При запуске свернуть в трей
Application.Minimize; Screen.Forms.Hide Пытался свернуть вот так - но выдается ошибка - cannot change visible in OnShow or...

Свернуть программу в трей. Ошибка.
Люди вообщем пишу программу которая получает информацию с сайта и выводит ее в трее при наведении мышки на значок, а так же при нажатии на...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru