Page 35 of 46 FirstFirst ... 253233343536373845 ... LastLast
Results 1,361 to 1,400 of 1819

Thread: TwinBasic

  1. #1361
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    The twinBASIC IDE may not be final; Wayne has mentioned building a new one, and the current one will certainly be getting upgrades-- a few in the next couple months before v1 at a minimum. If you want to weigh in on the most important IDE features for that stop by the 'IDE enhancements' thread on the tB Discord.

    I guess there's also RadBasic but at the rate it's progressing it will be a decade or more before it even approaches being able to run real VB6 programs, while tB can run many now.

  2. #1362
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    Quote Originally Posted by Daniel Duta View Post
    Does anyone know if another GUI, a modern one, is planned in the future? At least one closer to the existing one in vb6.
    What do you have in mind?
    A VS Code version of the IDE was started but is currently on hold. This is certainly more modern than the VB6 IDE but further away from VB6.

    What features do you think are missing from (or should be done differently to) the current twinBASIC IDE?

    Wayne is asking for suggestions to enhance the twinBASIC IDE. He'd like a list of your top 3 IDE enhancements.

    https://discord.com/channels/9276381...71955052982312
    Last edited by VB6 Programming; Mar 5th, 2023 at 08:16 AM.

  3. #1363
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 262 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  4. #1364
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,600

    Re: TwinBasic

    Why is the TwinBASIC/discussions on GitHub so dead? That used to be so lively. The last thing said there was 2 weeks ago. What's happening?
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  5. #1365
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: TwinBasic

    Quote Originally Posted by Niya View Post
    Why is the TwinBASIC/discussions on GitHub so dead? That used to be so lively. The last thing said there was 2 weeks ago. What's happening?
    Many posts seem to be into Discord now.
    But there are still lots of posts to GitHub twinbasic/issues.

    Maybe people find Discord easier.

  6. #1366
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,600

    Re: TwinBasic

    Ah Discord. That makes sense. It seems to becoming more and more popular among programmers looking to discuss and share ideas.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  7. #1367
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: TwinBasic programming IDE

    Wayne is asking for suggestions to enhance the twinBASIC IDE...

    https://discord.com/channels/9276381...71955052982312

    He'd like a list of your top 3 IDE enhancements.

  8. #1368
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,600

    Re: TwinBasic programming IDE

    Quote Originally Posted by VB6 Programming View Post
    Wayne is asking for suggestions to enhance the twinBASIC IDE...

    https://discord.com/channels/9276381...71955052982312

    He'd like a list of your top 3 IDE enhancements.
    Gave 2 for now.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  9. #1369
    Fanatic Member 2kaud's Avatar
    Join Date
    May 2014
    Location
    England
    Posts
    1,000

    Re: TwinBasic

    discord seems to require you to register just to view - so that's a non-starter.
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  10. #1370
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: TwinBASIC programming

    twinBASIC status update:

    twinBASIC Update: March 5, 2023

    Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.

    https://nolongerset.com/twinbasic-update-march-5-2023/

  11. #1371
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 263 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  12. #1372
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: TwinBASIC programming

    Quote Originally Posted by 2kaud View Post
    discord seems to require you to register just to view - so that's a non-starter.
    It is free. But if you have a twinBASIC issue, or suggestions for improvements to the twinBASIC IDE, you can post on Github or in this forum.

  13. #1373
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 264 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  14. #1374
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 265 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  15. #1375
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 266 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  16. #1376
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: twinBASIC programming IDE - download and install

    Quote Originally Posted by VB6 Programming View Post
    At last! BETA 238 of the twinBASIC programming IDE is now available...

    Major rewrite of ActiveX extender and UserControl implementations to better match VB6 behaviours. twinBasic generated ActiveX controls can now be used in VB6, and other hosts.
    Congratulations on your breakthrough in technology.Can generate controls, but also 64-bit, really comfortable. It would be nice to have a separate development IDE interface that doesn't rely on vs code or support both IDE's. Add VB6 and you have three IDE.

  17. #1377
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: TwinBasic

    Quote Originally Posted by yereverluvinuncleber View Post
    Well, compared to other languages the combination of VB6 and its RAD IDE, run, stop, debug and continue are still the superior choice. I am talking about youngsters starting out programming today. For all the other languages there is nothing that is as good all round. MS Visual Studio is overly complex and the .NET languages are inaccessible to starters.

    If TwinBasic manages to replicate the VB6 experience then it seems a natural starting point for VB6 BASIC to retake the role of newcomer's language. My thoughts are the same for both TwinBasic and RADBasic whichever takes the crown. Personally, I may continue to code in the VB6 IDE and use the 64bit capability of TB/RB (whichever) to gain some future-proofing potential for my creations. Whether I choose to create 64bit versions of my programs will be down to the world deciding that they really don't want 32bit apps anymore. For me, there is no other major driver.

    If, on the way VB6+TB/RB gains some future technologies, PROMISEs, multithreading and marshalling, transparent forms and controls, support for modern image formats, more than 256 controls per form, timer independence from forms, internal limitations removed by 64bitness, unicode file i/o, multiline tooltips &c&c - then I will be stimulated enough to move fully into TB/RB. For me though, what VB6 offers now is STILL very good, it just needs updating for it to shine.
    Applause is very good. One more choice is definitely better, after all, to generate 64-bit, there are more features to implement.

  18. #1378
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: twinBASIC programming IDE - download and install

    vb7.0【VFB,Visual Free Basic】like Visual Basic6 IDE
    https://www.vbforums.com/showthread.php?891422-vb7-0

    Compare the two development tools. It would be better if I could write a complete evaluation article.
    Quote Originally Posted by Daniel Duta View Post
    Does anyone know if another GUI, a modern one, is planned in the future? At least one closer to the existing one in vb6.

  19. #1379
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: twinBASIC programming IDE - download and install

    Quote Originally Posted by vbrad View Post
    Just recently I imported a small project into tb. The only thing that didn't come across perfectly were the pictures on the command buttons.
    I repeated it today with the latest version and this time they were there.
    The form in this project is pretty busy with buttons labels and other controls.
    Side by side they were identical except the vb6 one's control's styles were outdated.
    I'm just amazed by this twinBasic.
    How many lines of source code and how many controls does your project have? How many windows? Can you upload a screenshot to have a look? I can make a most complex CP project, source code is made public, everybody goes testing, that has conviction more.

  20. #1380
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: TwinBasic

    Quote Originally Posted by WaynePhillipsEA View Post
    Sure. You need to add a reference to the 'Microsoft Windows Common Controls 6.0' COM reference (Project menu > References). Once you've done that and close & saved the Settings, you should find that the common controls are available to use in the form designer.

    Due to a bug, some control members are not currently showing in intellisense, so typing 'ListView1.' for example won't show you the ListItems member, though it is actually available, so the full 'ListView1.ListItems.Add' works. This intellisense bug will be fixed later today.
    It would be even better if registration-free dynamic calls could be added. In the code, um, three five different controls or ActiveX DLLs are called dynamicallyIt would be nice if you could also load standard DLLs or ActiveX DLLs into memory.

  21. #1381
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: TwinBasic

    I haven't used your product carefully. If your visual development interface is implemented on the web. It would be better if we could also make an IDe that supports JS code. In this way, he can generate Excel and save web pages. That is, one IDE supports two languages.

  22. #1382
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    Quote Originally Posted by xiaoyao View Post
    vb7.0【VFB,Visual Free Basic】like Visual Basic6 IDE
    https://www.vbforums.com/showthread.php?891422-vb7-0

    Compare the two development tools. It would be better if I could write a complete evaluation article.
    It's hard to tell due to the language barrier, but it looks like VFB does not use the VB6 language, so there is no comparison.

    Quote Originally Posted by xiaoyao View Post
    Congratulations on your breakthrough in technology.Can generate controls, but also 64-bit, really comfortable. It would be nice to have a separate development IDE interface that doesn't rely on vs code or support both IDE's. Add VB6 and you have three IDE.
    tB hasn't relied on VSCode in a year now; it has it's own IDE. Still fairly simple, but getting better. There's a solid form editor, code folding with custom regions that can be folded, intellisense, autoindent, history, outline, callstack, debug console, etc. Bookmarks added today.

    Here's a shot of it in action with my ucShellBrowse control:



    Form editor:

    Last edited by fafalone; Mar 10th, 2023 at 07:39 PM.

  23. #1383
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: TwinBasic

    it's run ok ,very nice

    Code:
     Dim Excel1 As Object
        Dim book1 As Object
        Set Excel1 = CreateObject("Excel.Application")
        '
        Excel1.Visible = True
        Dim file1 As String
        
        file1 = App.Path & "\test1.xls"
        MsgBox file1
        Set book1 = Excel1.Workbooks.Open(file1)
        MsgBox book1.Worksheets("sheet1").Range("a1")
        Excel1.Quit
        End Sub

  24. #1384
    PowerPoster
    Join Date
    Jan 2020
    Posts
    3,749

    Re: TwinBasic

    Feel the biggest problem is that the project file is a single file, which is very bad, not conducive to large project management, in fact, should be used like VB6 in the form of multiple files, such as forms, FRM, bAS file etc. . It would be nice if it were 100% compatible. Just add a project profile. Because many general-purpose modules or class files can be shared by multiple files, it is better to save modules, classes, forms in multiple file formats for file sharing and reuse, it also reduces the amount of disk space it takes up. Add another feature to export the full project to another directory. VB6 project is because some files in the shared directory, the need to complete the project to copy to the U disk, can only copy one by one, spend a lot of time. If the addition of function library management, code snippets, modules, class file database management, when the need for a key search, reference or import code snippets more convenient. What surprised me the most was that Twinbasic ran and compiled almost in real time, and the speed was absolutely superb. So for the function of the test, the complete module of the test can be displayed on the form code compilation run, similar to the web page to learn JS code, real-time test code.
    Last edited by xiaoyao; Mar 11th, 2023 at 02:45 AM.

  25. #1385
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    I agree about the single file being the only option and have been told VBP-like project files referencing individual source files are absolutely a planned feature.

    Right now there is a feature to export the individual source files (File->Export) and you can then import them to other projects (Right click on Sources->Add->Import file). There's also packages, and an online package server. You add these as references. (The IDE is missing the ability to publish to the package server right now, but you can still do it via the old VS Code plugin, this is supposed to be fixed soon).

    It's still Beta software with quite a bit on the list of things not yet done, but it's coming along very quickly and is getting very close-- able to run large, complex projects like forms with my ucShellBrowse UserControl. Just today one of the last few major missing pieces became available (automatic importing of .res files from VB6 projects).
    Last edited by fafalone; Mar 11th, 2023 at 04:50 AM.

  26. #1386
    PowerPoster PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Pontypool, Wales
    Posts
    2,474

    Re: TwinBasic

    Quote Originally Posted by fafalone View Post
    I agree about the single file being the only option and have been told VBP-like project files referencing individual source files are absolutely a planned feature.
    Not tried tB myself, however the thought of a single file would make me concerned about how well it would integrate with any decent version control system.
    Last edited by PlausiblyDamp; Mar 11th, 2023 at 07:22 AM.

  27. #1387
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 267 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  28. #1388
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    So I wrote this for a post in a random thread in the VB6 forum, but thought I should add it here.

    The WWW site for tB only lists a few of the new features, and there's no centralized list available yet. So I made a list of all the new features I could recall right now. I've included LongPtr/64bit LongLong as these are new vs VB6 but obviously VBA7 has them. These are all available *right now*...

    • LongPtr data type (4 bytes on 32bit, 8 on 64bit)
    • LongLong data type, available in both 32bit and 64bit (VBA LongLong is only available in 64bit Office)
    • True Decimal data type instead of just inside a Variant.
    • All the standard accessories for the new data types, e.g. DefDec/DefLngLng/DefLongPtr, CDec/CLngLng/CLongPtr, and vbDecimal/vbLongLong/vbLongPtr constants for type checking.
    • Define interfaces and coclasses in language, [ InterfaceId(GUID) ]/Interface IFoo Extends IUnknown/.../End Interface
    • Implements allowed on inherited interfaces-- e.g. you can just implement IShellFolder2, and provide all the methods for IShellFolder, and tB will automatically respond to QI for IShellFolder *and* IShellFolder2.
    • If you have an interface multiple others extend from, you can write multiple implementations, or specify one implementation for all: e.g. IOleWindow_GetWindow() As LongPtr Implements IOleWindow.GetWindow, IShellBrowser.GetWindow, IShellView2.GetWindow
    • Implements allowed on interfaces with 'As Any' parameters-- you can substitute LongPtr.
    • Implements Via to extend classes
    • vbNullPtr allows passing null pointers to UDT members of APIs/interfaces (in VB6 you'd have to declare them As Any and then could pass ByVal 0)
    • Short-circuit conditional operators OrElse and AndAlso
    • Support for modern image formats
    • Transparency on forms
    • Bitshift operators << and >>
    • New assignment operators: += -= /= *= ^= &= <<= >>=
    • Thread safety/multithreading support-- no native language syntax yet (planned), but you can call CreateThread directly with no hacks
    • Ability to define custom packing for UDTs with [ PackingAlignment(n) ] attribute
    • AddressOf can be used on class/form/UC members, including from outside the class by specifying the instance. Also, no need for FARPROC-type functions, you can use it like Ptr = AddressOf Func
    • Overloading, both with type of argument and number of arguments
    • Generics
    • DeclareWide to disable Unicode-ANSI conversion on API declares
    • Built in support for making standard DLLs with simple [ DllExport ] attribute
    • CDecl support for API calls and procedures (though The trick has a patch for VB6 that adds this); this is respected for standard DLL exports as well.
    • Continue For, Continue While, Continue Do, Exit While
    • Return syntax for functions
    • Err.LastHResult and Err.ReturnHResult to get/set COM interface hresults
    • Parameterized class constructors
    • [ Description("text") ] attribute for APIs, UDTs , Consts, Procedures, Interfaces, and CoClasses that are shown in popups when you hover over uses of them; exported to typelib as helpstring() where applicable.
    • Built in support for making kernel-mode drivers
    • Built in support for overriding entry point
    • Option to put all API declares in the import table rather than runtime calls like VB6 (VB6 puts TLB-declared APIs in the import table; tB replicates this too but further provides an option for in-project declares).
    • Built in support to mark projects DEP-aware and LARGEADDRESSAWARE
    • [ RunAfterBuild ] attribute-- you can specify a function that runs after your exe is built (there's App.LastBuildPath to know where it is if you're e.g. signing the exe)
    • Register ActiveX builds to HKEY_LOCAL_MACHINE option
    • Private/Public modifiers for modules and classes
    • All tB-implemented controls support Unicode
    • Detects stale/dangling pointers for strings, replacing them with warning symbols
    • Warnings for likely-incorrect hex literals &H8000-&HFFFF and &H80000000-&HFFFFFFFF (these almost always should be e.g. &H8000& to avoid being interpreted as a negative Integer).
    • tB-implemented controls all support x64 and are all dpi aware (Currently available ones: CommandButton, TextBox, ComboBox, CheckBox, OptionButton, Label, Frame, PictureBox, Line, Shape, VScrollBar, HScrollBar, Timer, DriveListBox, DirListBox, FileListBox, Image, TreeView, ProgressBar, DTPicker, MonthView, Slider, and UpDown. For others, Krool's VBCCR and VBFlexGrid are now available as x64 compatible for tB. Additionally, the Microsoft-provided OCXs for others will work, but the x64 version of MSComCtl.ocx doesn't come with Windows and isn't legally redistributable-- but if you have Office 64bit, it works in tB).
    • Form.DpiScaleX/Y properties
    • Per-procedure [ IntegerOverflowChecks(False) ], [ FloatingPointErrorChecks(False) ] and [ ArrayBoundsChecks(False) ] attributes to disable those checks on performance-critical routines while leaving them generally in place.
    • Constant function folding: You can specify a [ ConstantFoldable ] attribute for functions where when called with non-variable input, will be computed at compile time, rather than runtime. For example, a function to converted string literals to ANSI. The result would never change, so the resulting ANSI string is stored, rather than recomputing every run.
    • Removal of limits on line continuations, procedure size, etc.
    • Handles and Implements procedure syntax so you can use different names if you wish, for instance instead of Form_Load you can have Sub AppStart() Handles Form.Load
    • IsNot operator
    • CurrentComponentName CurrentProcedureName CurrentProjectName CurrentSourceFile and CurrentComponentCLSID variables; easily make boilerplate code like error handlers.
    • Compiler warnings for common bad practices or likely oversights, with ability to set them to ignore or turn them into an error both project-wide and per-procedure with [ IgnoreWarnings(TB___)], [ EnforceWarnings(TB____) ], and [ EnforceErrors(TB____) ] attributes
    • Customize COM initialization call used by hidden entry point (CoInitialize STA, CoInitializeEx MTA, OleInitialize STA)
    • Built-in ability to make a console project rather than a GUI project with default Console class for reading/writing console IO and provided debug console.
    • Form .MinWidth, .MinHeight, .MaxWidth, and .MaxHeight properties
    • Control anchors-- control x/y/cx/cy can made relative, so they're automatically moved/resized with the Form.'
    • Form.Opacity property for alpha blending
    • Form.TopMost property
    • TextBox.NumbersOnly
    • PictureDpiScaling property for Forms/UCs/PB
    • CodeLens allows running Subs in modules with no arguments right from the editor without starting the full program
    • Internal functions like MsgBox now support Unicode
    • IDE features long desired that VB6 lacks: Code folding (with ability to define Regions that can also be folded via #Region ... #End Region), sticky scroll, multiple modules/classes per file, Unicode support in editor/properties, info on hover, advanced info option for hover shows Len/LenB/alignment for UDTs and offsets for UDTs and interface methods, and the full inheritance chain for interfaces. Also History panel, parenthesis/bracket color matching, minimap, and Variables panel that dumps the values of ones in use by that procedure on break, controls with Visible=False are faded, Outline panel with control over what's outlined. Type library viewer shows the entire source in tB language syntax.
    • Online package server for code packages that can contain any type of tB code-- modules, classes, etc. (They can be used offline too.)
    • Inline initialization of variables (e.g. Dim x As Long = 1)
    • [ Unimplemented ] attribute for methods allows showing a compiler warning about it being unimplemented wherever it's called (you can upgrade it to error too).
    • Can have module-level declares in between Subs/Functions instead of needing to all be above them (while often bad coding practice this is good for e.g. very simple 1-line macros directly related to declares).
    • [ SetDllDirectory (True/False) ] attribute to allow an explicitly loaded DLL to load it's own dependencies from it's load path. Also has the effect of allowing searching the app path for the DLLs in the base app's declare statements (used per-declare).
    • Support for block and inline comments with /* */ syntax, e.g. Sub Foo(bar As Long /* out */)
    • [ TypeHint() ] attribute allows populating Intellisense with an enum for types other than Long.
    • [ CompileIf(condition)] method attribute for more advanced control over conditional compilation.
    • LoadPicture can now accept a byte array as a source for images.
    • Len and LenB can now be used on type names as well as variables, e.g. LenB(Of LongPtr) will return 4 or 8 depending on 32/64bit, and LenB(Of MyUDT) will return the size of Type MyUDT without needing to declare a variable of those types.
    • Short-circuiting If() function to guarantee consistent behavior not offered by VB's IIf.
    • Binary literals: b = &B100110110
    • Grouping for literals with _ (underscore): b = &B01010101_10101010



    And I guarantee I'm missing some (still-- I've been updating this post as I remember or am reminded about others). There's a whole bunch more planned, including unsigned types, aliases defined in language, inheritance, etc.

    So there's *already* a lot of compelling reasons to use tB over VB6.

    I've been working on a more detailed writeup of each one, but it's only about 2/3rd complete.

    Edit: 6 months after originally posting this, I'm still finding things I missed... today, it was binary literals! &B10010110101
    Last edited by fafalone; Sep 13th, 2023 at 12:57 PM.

  29. #1389
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    Quote Originally Posted by PlausiblyDamp View Post
    Not tried tB myself, however the thought of a single file would make me concerned about how well it would integrate with any decent version control system.
    You can set it to export after save, to a path with project variables-- so you can create an export for every version that updates it until you build and change the version number.

    Then you have the [RunAfterBuild] attribute you can apply to a function, so you could write one to copy everything from the export folder to somewhere linked to a source control system, or directly to an online one.

  30. #1390
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,600

    Re: TwinBasic

    Quote Originally Posted by fafalone View Post
    So I wrote this for a post in a random thread in the VB6 forum, but thought I should add it here.

    The WWW site for tB only lists a few of the new features, and there's no centralized list available yet. So I made a list of all the new features I could recall right now. These are all available *right now*...

    • Define interfaces and coclasses in language
    • Implements allowed on inherited interfaces-- e.g. you can just implement IShellFolder2, and provide all the methods for IShellFolder, and tB will automatically respond to QI for IShellFolder *and* IShellFolder2.
    • If you have an interface multiple others extend from, you can write multiple implementations, or specify one implementation for all: e.g. IOleWindow_GetWindow() As LongPtr Implements IOleWindow.GetWindow, IShellBrowser.GetWindow, IShellView2.GetWindow
    • Implements allowed on interfaces with 'As Any' parameters-- you can substitute LongPtr.
    • Implements Via to extend classes
    • vbNullPtr allows passing null pointers to UDT members of APIs/interfaces (in VB6 you'd have to declare them As Any and then could pass ByVal 0)
    • Support for modern image formats
    • Transparency on forms
    • Even more operators: += -= /= *= ^= &= <<= >>=
    • Thread safety/multithreading support-- no native language syntax yet (planned), but you can call CreateThread directly with no hacks
    • Ability to define custom packing for UDTs with [ PackingAlignment(n) ] attribute
    • AddressOf can be used on class/form/UC members, including from outside the class by specifying the instance. Also, no need for FARPROC-type functions, you can use it like Ptr = AddressOf Func
    • Overloading, both with type of argument and number of arguments
    • Generics
    • DeclareWide to disable Unicode-ANSI conversion on API declares
    • CDecl support for API calls (though The trick has a patch for VB6 that adds this)
    • True Decimal type instead of just inside a Variant
    • Continue For, Continue While, Continue Do, Exit While
    • Return syntax for functions
    • Err.LastHResult and Err.ReturnHResult to get/set COM interface hresults
    • Parameterized class constructors
    • Description attributes for APIs and UDTs
    • Multiple modules/classes per-file
    • Built in support for making standard DLLs with simple [DllExport] attribute
    • Built in support for making kernel-mode drivers
    • Built in support for overriding entry point
    • Option to put all API declares in the import table rather than runtime calls like VB6 (VB6 puts TLB-declared APIs in the import table).
    • Built in support to mark projects DEP-aware and LARGEADDRESSAWARE
    • [RunAfterBuild] attribute-- you can specify a function that runs after your exe is built (there's App.LastBuildPath to know where it is if you're e.g. signing the exe)
    • Register ActiveX builds to HKEY_LOCAL_MACHINE option
    • Private/Public modifiers for modules and classes
    • Unicode support in code editor
    • Detects stale/dangling pointers for strings, replacing them with warning symbols

    And I guarantee I'm missing some. There's a whole bunch more planned, including unsigned types, aliases defined in language, inheritance, etc.

    So there's *already* a lot of compelling reasons to use tB over VB6.
    Wow, he's added a lot of stuff since the last time I checked it out.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  31. #1391
    PowerPoster PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Pontypool, Wales
    Posts
    2,474

    Re: TwinBasic

    Quote Originally Posted by fafalone View Post
    You can set it to export after save, to a path with project variables-- so you can create an export for every version that updates it until you build and change the version number.

    Then you have the [RunAfterBuild] attribute you can apply to a function, so you could write one to copy everything from the export folder to somewhere linked to a source control system, or directly to an online one.
    Is there an easy way to import automatically as well? Otherwise it would seem this is fine for committing changes to a version control system, but would make it really difficult to do anything that involved frequently branching, rolling back, or pulling from a central server.

  32. #1392
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    Not yet, tB is moving along at an excellent pace compared to every other attempt but it's still in beta with a long to-do list and unfortunately there's only one Wayne... certainly sounds like a good feature request to make.

    It will all be much better when project files can act like VBP files and just reference external sources. That would sidestep the need for a specific import feature for the time being.

  33. #1393
    Addicted Member
    Join Date
    Dec 2020
    Posts
    205

    Re: TwinBasic

    Quote Originally Posted by fafalone View Post
    Not yet, tB is moving along at an excellent pace compared to every other attempt but it's still in beta with a long to-do list and unfortunately there's only one Wayne... certainly sounds like a good feature request to make.

    It will all be much better when project files can act like VBP files and just reference external sources. That would sidestep the need for a specific import feature for the time being.
    There is an 'Import from folder...' option on the New project dialog which takes the output from the Export Project feature and recreates the twinproj file.

    The external files support will be available before v1.
    Last edited by WaynePhillipsEA; Mar 11th, 2023 at 12:58 PM.

  34. #1394
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 268 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder




    How to install https://nolongerset.com/how-to-install-twinbasic/

  35. #1395
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,250

    Re: TwinBasic

    Quote Originally Posted by Niya View Post
    Wow, he's added a lot of stuff since the last time I checked it out.
    Crikey, I thought that was the list of "greatly desirable functionality in TB". However, if it is truly what is in TB already, then that's impressive.
    https://github.com/yereverluvinunclebert

    Skillset: VMS,DOS,Windows Sysadmin from 1985, fault-tolerance, VaxCluster, Alpha,Sparc. DCL,QB,VBDOS- VB6,.NET, PHP,NODE.JS, Graphic Design, Project Manager, CMS, Quad Electronics. classic cars & m'bikes. Artist in water & oils. Historian.

    By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.

  36. #1396
    Fanatic Member Episcopal's Avatar
    Join Date
    Mar 2019
    Location
    Brazil
    Posts
    547

    Re: TwinBasic

    I don't know if it's time to ask this, but the TB executable is faster than the VB6 EXE. Or have you not reached this stage yet?

  37. #1397
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    8,600

    Re: TwinBasic

    It still produced unoptimized native code last I checked. I seem to recall talk of an optimizing compiler being available only in paid versions. I don't know if any of this has changed though.
    Treeview with NodeAdded/NodesRemoved events | BlinkLabel control | Calculate Permutations | Object Enums | ComboBox with centered items | .Net Internals article(not mine) | Wizard Control | Understanding Multi-Threading | Simple file compression | Demon Arena

    Copy/move files using Windows Shell | I'm not wanted

    C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter

    There's just no reason to use garbage like InputBox. - jmcilhinney

    The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber

  38. #1398
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    5,711

    Re: TwinBasic

    The unoptimized native code tB currently produced is faster than VB6 P-Code but slower than VB6 native code optimized for speed.

    But tB has some features here I forgot to list.

    You can specify [ IntegerOverflowChecks(False) ], [ FloatingPointErrorChecks(False) ] and [ ArrayBoundsChecks(False) ] on a per-procedure level, so you can leave those on generally, but disable them for performance-critical routines, and greatly improve performance. I don't recall what the numbers came out to vs. VB6's code without disabling those options project-wide.

    Another one I forgot is [ ConstantFoldable ]-- tB has constant function folding, which can resolve function calls that will never change at compile time, rather than executing them at runtime.

    So for example.

    Code:
    [ ConstantFoldable ]
    Private Function ToANSI(sIn As String) As String
        Return StrConv(sIn, vbFromUnicode)
    End Function
    When constant function folding is enabled,

    Code:
    Private Foo As String
    
    Foo = ToANSI("Bar")
    is computed and the result stored in your exe at compile time, so the function doesn't need to run when the result will never change.

    AFAIK the plan for optimized exes to be subscriber only hasn't changed; but I don't think that's too unreasonable.

    @yereverluvinuncleber, yes, that's a list of new features you can use right now in the current build of tB. I've updated the list with these and some others I forgot at first. The list of planned but not yet implemented features is a separate list with a lot more on it.
    Last edited by fafalone; Mar 13th, 2023 at 08:50 AM.

  39. #1399
    Frenzied Member
    Join Date
    Feb 2015
    Posts
    1,054

    Re: twinBASIC programming IDE - download and install

    BETA 269 of the twinBASIC programming IDE is now available...

    Download from here... https://github.com/twinbasic/twinbasic/releases


    1. Click on "Assets" for the latest release
    2. Download and Extract the ZIP file into a local folder
    3. Then run the twinBASIC.exe from that local folder



    How to install https://nolongerset.com/how-to-install-twinbasic/

  40. #1400
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,447

    Re: TwinBasic

    @fafalone,

    It seems that tB already uses method-attributes like VB.NET and C#, which makes the language much more flexible and expressive, but does this greatly increase the complexity of the language? Also, why does tB use C#'s square brackets instead of angle brackets similar to VB.NET when marking method-attributes? Eg:
    Code:
    <ConstantFoldable>
    Private Function ToANSI(sIn As String) As String
        Return StrConv(sIn, vbFromUnicode)
    End Function

Page 35 of 46 FirstFirst ... 253233343536373845 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width