1. Writing a stream of data to an EditText box
- Posted by JAYBEEDEE <daviesjb at liv.ac.?k> Mar 03, 2008
- 606 views
Thanks to Robert Craig for his comments about C programs displaying on full screen. I found a solution amongst the Troubleshoot section of the Manual. Alt+Enter toggles between full screen and a window - simple! Now for my latest problems: How do you write a stream of data (atoms or integers) to an EditText box or similar control in Windows IDE (judith's). In a simple example I want to write the results of a for...do loop so that all the output is visible on the same line. for x=1 to 10 do setText(EditText1,x) end for Hoped for output would be 1 2 3 4 5 6 ... 10 I have also tried all permutations of wPuts(), wPrintf(), and wPrint() and the best I can achieve is for each number to overwrite the previous, ending up with 10. I have also tried getScrollPos() and setScrollPos() to try to move the text along a bit, but no go. I suspect that EditText boxes do not have a cursor location facility. What is the solution? Second question. In the progressbar.exw demo bundled with W32lib the output to the progress bar is setText(Gauge, sprintf("%d%% (%d)", sequence etc... Can someone explain the format string? %d I'm familliar with, but can't figure out what the rest does, particularily the (%d). It doesn't seem necessary as a simple "%d" works fine. Again, any help gratefully received. jaybeedee
2. Re: Writing a stream of data to an EditText box
- Posted by Greg Haberek <ghaberek at gmail??om> Mar 03, 2008
- 591 views
JAYBEEDEE wrote: > > Now for my latest problems: > How do you write a stream of data (atoms or integers) to an EditText box or > similar > control in Windows IDE (judith's). > > In a simple example I want to write the results of a for...do loop > so that all the output is visible on the same line. > > for x=1 to 10 do > setText(EditText1,x) > end for > > Hoped for output would be 1 2 3 4 5 6 ... 10 > > I have also tried all permutations of wPuts(), wPrintf(), and wPrint() and the > best > I can achieve is for each number to overwrite the previous, ending up with 10. > I have also tried getScrollPos() and setScrollPos() to try to move the text > along a bit, > but no go. I suspect that EditText boxes do not have a cursor location > facility. > > What is the solution? When you call setText(), you're literally SETTING the text in the box, that's it: whatever is there is replaced. You want to append text to the box, so use appendText(). And get/setScrollPos() has no affect on a text box. See get/setIndex() for cursor positioning. > Second question. > > In the progressbar.exw demo bundled with W32lib the output to the progress bar > is > setText(Gauge, sprintf("%d%% (%d)", sequence etc... > > Can someone explain the format string? %d I'm familliar with, but can't > figure > out what the rest does, > particularily the (%d). It doesn't seem necessary as a simple "%d" works fine. > > Again, any help gratefully received. Special characters for printf() (and sprintf) are escaped by '%' and nothing more. The parentheses will display as-is. The double '%' prints a literal '%' in the string. That formatting would output something like this:
printf(1, "%d%% (%d)", {52, 37}) -- prints "52% (37)"
-Greg
3. Re: Writing a stream of data to an EditText box
- Posted by Bernie Ryan <xotron at bl??frog.com> Mar 03, 2008
- 590 views
JAYBEEDEE wrote: > > Thanks to Robert Craig for his comments about C programs displaying on full > screen. > I found a solution amongst the Troubleshoot section of the Manual. > Alt+Enter toggles between full screen and a window - simple! > > Now for my latest problems: > How do you write a stream of data (atoms or integers) to an EditText box or > similar > control in Windows IDE (judith's). > > In a simple example I want to write the results of a for...do loop > so that all the output is visible on the same line. > > for x=1 to 10 do > setText(EditText1,x) > end for > > Hoped for output would be 1 2 3 4 5 6 ... 10 > > I have also tried all permutations of wPuts(), wPrintf(), and wPrint() and the > best > I can achieve is for each number to overwrite the previous, ending up with 10. > I have also tried getScrollPos() and setScrollPos() to try to move the text > along a bit, > but no go. I suspect that EditText boxes do not have a cursor location > facility. > > What is the solution? > > Second question. > > In the progressbar.exw demo bundled with W32lib the output to the progress bar > is > setText(Gauge, sprintf("%d%% (%d)", sequence etc... > > Can someone explain the format string? %d I'm familliar with, but can't > figure > out what the rest does, > particularily the (%d). It doesn't seem necessary as a simple "%d" works fine. > > Again, any help gratefully received. > > jaybeedee
sequence text text = {} for x=1 to 10 do text&= sprintf("%d ",{x}) -- note space so number won't run together end for -- set the edittext1 with the text sequence. setText(EditText1,text)
Bernie My files in archive: WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API Can be downloaded here: http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan
4. Re: Writing a stream of data to an EditText box
- Posted by JAYBEEDEE <daviesjb at l?v.?c.uk> Mar 04, 2008
- 603 views
Thanks to Greg and Bernie. Its so simple when you know how! jaybeedee