<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK:  Меню в трее, создание под подменю.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8847&amp;type=atom" />
	<updated>2013-11-01T04:21:59Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8847</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76777#p76777" />
			<content type="html"><![CDATA[<p>Да, про 5000 строк это лишнее, просто я думал что ошибка из-за того что я инициализирую меню раньше чем было что определено, т.е. метки.<br />Оказалось дело совсем в другом.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-11-01T04:21:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76777#p76777</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76776#p76776" />
			<content type="html"><![CDATA[<p>А что это меняет? Я возразил на вполне конкретный ваш аргумент по поводу 5000 строк.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-11-01T04:07:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76776#p76776</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76775#p76775" />
			<content type="html"><![CDATA[<p>Ну так я описал же в чем, в названии метки для субменю, метка должна оканчиваться на <strong>Submenu</strong> </p><div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p>Ошибка была не в названии и не в расположении метки, а в постфиксе <strong>Submenu</strong> ... надо писать МояМетка<strong>Submenu</strong> и не надо после него писать <strong>return</strong> А в справке об этом ни слова или я плохо смотрел.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-11-01T03:19:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76775#p76775</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76774#p76774" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p>Я бы дал, но около 5000 строк... не думаю, что тебе захочется разбираться.</p></blockquote></div><p>А зачем эти 5000 строк? Если без них меню работает, значит всё с ним нормально и проблема в другом месте.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-11-01T03:01:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76774#p76774</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76770#p76770" />
			<content type="html"><![CDATA[<p>О как я ошибался - ошибка крылось в ином...<br />Использовав <em>device the Intellect</em> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Я получил рабочий скрипт для подменю.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>goto leave_TrayASOS

fnTrayASOS()
{
global ;Установки трея для скрипта
      
  mcTray := &quot;ASOS_RES\Os_Settings_Gear.ico&quot;
    Menu1  := &quot;Справка&quot;
    Menu2  := &quot;Набор клавиши&quot;
      sMenu21 := &quot;Основные клавиши&quot;
      sMenu22 := &quot;Управление плеером&quot; 
    Menu3  := &quot;Выход&quot;
    
      Menu, tray, NoStandard                ; меню в трее будет не стандартным - своим
      Menu, Tray, Icon, %McTray%             ; Устанавливаем иконку
      
      ;Добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu1%, HelpKey1     
      ;Добавляем пункт меню ввиде подменю по ПКМ  
      KeysSubmenu:          
        Menu, KeysSubmenu, add, %sMenu21%, KeyMain
        Menu, KeysSubmenu, add, %sMenu22%, KeyPlayrs
      Menu, tray, add, %Menu2%, :KeysSubmenu        
      
      ;Добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu3%, lExitProc     
      
      ; Задаём свою выноску &quot;балон&quot;
      Menu, tray, tip, `n Обработка клавиш для: `n  - приложений `n  - игр `n  - и т.д. `n `n
      Menu, tray, default, %Menu1%  ; Этот пункт меню по умолчанию двойной щелчёк ЛКМ по иконке в трее для его вызова
      Menu, Tray, Click, 1          ; Переназначаем двойной на одиночный ЛКМ
 
Return
}

leave_TrayASOS:</code></pre></div></div></div><p> Ошибка была не в названии и не в расположении метки, а в постфиксе <strong>Submenu </strong></p><div class="quotebox"><blockquote><p>Постфикс - это значимая часть слова, которая находится после окончания или формообразовательного суффикса и служит для образования слов.</p></blockquote></div><p> <br />надо писать МояМетка<strong>Submenu </strong> и не надо после него писать <strong>return</strong> И в справке об этом ни слова или я плохо смотрел.</p><p>Аналогично, как пишется GUI</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>Gui, start:New , -resize -maximizebox -minimizebox +caption -Border +AlwaysOnTop +Owner
 Gui, start:font, s12
 Gui, start:Add, Text, x40 y40 w300 h280 +Center, %vTxt%
 Gui, start:Show, x400 y100 h100 w400
 sleep 3000
Return

startGuiClose:
 Gui, Destroy
Return</code></pre></div></div></div><p> Создав элемент/окно командой Gui, <strong>start</strong>:New.... все обработчики начинаются со слова start, как <strong>start</strong>GuiClose<br />Про GUI то я знал, но не думал что тут тоже самое, правда ключевое слово - окончание, то же странно.</p><br /><p>P.S. </p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Желательно бы код, который запустить можно было и узреть эту ошибку...</p></blockquote></div><p> Я бы дал, но около 5000 строк... не думаю, что тебе захочется разбираться. Вот главный (main) файл - </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>;-----Инициализация
; Скрипт не выгружается
#Persistent
; Запрет повторного запуска
#SingleInstance

;=============Секция подключения файлов
#Include c:\AHK\Include\                  ;  Устанавливаем путь к общим файлам
#Include PathUses.ahk
#Include C:\AHK\AllSystemOS\              ; Устанавливаем путь к файлам скрипта
#Include ResourceASOS.ahk                 ; Установка ресурсов скрипта
#Include VarScript.ahk                    ; Переменные/константы для скрипта и начальная инициализация
#Include HelpKey.ahk                      ; Справка по клавишам
#Include Games.ahk                        ; Управление играми
#Include AppStartUp.ahk                   ; Запуск приложений
#Include RunCon.ahk                       ; Запуск с консоли
;Тут писать новые подключаемые файлы к скрипту.
#Include EventManager.ahk                 ; Менеджер событий
#Include InitASOS.ahk                     ; Инициализатор скрипта. Обязательно последняя в списке подключения!!!!
#Include TrayASOS.ahk
;=============Секция инициализации скрипта
Gosub InitASOS        ;Старт иницализации
fnPathUses()          ;Иницализация путей
fnResource()          ;Иницализация ресурсов скрипта
fnOverallSection()    ;Иницализация блока переменных
fn_arMainKeyInit()
; Тут дописывать нужные иницализации.
fnTrayASOS()          ;Cменить иконку скрипта  и меню скрипта. Обязательно тут перед завершение инициализации скрипта!
Gosub lCloseInitASOS  ;Завершение иницализации. Обязательно последний вызов после всех!
return
;============= </code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-31T22:13:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76770#p76770</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76763#p76763" />
			<content type="html"><![CDATA[<p>Разобрался, методом научного тыка. <br />Проблема была в порядке подключения файлов по <strong>#Include</strong>, т.е. пункты для трея, когда это касается почемуто подменю должны быть описаны раньше их применения, т.е. в скрипте <br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>;=====Cменить иконку скрипта  и меню скрипта
; Работа с ресурсами и иконкой
lTrey:
Menu1  := &quot;Справка&quot;
Menu2  := &quot;Переключение клавиши&quot;
sMenu21 := &quot;Oсновные горячие клавиши&quot;
sMenu22 := &quot;Пульт управления плеером&quot; 
Menu3  := &quot;Выход&quot;
sKeysOnOff:
      mcTray := &quot;ASOS_RES\Os_Settings_Gear.ico&quot;
      Menu, tray, NoStandard                ; меню в трее будет не стандартным - своим
      Menu, Tray, Icon, %McTray%             ; Устанавливаем иконку
      Menu, tray, add, %Menu1%, HelpKey1     ; добавляем пункт меню по ПКМ
      Menu, sKeyOnOff, add, %sMenu22%, KeyPlayrs
      Menu, sKeyOnOff, add, %sMenu21%, KeyMain      
      Menu, tray, add, %Menu2%, :sKeysOnOff    ; добавляем пункт меню ввиде подменю по ПКМ
      Menu, tray, add, %Menu3%, lExitProc     ; добавляем пункт меню по ПКМ
      ; Задаём свою выноску &quot;балон&quot;
      Menu, tray, tip, `n Обработка клавиш для: `n  - приложений `n  - игр `n  - и т.д. `n `n
      Menu, tray, default, Справка ; Этот пункт меню по умолчанию двойной щелчёк ЛКМ по иконке в трее для его вызова
      Menu, Tray, Click, 1 ; Переназначаем двойной на одиночный ЛКМ
Return</code></pre></div></div></div><p>Метки <strong>sKeysOnOff</strong> , <strong>KeyMain </strong> и <strong>KeyPlayrs</strong> хотя этого раньше не требовалось - странно как то и справке нет на это указания.<br />Ну с метками <strong>KeyMain </strong> и <strong>KeyPlayrs</strong> понятно что делать, я просто поменяю порядок подключения по <strong>#Include</strong> </p><p>А вот метка <strong>sKeysOnOff</strong> так она ничего не делает, просто интересно, а к ней то будет обращение?<br />Надо писать обработчик для неё или нет?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-31T15:58:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76763#p76763</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76762#p76762" />
			<content type="html"><![CDATA[<p>Желательно бы код, который запустить можно было и узреть эту ошибку. А то того нет, этого нет и скрипт завершается.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-31T15:55:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76762#p76762</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76761#p76761" />
			<content type="html"><![CDATA[<p>И так после долгих мучений, я решил создать подменю, т.к. пункт будет увеличиваться и я написал подпрограмму, кторую вызываю после всех подключений файлов через <strong>#Include</strong> и назвал её <strong>lTrey</strong><br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>; Работа с ресурсами и иконкой
lTrey:
sleep 3000 ; задержка для коррекции и синхронизации.
Menu1  := &quot;Справка&quot;
Menu2  := &quot;Переключение клавиши&quot;
sMenu21 := &quot;Oсновные горячие клавиши&quot;
sMenu22 := &quot;Пульт управления плеером&quot; 
Menu3  := &quot;Выход&quot;

      mcTray := &quot;ASOS_RES\Os_Settings_Gear.ico&quot;
      Menu, tray, NoStandard                ; меню в трее будет не стандартным - своим
      Menu, Tray, Icon, %McTray%             ; Устанавливаем иконку
      Menu, tray, add, %Menu1%, HelpKey1     ; добавляем пункт меню по ПКМ
      ;Menu, sKeyOnOff, add, %sMenu22%, KeyPlayrs
      ;Menu, sKeyOnOff, add, %sMenu21%, KeyMain      
      ;Menu, tray, add, %Menu2%, :sKeysOnOff    ; добавляем пункт меню ввиде подменю по ПКМ
      Menu, MySubmenu, add, Item1 
      Menu, tray, add, This Menu Item Is A Submenu, :MySubmenu      
      Menu, tray, add, %Menu3%, lExitProc     ; добавляем пункт меню по ПКМ
      ; Задаём свою выноску &quot;балон&quot;
      Menu, tray, tip, `n Обработка клавиш для: `n  - приложений `n  - игр `n  - и т.д. `n `n
      Menu, tray, default, Справка ; Этот пункт меню по умолчанию двойной щелчёк ЛКМ по иконке в трее для его вызова
      Menu, Tray, Click, 1 ; Переназначаем двойной на одиночный ЛКМ
MySubmenu:    
Return</code></pre></div></div></div><p> всё было бы замечательно, но она постоянно ругается, что метка <strong>MySubmenu</strong> не определена (это я уж с горя взял пример из справки думал я где то ошибся).<br />Так где надо поставить эту метку, что бы было правильно, я перебрал все варианты и до описания подменю и после и в самом начале скрипта, ошибка не пропадает и на строчке&nbsp; <strong>Menu, tray, add, This Menu Item Is A Submenu, :MySubmenu </strong> обработка прерывается, т.е. сл. пункта в меню уже нет, только висит <strong>Справка</strong>.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-31T15:01:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76761#p76761</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK:  Меню в трее, создание под подменю.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76753#p76753" />
			<content type="html"><![CDATA[<p>Есть такой скрипт(фрагмент)</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>; Работа с ресурсами и иконкой
sleep 3000 ; задержка для коррекции и синхронизации.
Menu1 := &quot;Справка&quot;
Menu2 := &quot;On/Off `n`n основные горячие клавиши&quot; 
Menu3 := &quot;Выход&quot;
;=====Cменить иконку скрипта  
      mcTray := &quot;ASOS_RES\Os_Settings_Gear.ico&quot;
      Menu, tray, NoStandard                ; меню в трее будет не стандартным - своим
      Menu, Tray, Icon, %McTray%             ; Устанавливаем иконку
      Menu, tray, add, %Menu1%, HelpKey1     ; добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu2%, KeyOfASOSMain     ; добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu3%, lExitProc     ; добавляем пункт меню по ПКМ
      ; Задаём свою выноску &quot;балон&quot;
      Menu, tray, tip, `n Обработка клавиш для: `n  - приложений `n  - игр `n  - и т.д. `n `n
      Menu, tray, default, Справка ; Этот пункт меню по умолчанию двойной щелчёк ЛКМ по иконке в трее для его вызова
      Menu, Tray, Click, 1 ; Переназначаем двойной на одиночный ЛКМ
;-------------------------------------------------------------</code></pre></div></div></div><p>В переменной <strong>Menu2</strong> очень длинный текст - уход за границы экрана.</p><p>Я попытался подать <strong>`n</strong> результат нулевой - как можно сделать перевод строки, форматирование всего меню или же просто смещение вверх и влево?</p><br /><p>Единственное что мне пришло в голову это сделать так: <br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>Menu2 := &quot;On/Off&quot;  
Menu2 := &quot;   Оосновные горячие клавиши&quot; 
Menu3 := &quot;Выход&quot;
      Menu, tray, add, %Menu2%, KeyOfASOSMain     ; добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu20%, KeyOfASOSMain     ; добавляем пункт меню по ПКМ
      Menu, tray, add, %Menu3%, lExitProc     ; добавляем пункт меню по ПКМ
..........

</code></pre></div></div></div><p> Моё решение единственно правильное? Или можно сделать ещё как то?</p><p>И ещё, я не нашёл опции, которая задаёт горизонтальный размер выноски посимвольно, может плохо искал?</p><br /><p>P.S. Проверял орфографию и через Punto и увидел, подменю - может это и есть единственное решение проблемы?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-31T12:31:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76753#p76753</id>
		</entry>
</feed>
