cp= position in qm editor
cp+9 means position + 9 more characters
the reason it fails after sorting is because the line positions of the text have changed
so easy fix
need to find the position again
this works with sorting
Macro M3
Trigger A1
cp+9 means position + 9 more characters
the reason it fails after sorting is because the line positions of the text have changed
so easy fix
need to find the position again
this works with sorting
Macro M3
Trigger A1
str pattern="(?:.*\:sub\..*)"
_s.getmacro("A1" 0)
str d
int i
ARRAY(str) a
findrx(_s pattern 0 4 a)
a.sort
for i 0 a.len
,d.formata("%s[]" a[0 i])
d.trim
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 224 136 "Dialog" "4"
;3 ComboBox 0x54230641 0x0 8 8 96 122 ""
;1 Button 0x54030001 0x4 116 116 48 14 "OK"
;2 Button 0x54030000 0x4 168 116 48 14 "Cancel"
;END DIALOG
;DIALOG EDITOR: "" 0x2040B01 "*" "" "" ""
str controls = "3"
str cb3=d
if(!ShowDialog(dd &sub.DlgProc &controls)) ret
#sub DlgProc
function# hDlg message wParam lParam
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,int hcb3=id(3 hDlg)
,str cb3t
,_i=CB_SelectedItem(hcb3 cb3t)
,out cb3t
,mac+ "A1"
,_s.getmacro("A1" 0)
,int cp1=findrx(_s cb3t)
,out cp1
,int h=GetQmCodeEditor
,SendMessage(h SCI.SCI_GOTOPOS cp1 0)
,case IDCANCEL
ret 1