Hi guys,
Hoping someone can point out where I'm going wrong!
Having slight issue with Wimp_SendMessage DataSave.
Trying to do a save window.
I have created my save window and done the drag to filer window okay. I'm able to drag to the filer window and release.
Getting stuck after I go into my end drag routine.
Not getting any error messages, everything looks like it is working okay,
but having called SYS"Wimp_SendMessage",18 at end of the procedure,
nothing happens!
Returns to my poll loop but not generating event 18 for me to then move
onto the next bit. The procedure is completing and returning to the poll loop.
Here is both my Poll loop and the end drag routines. Hoping someone can point out where I've messed up.
DEF PROCpoll
SYS "Wimp_Poll",,b% TO r%
CASE r% OF
WHEN 2: SYS "Wimp_OpenWindow",,b%
WHEN 3: SYS "Wimp_CloseWindow",,b%
CASE b%!0 OF
WHEN wh_main%: quit%=TRUE
WHEN wh_fwhosts%: PROCicon_deleteallicons(b%!0)
WHEN wh_fwdiscs%:wh%=wh_main%:PROCicon_deleteallicons(b%!0)
WHEN wh_fwhostdiscs%:PROCicon_deleteallicons(b%!0)
ENDCASE
WHEN 6: PROCmouse_click
WHEN 7: PROCmouse_drag_end
WHEN 9: PROCmenu_click
WHEN 17,18: PROCreceive
ENDCASE
ENDPROC
:
DEF PROCmouse_drag_end
SYS "Wimp_GetPointerInfo",,b%
b%!20=b%!12:REM destination window handle
b%!24=b%!16:REM destination icon handle
b%!28=b%!0:REM destination x coordinate
b%!32=b%!4:REM destination y coordinate
b%!36=1024
b%!40=&DFE
a$=$savestr%+CHR$0:REM get leafname
$(b%+44)=a$:REM leafname of file
!b%=44+((LEN a$) DIV 4)*4:REM length of block
IF LEN a$ MOD 4<>0 THEN !b%+=4
b%!12=0:REM your_ref for original message
b%!16=1:REM Message_DataSave
b%!8=0
b%!4=task%
SYS"Wimp_SendMessage",18,b%,b%!20,b%!24
ENDPROC
In message <a772638e5c.Paul@phorefaux>
on 20 Dec 2025 Paul Stewart wrote:
DEF PROCmouse_drag_end
SYS "Wimp_GetPointerInfo",,b%
b%!20=b%!12:REM destination window handle
b%!24=b%!16:REM destination icon handle
b%!28=b%!0:REM destination x coordinate
b%!32=b%!4:REM destination y coordinate
b%!36=1024
b%!40=&DFE
a$=$savestr%+CHR$0:REM get leafname
$(b%+44)=a$:REM leafname of file
!b%=44+((LEN a$) DIV 4)*4:REM length of block
IF LEN a$ MOD 4<>0 THEN !b%+=4
b%!12=0:REM your_ref for original message
b%!16=1:REM Message_DataSave
b%!8=0
b%!4=task%
SYS"Wimp_SendMessage",18,b%,b%!20,b%!24
ENDPROC
I cannot see anything immediately wrong with your code, but it's possible that the replies are not being passed back to you because of how you have registered with the Wimp.
In message <a772638e5c.Paul@phorefaux>
on 20 Dec 2025 Paul Stewart wrote:
Hi guys,
Hoping someone can point out where I'm going wrong!
Having slight issue with Wimp_SendMessage DataSave.
Trying to do a save window.
I have created my save window and done the drag to filer window okay. I'm >> able to drag to the filer window and release.
Getting stuck after I go into my end drag routine.
Not getting any error messages, everything looks like it is working okay,
but having called SYS"Wimp_SendMessage",18 at end of the procedure,
nothing happens!
Returns to my poll loop but not generating event 18 for me to then move
onto the next bit. The procedure is completing and returning to the poll
loop.
Here is both my Poll loop and the end drag routines. Hoping someone can
point out where I've messed up.
DEF PROCpoll
SYS "Wimp_Poll",,b% TO r%
CASE r% OF
WHEN 2: SYS "Wimp_OpenWindow",,b%
WHEN 3: SYS "Wimp_CloseWindow",,b%
CASE b%!0 OF
WHEN wh_main%: quit%=TRUE
WHEN wh_fwhosts%: PROCicon_deleteallicons(b%!0)
WHEN
wh_fwdiscs%:wh%=wh_main%:PROCicon_deleteallicons(b%!0)
WHEN wh_fwhostdiscs%:PROCicon_deleteallicons(b%!0)
ENDCASE
WHEN 6: PROCmouse_click
WHEN 7: PROCmouse_drag_end
WHEN 9: PROCmenu_click
WHEN 17,18: PROCreceive
ENDCASE
ENDPROC
:
DEF PROCmouse_drag_end
SYS "Wimp_GetPointerInfo",,b%
b%!20=b%!12:REM destination window handle
b%!24=b%!16:REM destination icon handle
b%!28=b%!0:REM destination x coordinate
b%!32=b%!4:REM destination y coordinate
b%!36=1024
b%!40=&DFE
a$=$savestr%+CHR$0:REM get leafname
$(b%+44)=a$:REM leafname of file
!b%=44+((LEN a$) DIV 4)*4:REM length of block
IF LEN a$ MOD 4<>0 THEN !b%+=4
b%!12=0:REM your_ref for original message
b%!16=1:REM Message_DataSave
b%!8=0
b%!4=task%
SYS"Wimp_SendMessage",18,b%,b%!20,b%!24
ENDPROC
I cannot see anything immediately wrong with your code, but it's possible that the replies are not being passed back to you because of how you have registered with the Wimp.
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 54 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 13:35:55 |
| Calls: | 742 |
| Files: | 1,218 |
| D/L today: |
2 files (2,024K bytes) |
| Messages: | 183,470 |
| Posted today: | 1 |