Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
If text is selected do action
#1
I am trying to make my macro only do something if I have selected any text but I can not quite get it to work.

I would like to have the macro enable id 4 if I have selected any text but if I have not selected any text then the macro will un-enable id 4. Can this be done?

Function Dialog7
Code:
Copy      Help
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages

str controls = "3 4"
str rea3 cb4
if(!ShowDialog("Dialog7" &Dialog7 &controls)) ret

;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 135 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 RichEdit20A 0x54233044 0x200 2 0 218 92 ""
;4 ComboBox 0x54230243 0x0 4 104 96 213 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2030009 "" "" ""

ret
;messages
sel message
,case WM_INITDIALOG
,EnableWindow id(4 win("Dialog" "#32770")) 0
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,if any text in id 3 is selected
,,EnableWindow id(4 win("Dialog" "#32770")) 1
,else ;; No matter how much text is in id 3 but no text is selected
,,EnableWindow id(4 win("Dialog" "#32770")) 0
,case IDOK
,case IDCANCEL
ret 1
#2
Function Dialog72
Code:
Copy      Help
\Dialog_Editor
function# hDlg message wParam lParam
if(hDlg) goto messages

str controls = "3 4"
str rea3 cb4
if(!ShowDialog("" &Dialog72 &controls)) ret

;BEGIN DIALOG
;0 "" 0x90C80A44 0x100 0 0 223 135 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 RichEdit20A 0x54233044 0x200 2 0 218 92 ""
;4 ComboBox 0x54230243 0x0 4 104 96 213 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2030009 "" "" ""

ret
;messages
sel message
,case WM_INITDIALOG
,EnableWindow id(4 hDlg) 0
,SendMessage id(3 hDlg) EM_SETEVENTMASK 0 ENM_SELCHANGE
,case WM_DESTROY
,case WM_COMMAND goto messages2
,case WM_NOTIFY goto messages3
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
;messages3
NMHDR* nh=+lParam
sel nh.code
,case EN_SELCHANGE
,SELCHANGE* sc=+nh
,sel nh.idFrom
,,case 3
,,EnableWindow id(4 hDlg) sc.chrg.cpMax!=sc.chrg.cpMin
#3
OK so much new stuff to learn and with the new version as well. I do not know why or how you are doing it but I am glad that you are.

Thank You
#4
Hello,

i think you wanted to write :
if(!ShowDialog("" &Dialog72 &controls)) ret
#5
yes, now corrected


Forum Jump:


Users browsing this thread: 1 Guest(s)