BBC BASIC for Windows
« Features that are never used »

Welcome Guest. Please Login or Register.
Apr 5th, 2018, 11:36pm



ATTENTION MEMBERS: Conforums will be closing it doors and discontinuing its service on April 15, 2018.
Ad-Free has been deactivated. Outstanding Ad-Free credits will be reimbursed to respective payment methods.

If you require a dump of the post on your message board, please come to the support board and request it.


Thank you Conforums members.

BBC BASIC for Windows Resources
Online BBC BASIC for Windows documentation
BBC BASIC for Windows Beginners' Tutorial
BBC BASIC Home Page
BBC BASIC on Rosetta Code
BBC BASIC discussion group
BBC BASIC for Windows Programmers' Reference

« Previous Topic | Next Topic »
Pages: 1 2  Notify Send Topic Print
 hotthread  Author  Topic: Features that are never used  (Read 555 times)
rtr2
Guest
xx Re: Features that are never used
« Reply #17 on: Mar 22nd, 2015, 10:43am »

on Mar 22nd, 2015, 08:12am, David Williams wrote:
Any other long-time BBC BASIC users new to this keyword?

I think it's reasonably well-known, but little-used. Because SUMLEN arrived in the language at the same time as SUM (which is much more useful) I would expect anybody who knows about one to be aware of the other.

Having searched through thousands of programs on my PC I have found only one genuine example of its use, which is in a program that puts a whole load of files on the clipboard (CF_HDROP format). To work out how much memory to allocate for the clipboard data it does:

Code:
      nfiles% = FNselectfiles("Select one or more files", "*.*", file$())
      ddesize% = DIM(dropfiles{}) + SUMLEN(file$()) + nfiles% + 1 

But I'd prefer the thread not to fly off-topic this soon. Any feedback specifically on the RETURN destination feature?

Richard.
User IP Logged

David Williams
Developer

member is offline

Avatar

meh


PM

Gender: Male
Posts: 452
xx Re: Features that are never used
« Reply #18 on: Mar 22nd, 2015, 12:25pm »

on Mar 22nd, 2015, 10:43am, g4bau wrote:
Any feedback specifically on the RETURN destination feature?


Only that it was news to me, and that I've made a mental note of it.

David.
--
User IP Logged

DDRM
Administrator
ImageImageImageImageImage


member is offline

Avatar




PM

Gender: Male
Posts: 321
xx Re: Features that are never used
« Reply #19 on: Mar 23rd, 2015, 5:32pm »

Hi Richard,

I'm not sure you'd ever want to do it this way, but I guess you could use it to cut out the "PROCsys" bit of an ON PROC handler:

Code:
    5 PROCMenus
   10 ON SYS w%=50+@wparam%:RETURN w%
   20 REPEAT
   30   WAIT 1
   40 UNTIL FALSE
   45 END
   50 PRINT "Black":END
   51 PRINT "RED" :END

  100 END
      DEFPROCMenus
      SYS "CreateMenu" TO hmenu%
      SYS "SetMenu", @hwnd%, hmenu%
      SYS "AppendMenu", hmenu%, 0, 0, "Blac&k"
      SYS "AppendMenu", hmenu%, 0, 1, "&Red"
      SYS "DrawMenuBar", @hwnd%
      ENDPROC
 


Incidentally, I was interested to see that I can mix numbered and unnumbered bits of code - not that I'd recommend it...

Obviously you would probably want to jump to a handling routine rather than just a print statement, and I can't see much advantage over doing it the way recommended in the manual, but it IS a potential use for the feature!

I suspect you should probably mask @wparam% with &FFFF?

Best wishes,

D
« Last Edit: Mar 23rd, 2015, 5:37pm by DDRM » User IP Logged

rtr2
Guest
xx Re: Features that are never used
« Reply #20 on: Mar 23rd, 2015, 8:01pm »

on Mar 23rd, 2015, 5:32pm, DDRM wrote:
I suspect you should probably mask @wparam% with &FFFF?

Not in the case of a menu selection; MSDN says: "Value of the high-order word of wParam... If the message is from a menu, this parameter is 0".

Richard.
User IP Logged

rtr2
Guest
xx Re: Features that are never used
« Reply #21 on: Apr 6th, 2015, 10:32pm »

3. ELSEIF condition THEN;

This is the third in an occasional series of posts on features of BBC BASIC for Windows which are so obscure or specialised that they are (virtually) never used.

Some BASIC dialects provide an ELSEIF (or ELSIF) keyword to allow multiple conditions to be conveniently handled without nesting IF statements. Standard BBC BASIC does not support this, but an equivalent functionality can be achieved using CASE:

Code:
      CASE TRUE OF
        WHEN condition1:
          REM Do something
        WHEN condition2:
          REM Do something else
        OTHERWISE:
          REM Do default action
      ENDCASE 

However BB4W does support a form of ELSEIF, a feature which was added primarily to aid automatic translation from other dialects:

Code:
      IF condition1 THEN
        REM Do something
      ELSEIF condition2 THEN;
        REM Do something else
      ELSE
        REM Do default action
      ENDIF 

Note the semicolon ; immediately after the THEN which prevents a new (nested) multi-line IF clause being started.

Richard.
User IP Logged

DDRM
Administrator
ImageImageImageImageImage


member is offline

Avatar




PM

Gender: Male
Posts: 321
xx Re: Features that are never used
« Reply #22 on: Apr 9th, 2015, 08:56am »

Hi Richard,

Thanks for the note on ELSEIF. I quite often use the CASE TRUE construction, which is very nice, but I can see that using ELSEIF...THEN; might also work well to make multiple choices clear.

I see that there is one use of it in the wiki - is that enough to earn ELSEIF a brief mention in the manual?

Best wishes,

D
User IP Logged

rtr2
Guest
xx Re: Features that are never used
« Reply #23 on: Apr 9th, 2015, 10:13am »

on Apr 9th, 2015, 08:56am, DDRM wrote:
I see that there is one use of it in the wiki - is that enough to earn ELSEIF a brief mention in the manual?

It is already there. ELSEIF is just ELSE IF and is therefore documented under ELSE and IF. It's a standard feature of BBC BASIC, which you could use even on the BBC Micro:

Code:
      IF condition1 PROCdosomething ELSEIF condition2 PROCdoanotherthing 

The little-used, BB4W-specific, feature I drew attention to was THEN; (i.e. the trailing semicolon) which is documented, unsurprisingly, under THEN:

http://www.bbcbasic.co.uk/bbcwin/manual/bbcwin7.html#then

Richard.
« Last Edit: Apr 9th, 2015, 10:17am by rtr2 » User IP Logged

Pages: 1 2  Notify Send Topic Print
« Previous Topic | Next Topic »

| |

This forum powered for FREE by Conforums ©
Terms of Service | Privacy Policy | Conforums Support | Parental Controls