Что нового

[Баг] TraySetState сбивает TraySetToolTip

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Модифицированный пример из справки:

Код:
#NoTrayIcon

TraySetToolTip("This is my new tooltip text!")
TraySetState()

While 1
	Sleep(10)	; Idle loop
WEnd

Exit

поменял местами всего две строчки (Tray*).

После применения TraySetState(), tooltip в трее сбрасывается на значение по умолчанию (имя скрипта).
Либо это бага в TraySetState(), либо нужно обновить документацию, хотя я склоняюсь всё же к первому варианту, т.к не очень удобно следить за этим в скрипте.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Хм, при использований TraySetIcon() тот же эффект...
 

SyDr

Сидра
Сообщения
651
Репутация
158
1) А имеет ли смысл функция TraySetToolTip в случае, если значка не сущесвует?
2) "The tooltip text is only changed when the tray icon is visible!" из неё же
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
имеет ли смысл функция TraySetToolTip в случае, если значка не сущесвует?
Не в этом дело, мне например нужно прятать иконку и позже отображать её. ToolTip приходится при этом задавать каждый раз по новой. Да и как быть с TraySetIcon(), иконку иногда нужно менять, при этом ещё нужно менять и ToolTip.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Получается что нужно сначала отобразтиь иконку, а лишь потом задавать текст:

Код:
#NoTrayIcon

TraySetState()
TraySetToolTip("This is my new tooltip text!")
TraySetState()

While 1
	Sleep(10)	; Idle loop
WEnd


Значит TraySetState(2) просто напросто удаляет иконку вместе со всеми вытикающими. Справка всё же должна обновиться на этот счёт, как минимум это:

2 = Destroys/Hides the tray icon
сразу образуется впечатление что иконка прячется, хотя на самом деле она удаляется, и про то что текст и иконку нужно задавать по новой при созданий (отображений судя по справке) иконки тоже в справке на указано.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
А значит и TraySetIcon() тут ни при чём, он просто вызывает TraySetState(1) если иконка ещё не создана.
Вобщем бага (дизинформация) в документаций, как в TraySetState так и в TraySetIcon.
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
сразу образуется впечатление что иконка прячется, хотя на самом деле она удаляется, и про то что текст и иконку нужно задавать по новой при созданий (отображений судя по справке) иконки тоже в справке на указано.
Не-не-не :smile:

Код:
TraySetToolTip("This is my new tooltip text!")
TraySetState(2)
TraySetState()

While 1
    Sleep(10)   ; Idle loop
WEnd

Exit


Суть в том, что текст подсказки можно менять только, когда иконка отображается. И это указано в справке.

Саму же иконку можно менять, даже если она скрыта:
Код:
#NoTrayIcon
TraySetIcon('warning')
TraySetState()

While 1
    Sleep(10)   ; Idle loop
WEnd

Exit
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
Суть в том, что текст подсказки можно менять только, когда иконка отображается. И это указано в справке.
Хм... тогда я не внимательно читал справку.

Саму же иконку можно менять, даже если она скрыта
Вот почему TraySetText не может так себя вести? А то приходится задавать текст при необходимости отобразить иконку, а не в начале скрипта.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Значит получается, что это не бага, а фишка.
 
Верх