Что нового

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

CreatoR

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

Код:
#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 473
Репутация
2 403
Хм, при использований TraySetIcon() тот же эффект...
 

SyDr

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

CreatoR

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

CreatoR

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

Код:
#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 473
Репутация
2 403
А значит и 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 473
Репутация
2 403
SyDr [?]
Суть в том, что текст подсказки можно менять только, когда иконка отображается. И это указано в справке.
Хм... тогда я не внимательно читал справку.

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

Yashied

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