EmEditor (text editor) Forum Index
   Macro Samples
     Macro: (Menu) Toggle [Runs at Events] Option for Macros
Register To Post

Threaded | Oldest First Previous Topic | Next Topic | Bottom
Poster Thread
LTT
Posted on: 12/12/2012 10:17 pm
Just can't stay away
Joined: 10/11/2006
From:
Posts: 84
Re: Macro: (Menu) Toggle [Runs at Events] Option for Macros
I rewrote the macro.
Now arrays are used to minimize the GetProfileInt/GetProfileString operations (now only once for each entry).
nRunAtEvents = &h80000000

ii=0
Do
	nEventsN = editor.GetProfileInt(eeRegMacros, sCfg, "Events"& ii, -1)
	If nEventsN=-1 Then Exit Do

	If nEventsN><0 Then
		sMacroN = editor.GetProfileString(eeRegMacros, sCfg, "Macro"& ii, "")
		sEventsN = Right("_______"& Hex(nEventsN), 8)
		sN = Right("      "& ii, 7)

		sMenuText = sMacroN &vbTab& sEventsN & sN

		asMacroN   = asMacroN   &"|"& sMacroN
		anEventsN  = anEventsN  &" "& nEventsN
		aN         = aN         &" "& ii
		asMenuText = asMenuText &"|"& sMenuText
	End If

	ii=ii+1
Loop Until ii>1023

asMacroN   = Split(asMacroN,"|")
anEventsN  = Split(anEventsN)
aN         = Split(aN)
asMenuText = Split(asMenuText,"|")

nMenu = UBound(aN)
sMenuText = "▲Toggle Event-Driven Macros"& vbTab &"     Max:"& Right("     "& ii-1, 6)

Do
	Set menu = CreatePopupMenu
	For ii = 1 To nMenu
		menu.Add asMenuText(ii), ii, eeMenuChecked And anEventsN(ii)<0
	Next
	menu.Add "", 0, eeMenuSeparator
	menu.Add sMenuText, 0, eeMenuGrayed

	ii = menu.Track
	If ii=0 Then Quit

	anEventsN(ii) = anEventsN(ii) Xor nRunAtEvents
	sEventsN = Right("_______"& Hex(anEventsN(ii)), 8)
	sN = Right("      "& aN(ii), 7)
	asMenuText(ii) = asMacroN(ii) &vbTab& sEventsN & sN

	editor.WriteProfileInt eeRegMacros, sCfg, "Events"& aN(ii), anEventsN(ii)
Loop




The old code:
nRunAtEvents = &h80000000

Do
	Set menu = CreatePopupMenu

	ii=0
	Do
		nEventsN = editor.GetProfileInt(eeRegMacros, sCfg, "Events"& ii, -1)
		If nEventsN=-1 Then Exit Do

		If nEventsN><0 Then
			sMacroN = editor.GetProfileString(eeRegMacros, sCfg, "Macro"& ii, "")
			sMenuText = sMacroN &vbTab& Right("_______"& Hex(nEventsN), 8) & Right("      "& ii, 7)
			menu.Add sMenuText, ii+1, eeMenuChecked And nEventsN<0
		End If

		ii=ii+1
	Loop Until ii>1023
	menu.Add "", 0, eeMenuSeparator
	menu.Add "▲Toggle Event-Driven Macros	     Max:"& Right("     "& ii-1, 6), 0, eeMenuGrayed

	ii = menu.Track -1
	If ii<0 Then Quit

	nEventsN = editor.GetProfileInt(eeRegMacros, sCfg, "Events"& ii, -1)
	nEventsN = nEventsN Xor nRunAtEvents

	editor.WriteProfileInt eeRegMacros, sCfg, "Events"& ii, nEventsN
Loop
LTT
Posted on: 12/5/2012 1:24 am
Just can't stay away
Joined: 10/11/2006
From:
Posts: 84
Macro: (Menu) Toggle [Runs at Events] Option for Macros
This macro gives a quick way to manage your event-driven macros.
All your event-driven macros are listed in a menu. Clicking in the menu toggles the [Runs at Events] option for that macro.

Threaded | Oldest First Previous Topic | Next Topic | Top


Register To Post
 
English čeština Deutsch español français italiano 日本語 한국어 Русский 简体中文 繁體中文