2

I am creating application with mapbasic. Now that it's been some time with mapbasic I found that the language is very fundamental and does not support functionality that I took for granted in Java or Other language.

How do I know what mapbasic supports or does not support?

I had a look at reference guide as well as user guide but could not find anything.

1

Well, MapBasic is the "scripting" language behind MapInfo Professional. It's not designed for building "stand alone" applications. But you can integrate to WinAPI, C#, C++, Delphi and a lot of other stuff. What is it that you miss? I guess it's hard to tell what isn't supported. You can read the manual and the reference guide and see what's included

But to answer your question: MapBasic does not support function overloading - unfortunately. I have missed that a few times myself. I normally add some kind of pre- og postfix to the function/procedure if I need that type of support

2

MapBasic doesn't support function overloading. In fact, it supports so little of modern programming techniques, it may be better to assume that it doesn't support something than to spend very much time searching for it. MapBasic was designed to be a simple scripting tool, and it uses 1985 technology, and it has stayed stuck in the 80's ever since. What's amazing is how far people have pushed the edges of its envelope. You can fake it by passing a string array, and then provide some function to parse the array, etc. but there are better ways to use MapBasic by working with it. Like, forget OOP. Use module-scoped variables when you need private properties, and use a namespace-like convention for naming functions (i.e. Map_init() where init() is your initialization method) This will let you use the same name for a function while not running foul of MapBasic's "all procedures are global" convention.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.