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

Flat Previous Topic | Next Topic
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
Flat Previous Topic | Next Topic


Subject Poster Date
   Macro: (Menu) Toggle [Runs at Events] Option for Macros LTT 12/5/2012 1:24 am
   » Re: Macro: (Menu) Toggle [Runs at Events] Option for Macros LTT 12/12/2012 10:17 pm

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