I just bought a copy of OpenQM to test some of my applications. My first program to test is a main menu. In this MVBASIC program I draw a character outline around the border of the screen, the fill in the menu options. The program then calls a suproutine called XPRMT. I use the XPRMT subroutine for all keyboard input in all programs, it is the only INPUT statement in my systems. One of the parameters that I pass to XPRMT is PSTR which is the prompt string which XPRMT prints at @(0,24), the bottom of the screen. In UniVerse this routine works perfectly, but in OpenQM it was displaying the PSTR value over the bottom line of the border which is row 23. My last line printed in the menu program was the log off selection at row 22. After much code changing in XPRMT, I modified the menu program to display the menu selections first and the draw the border and that presented everything properly. What I see is that even though the XPRMT instruction is "PRINT@(0,24):PSTR;", PSTR is being printed at the next row after the last PRINT from the calling program. Can anyone explain this and does anyone have a solution to get XPRMT to print the prompt string where the code specifies?
Thanks,
Dale
------------------------------
Dale Kelley
I'm it!
Dale W Kelley Inc
Hohenwald TN US
------------------------------
Dale,
Sounds like a Terminal setting issue. What TERM type are you using, have you tried changing it?
------------------------------
Mike Rajkowski
MultiValue Product Evangelist
Rocket Internal - All Brands
US
------------------------------
I just bought a copy of OpenQM to test some of my applications. My first program to test is a main menu. In this MVBASIC program I draw a character outline around the border of the screen, the fill in the menu options. The program then calls a suproutine called XPRMT. I use the XPRMT subroutine for all keyboard input in all programs, it is the only INPUT statement in my systems. One of the parameters that I pass to XPRMT is PSTR which is the prompt string which XPRMT prints at @(0,24), the bottom of the screen. In UniVerse this routine works perfectly, but in OpenQM it was displaying the PSTR value over the bottom line of the border which is row 23. My last line printed in the menu program was the log off selection at row 22. After much code changing in XPRMT, I modified the menu program to display the menu selections first and the draw the border and that presented everything properly. What I see is that even though the XPRMT instruction is "PRINT@(0,24):PSTR;", PSTR is being printed at the next row after the last PRINT from the calling program. Can anyone explain this and does anyone have a solution to get XPRMT to print the prompt string where the code specifies?
Thanks,
Dale
------------------------------
Dale Kelley
I'm it!
Dale W Kelley Inc
Hohenwald TN US
------------------------------
Hi Dale,
Try:
PRINT@(0,24):PSTR:
The last character of the print statement needs to be a colon to suppress the automatic cr/lf. in you're example it's a semicolon. Maybe that works in OpenQM but in the versions I've worked with it doesn't. It needs to be a semicolon.
------------------------------
Joe Goldthwaite
Consultant
Phoenix AZ US
------------------------------
Dale,
Sounds like a Terminal setting issue. What TERM type are you using, have you tried changing it?
------------------------------
Mike Rajkowski
MultiValue Product Evangelist
Rocket Internal - All Brands
US
------------------------------
Hi Mike,
I checked the term type and it was xterm. VT100 is what I use on
UniVerse under AccuTerm, so I changed it to "dec-vt100" and tried
"dec-vt220". The results were the same, the PSTR is still displayed on
the row below the last item printed on the calling program. Any
suggestions?
Dale
Dale,
Sounds like a Terminal setting issue. What TERM type are you using, have you tried changing it?
------------------------------
Mike Rajkowski
MultiValue Product Evangelist
Rocket Internal - All Brands
US
------------------------------
Give this a try some time: https://github.com/MarcusAureliusRhodes/AnyKey
------------------------------
Marcus Rhodes
marcus1@thinqware.com
------------------------------
Give this a try some time: https://github.com/MarcusAureliusRhodes/AnyKey
------------------------------
Marcus Rhodes
marcus1@thinqware.com
------------------------------
Thank you all. This one simple problem was solved or circumvented by
putting in the calling program the instruction PRINT @(0,24);
immediately before the call to XPRMT. (I may hjave a lot of colons to
replace with semicolons!) Anyway, that takes care of this first little
problem. Stay tuned for the next one.
Thanks to Mike, Joe and Marcus!
Dale
Give this a try some time: https://github.com/MarcusAureliusRhodes/AnyKey
------------------------------
Marcus Rhodes
marcus1@thinqware.com
------------------------------
It's funny that so many of us have re-invented the same code concepts. Back when I added the mouse enhancements to AccuTerm I wrote a text input library that would handle the mouse and function keys for AccuTerm and the other various terminals in use at the time.
I used that library for all data input. It allowed the development of input forms instead of the normal top down input routines with numbered lines. You could tab up and down through the fields and even click directly on a field to activate it. The menus worked with the mouse and I have a reporting system where the user could drill into the data by clicking on report lines with the mouse.
It was pretty advanced looking stuff for a green screen system.
Pete Schellenbach later took that code and heavily modified it to come up with the Smart User Interface programs to help develop text interfaces in AccuTerm. I don't know if anyone ever used them but they're still in the SUIBP file that came with AccuTerm up to version 7. I don't know if it's in version 8.
------------------------------
Joe Goldthwaite
Consultant
Phoenix AZ US
------------------------------