Recent Changes

Sunday, April 1

  1. page LB Booster edited LB Booster This Wiki contains a set of technical articles for Liberty BASIC and Just BASIC prog…

    LB Booster
    This Wiki contains a set of technical articles for Liberty BASIC and Just BASIC programmers using
    {lbblogo.gif}
    The
    LB Booster (LBB) to develop and/or compile their applications. You can simply browsewiki has moved! Please visit the contents using the Contents table below, or search for a word or phrase by typing it into the Search box and pressing Enter.
    Most importantly, you can contribute to the Wiki by submitting your own articles and adding to or correcting existing ones. To do this you must be a member
    new wiki here
    For details
    of this site; if you would like to join click Join at the top of the page, or click here.
    When adding content to this Wiki you are bound by the licence. If you do not want to release your work under this licence, please do not submit articles. Please make sure that your articles are well-structured, that the grammar and spelling are correct (to the best of your ability!) and that any code examples are thoroughly tested. The usefulness of this site is entirely dependent on the quality of the articles submitted.
    Adding articles
    Click on New Page in the left hand panel.
    Enter the name of your page when requested. Choose your page name with care and ensure there isn't an existing page with the same name!
    Type or paste in your article. You can either use WikiText markup or, for WYSIWYG editing, click on Use Visual Editor at the bottom of the page. If you want to experiment with editing without actually submitting a page use the Sandbox.
    Use the Preview button to
    Wikispaces' closure see how your page will appear, and make changes as needed.
    Submit the page by clicking on Save.
    Add your article to the appropriate index page or, if you are unsure whether it is ready for that, post a message to the LBB discussion group requesting that it be reviewed.
    Contents
    Arabic text on the mainwin and printer (LBB)
    Array arithmetic
    Associating an application with an extension (LBB)
    Colored text in the mainwin
    Compatibility with Wine (LBB)
    Creating a CHM version of the LB Help files
    Creating child controls in a loop
    Date Formatting Extended Functionality
    Debugging Techniques
    Displaying a tooltip on demand
    Displaying Unicode text in a control
    Displaying Unicode text in a graphicbox
    DLLs compatible with LBB
    Enabling word-wrap in a texteditor (LBB)
    High quality hardcopy output (LBB)
    Improving the print quality
    Islamic calendar conversion (LBB)
    Making a Text Window read-only (LBB)
    Making the title bar opaque (LBB)
    Object Oriented Programming (LBB)
    On Screen Keyboard
    Overcoming the memory limit
    Passing arrays to SUBs and FUNCTIONs
    Playing an MP3 file (LBB)
    QBASIC-compatible music
    Redim Preserve
    Simulating a union (LBB)
    Speech synthesis (LBB)
    Speeding up graphics plotting
    Sprites in multiple windows (LBB)
    Using LBB with Liberty BASIC Workshop
    Using() Format Extended Functionality
    here
    (view changes)
    1:31 am

Saturday, March 31

  1. page home edited {bbprhead.gif} ... Programmers' Reference Wiki wiki has moved! For details of Wikispaces' …
    {bbprhead.gif}
    ...
    Programmers' Reference Wikiwiki has moved!
    For details of Wikispaces' closure see here
    (view changes)
    3:08 pm
  2. page home edited {bbprhead.gif} This Wiki contains a set of technical articles for The BBC BASIC for Windows …
    {bbprhead.gif}
    This Wiki contains a set of technical articles forThe BBC BASIC for Windows programmers, in an easy-to-use form. You can simply browse the contents using the Navigation bar on the left, or search for a word or phrase by typing it into the Search box and pressing Enter.
    Most importantly, you can contribute to the Wiki by submitting your own articles and adding to or correcting existing ones. To do this you must be a member of this site; if you would like to join click Join at the top of the page, or click here.
    When adding content to the BBC BASIC for Windows
    Programmers' Reference you are bound byWiki has moved! Please visit the licence. If you do not want to release your work under this licence, please do not submit articles. Please make sure that your articles are well-structured, that the grammar and spelling are correct (to the bestnew wiki here
    For details
    of your ability!) and that any code examples are thoroughly tested. The usefulness of this site is entirely dependent on the quality of the articles submitted.
    Adding articles
    Click on New Page in the left hand panel.
    Enter the name of your page when requested. Choose your page name with care and ensure there isn't an existing page with the same name!
    Type or paste in your article. You can either use WikiText markup or, for WYSIWYG editing, click on Use Visual Editor at the bottom of the page. If you want to experiment with editing without actually submitting a page use the Sandbox. Please use only CAPITAL keywords in your code examples;
    Wikispaces' closure see also Marking up BBC BASIC program code.
    Use the Preview button to see how your page will appear, and make changes as needed.
    Submit the page by clicking on Save.
    Add your article to the appropriate index page (see category list below) or, if you are unsure whether it is ready for that, post a message to the BB4W forum requesting that it be reviewed.
    Category List
    Assembler
    Articles related to assembly language programming.
    BBC BASIC Language
    Articles related to BBC BASIC syntax, keywords etc.
    Articles related to variables, arrays, strings, data structures etc.
    Communication and I/O
    Articles related to network, internet and socket programming.
    Articles related to serial, parallel, Bluetooth, USB etc. input/output.
    Database and Files
    Articles related to database technologies.
    Articles related to handling files, directories and disks.
    Articles related to specific file formats.
    Graphics and Games
    Articles related to graphics (2D and 3D) and animation.
    Articles related to games programming.
    Libraries
    List of currently available libraries.
    Articles related to the use and development of libraries.
    Manual
    Links to the BBC BASIC for Windows Help documentation.
    Links to other sources of reference information.
    Operating System
    Articles related to Operating System features not covered elsewhere.
    Articles related to calling DLLs, OCXs, object methods etc.
    Articles related to COM/OLE Automation.
    Program Editor and IDE
    Articles related to the BBC BASIC for Windows program editor.
    Articles related to the compiler and other IDE tools.
    Sound, Music and Video
    Articles related to sound, music and video programming.
    Articles related to multimedia applications.
    Tools and Utilities
    List of available software tools to aid programming productivity.
    Descriptions and download locations of add-on utilities.
    Tutorials
    Articles specifically teaching aspects of BB4W programming.
    Links to external tutorials.
    User Interface
    Articles related to the mouse, keyboard and screen.
    Articles related to the Windows Graphical User Interface.
    The owner of this site reserves the right to change, add to, or delete any articles without notice.
    Cookies
    The BBC BASIC for Windows Wiki uses cookies to identify you when you log on to edit pages and to remember your session preferences. See Cookies.
    here
    (view changes)
    3:07 pm
  3. page space.menu edited BB4W Assembler BBC BASIC Language Communication and I/O Database and Files Graphics and Games…
    BB4W
    Assembler
    BBC BASIC Language
    Communication and I/O
    Database and Files
    Graphics and Games
    Libraries
    Manual
    Operating System
    Program Editor and IDE
    Sound, Music and Video
    Tools and Utilities
    Tutorials
    User Interface
    {lbblogo.gif}
    LB Booster

    (view changes)
    1:59 pm

Friday, February 16

  1. page Creating a PNG file from a Windows icon edited by Richard Russell, February 2018 ... this is the conversion what you need. The procedure ha…
    by Richard Russell, February 2018
    ...
    this is the conversionwhat you need.
    The procedure has a dependency on GDIPlus so you will need to include this code in the initialisation section of your program:
    INSTALL @lib$ + "GDIPLIB"
    (view changes)
    4:46 am
  2. page Graphics and Games edited ... Centering the graphics origin Converting graphics coordinates Creating a PNG file from a Wi…
    ...
    Centering the graphics origin
    Converting graphics coordinates
    Creating a PNG file from a Windows icon
    Direct screen memory access
    Displaying a PNG or TIFF image
    (view changes)
    4:45 am
  3. page Creating a PNG file from a Windows icon edited by Richard Russell, February 2018 Both Windows icons and PNG (Portable Network Graphics) files su…
    by Richard Russell, February 2018
    Both Windows icons and PNG (Portable Network Graphics) files support transparency - an alpha channel if you prefer - so it may be useful to convert the former to the latter. For example Android and Mac OS icons use PNG format, so if you want to convert a Windows icon to be suitable for those operating systems this is the conversion you need. The PROCpngfromhicon() procedure listed below performs the required conversion; its parameters are the path and filename of the PNG file to be created, a handle to the icon and the width and height of the icon (the routine could have discovered the dimensions itself, but in the program for which it was written they were already known). If you need to resize the icon the CopyImage API will do that.
    The procedure has a dependency on GDIPlus so you will need to include this code in the initialisation section of your program:
    INSTALL @lib$ + "GDIPLIB"
    PROC_gdipinit
    SYS "GetModuleHandle", "GDIPLUS.DLL" TO gdip%
    SYS "GetProcAddress", gdip%, "GdipCreateBitmapFromScan0" TO `GdipCreateBitmapFromScan0`
    SYS "GetProcAddress", gdip%, "GdipSaveImageToFile" TO `GdipSaveImageToFile`
    and this code should be executed on exit:
    PROC_gdipexit
    Here is the procedure itself:
    DEF PROCpngfromhicon(png$, hicon%, w%, h%)
    LOCAL I%, bitmap%, wide%, ole32%, cfs%
    LOCAL pixel%(), alpha%(), bmi{}, ii{}, clsid{}
    DIM wide% LOCAL MAX_PATH * 2
    DIM bmi{Size%, Width%, Height%, Planes{l&,h&}, BitCount{l&,h&}, \
    \ Compression%, SizeImage%, XPelsPerMeter%, YPelsPerMeter%, \
    \ ClrUsed%, ClrImportant%}
    DIM ii{fIcon%, xHotspot%, yHotspot%, hbmMask%, hbmColor%}
    DIM clsid{a%, b%, c%, d%, e%, f%, g%, h%}
    SYS "LoadLibrary", "OLE32" TO ole32%
    SYS "GetProcAddress", ole32%, "CLSIDFromString" TO cfs%
    SYS "MultiByteToWideChar", 0, 0, "{557CF406-1A04-11D3-9A73-0000F81EF32E}", -1, wide%, MAX_PATH
    SYS cfs%, wide%, clsid{}
    SYS "GetIconInfo", hicon%, ii{}
    bmi.Size% = DIM(bmi{})
    bmi.Width% = w%
    bmi.Height% = -h%
    bmi.Planes.l& = 1
    bmi.BitCount.l& = 32
    bmi.Compression% = BI_RGB
    DIM pixel%(w% * h% - 1)
    SYS "GetDIBits", @memhdc%, ii.hbmColor%, 0, h%, ^pixel%(0), bmi{}, DIB_RGB_COLORS
    FOR I% = 0 TO h%*w% - 1
    IF pixel%(I%) AND &FF000000 EXIT FOR
    NEXT
    IF I% >= h%*w% THEN
    DIM alpha%(w% * h% - 1)
    SYS "GetDIBits", @memhdc%, ii.hbmMask%, 0, h%, ^alpha%(0), bmi{}, DIB_RGB_COLORS
    FOR I% = 0 TO h%*w% - 1
    IF alpha%(I%)=FALSE pixel%(I%) OR= &FF000000
    NEXT
    ENDIF
    SYS `GdipCreateBitmapFromScan0`, w%, h%, 4*w%, &26200A, ^pixel%(0), ^bitmap%
    SYS "MultiByteToWideChar", CP_ACP, 0, png$, -1, wide%, MAX_PATH
    SYS `GdipSaveImageToFile`, bitmap%, wide%, clsid{}, 0
    SYS !(!bitmap%+8), bitmap% : REM Bitmap::Release
    SYS "FreeLibrary", ole32%
    ENDPROC

    (view changes)
    4:43 am

Thursday, February 15

Saturday, December 2

Friday, December 1

  1. msg Linux, WINE and LBB on 64bit systems message posted Linux, WINE and LBB on 64bit systems (deleted)
    11:24 pm

More