Feature requests & feedback for Data Extension RRS feed

All replies

  • Oskariok,

    I would like to be able to save a whole graphics window to a file.  What I would envision would be Picturetools.savegraphicswindow().  This way if you had a graphics window that you needed to save you could put it in a file and either reuse it at a later time or print it with your print extension.

    Also, another suggestion would be to label all of your extension functions with "OS".  Much like Fremy did with his by puttng "FC" in front of everything.  His FC let's me know that I am using a Fremy extension and not a small basic function or someone elses extension.

    Thanks for the good work.


    Sunday, August 15, 2010 1:25 PM
  • Hello Oskariok,

    who is a discription for your extention?

    The extenion SoundPlus.GetSound put the the path with the filename in a variable, but all spaces are "%". It is an error?

    Best Regards Martin
    Sunday, August 15, 2010 3:52 PM
  • martmen , Do you mean you have bug with return of SoundPlus.GetSound? If you have please post your code.

    Sorry My Bad English
    Sunday, August 15, 2010 4:25 PM
  • oskariok show line 20 in LRQ912. the Result is "....%20....%20-%20...." and so on.

    My English is also bad. I am german and you?

    Best Regards Martin
    Sunday, August 15, 2010 4:37 PM
  • martmen, This is a bug and I will fix this for

    Sorry My Bad English
    Sunday, August 15, 2010 5:46 PM
  • Hi!  I start coding now. will come out today.

    Sorry My Bad English
    Sunday, August 15, 2010 6:07 PM
  • Oskariok,

    Is it possible in your printer function to put something like this?

    Newfont=printing.CreatePrintFont("Courier New",10,"Black")

    What I am wanting to do is to set tab stops on the printer.  Notice the second line.  I know it doesn't work now, but could it be made to work?  I need to do it inside the program as it's the only way that I can think of to send the control characters.  This is an escape d 9 and close the command sequence.



    Thursday, August 26, 2010 10:47 PM
  • You can make image and print that image from ImageList (I am making some new drawing functions for that or you can use FCDrawings).

    Sorry My Bad English
    Friday, August 27, 2010 2:49 PM
  • Oskariok,

    Would it be possible to change your print routine so that it does tabs if they are in a file that is to be printed? 

    Right now if you create a notepad file and put some tabs in the data and print you will see where the output matches what you would see in the notepad display.  If you print the same file within small basic you'll find that everything is squashed together.  That's saying your routine does nothing with a tab character.

    I can get this to work OK through a workaround, but it would be a lot easier if your print function did it.




    Saturday, August 28, 2010 4:29 PM
  • My way is much easier for me. Also the real function uses same way.

    Sorry My Bad English
    Sunday, August 29, 2010 8:27 AM
  • Oskariok,

    Could you give me an example of your way?  I tried the image thing that you suggested previously and couldn't get it to work.




    Sunday, August 29, 2010 1:20 PM
  • The real function is something like this but coded with C#:

    IsMoreLines = true

    While IsMoreLines

    X = Page.Height / PrintFont.Height

    for i = 0 to  X

    Page.DrawString(File.ReadLine(FilePath,i),0,i * HeightOfFont + 3, PrintFont)

    'Page.DrawString(String, X , Y,PrintFont)


    if File.IsMoreLinesInFile(FilePath) = true then

    IsMoreLines = false



    In Small Basic you can use (but you need Data extension

    Page = PictureTools.CreateImage(600,700)

    NumberOfLines = 10

    i = 1

    FontSize = 12

    for i = 1 to NumberOfLines

    Text = File.ReadLine("?",i)

    Page = PictureTools.AddText(Page,0,i*FontSize+4,Text,"Arial",FontSize,"False","False")

    'Page = PictureTools.AddText(Image,X,Y,Text,FontName,FontSize,IsFontBool,IsFontItalic)



    Sorry My Bad English
    Sunday, August 29, 2010 2:12 PM
  • Oskariok,

    I might have missed it, but isn't out yet is it?  If it isn't do you have any idea of when it will be released?







    Sunday, August 29, 2010 10:44 PM
  • Oskariok,

    After looking at the suggested code I think maybe there is a misunderstanding about what I am talking about.  Here's a code snippet to try:

    TabbedLine="This"+Text.GetCharacter(09)+" is"+Text.GetCharacter(09)+"a "+Text.GetCharacter(09)+"tabbed"+Text.GetCharacter(09)+"line.  "+text.GetCharacter(09)+"See"+Text.GetCharacter(09)+"the "+text.GetCharacter(09)+"spacing?"

    If you let this print from your print function you will see that the characters are squished together.  The text.getcharacter(09) is the ASCII tab character.  If you bring up the file from c:\TestTabbed.txt via Notepad you will see that the line is spaced out due to the tabs.  If you then send this to the printer you can see the difference.

    What I am asking is could the print function be made to honor the tab character.  As I understand the printer will do the tabbing if the character is sent to it.



    Sunday, August 29, 2010 11:57 PM
  • Only thing you can do is make images. And Data isn't released yet. Currently it is in closed beta testing. If it don't have any bugs it can come out in next Friday or before but if it have bugs it can take 2 weeks or more. But new picture functions like AddText, HideMessegiInBMP and ReadMessegeFromBMP are working well.

    Sorry My Bad English
    Monday, August 30, 2010 10:59 AM
  • Any enhancement for database?
    Tuesday, August 31, 2010 1:33 AM
  • I can make database but that will bee to complex for Small Basic. Best database for small basic is arrays and file writing and reading.
    Sorry My Bad English
    Tuesday, August 31, 2010 12:32 PM
  • 1. Sliders (Controls)

    2. Drop-Downs (Controls)

    3. GetSubTextBetween(textwheresubis,startcharacter,endcharacter)

    4. OperatingSystem.IdleTime (gets the time that the conputer is idle, so make some screensavers!)

    • Edited by Kroltan Wednesday, September 1, 2010 5:03 PM 4.
    Wednesday, September 1, 2010 5:02 PM
  • Kroltan,

    1. No (but maybe later)

    2. No (It will be too complex because all must be static)

    3. No (use "for" and "GetSubText" and "if" and "Append")

    4. Maybe (That function is possible but if you make screensaver the power mode will be normal and the real screensaver will be enabled)(Also GetLastInputTime and GetSystemUpTime are possible)

    Sorry My Bad English
    Wednesday, September 1, 2010 5:45 PM
  • More ideas:

    1. MousePlus.FakeMouseClick(x,y,button)

    2. Keyboard.FakeKeyPress(key,duration)

    Check out my website:
    Wednesday, September 1, 2010 7:29 PM
  • ok, I add all GetTime properties under OperatingSystem, and I see what i can do with your fake mouse and keyboard ideas(I don't want make anything which allows kids or adults to make bots for WOW and Runescape or any other mmorpg game).

    [EDIT] I also don't want any spying programs or keyloggers.

    Sorry My Bad English
    Thursday, September 2, 2010 12:31 PM
  • Hi Oskariok,

    I think many of those who have problems with NetworkServer has problems because of their IP address.


    NetworkPlus.IsIPAddress uses the algorithm ###.###.#.### (I checked the extension in .NET Reflector) . This will only work with 37,964,160 of 4,294,967,296 (ok, practical seen fewer), but I've tested with three IP adresses, and only one was ###.###.#.### (192.168.x.x) and worked. One of the other was (Apple) and failed.



    Thursday, September 2, 2010 2:03 PM
  • Yes it looks like  use ###.###.#.### pattern with IP address in hurry. I fix this for And please stop reflecting my Data.dll.

    Sorry My Bad English
    Thursday, September 2, 2010 4:06 PM
  • And please stop reflecting my Data.dll.

    Thursday, September 2, 2010 6:55 PM
  • we can do keyloggers right now...

    and fake click/press could be an autoclicker (yay MU online) or whatever you cando, like an auto typer for instant messenging programs...

    Check out my website:
    Thursday, September 2, 2010 10:25 PM
  • Feature request:

    Exit handler! With an exit handler you can make “Would you like to save this document before closing?”-like questions!


    Object.Exit = OnExit
    Sub OnExit
     answer = Dialogs.ShowMessegeBox("Want to save the document you are closing?", Title, "YesNoCancel", Theme)
     If answer = "Yes" Then
     ElseIf answer = "No" Then


    Another thing.

    It should be Message not Messege. And Received not Recieved.


    Yet another thing.

    When will Data Extension be released?


    Btw, good extension.

    Intro to Small Basic with Vijaye Raji
    Expert to Expert – The Basics of Small Basic
    Friday, September 17, 2010 7:11 PM
  • I can add Closing event to my new GameWindow like

    GameWindow.Closing = OnClosing
    Sub OnClosing
    answer = Dialogs.ShowMessegeBox("Want to save the document you are closing?", Title, "YesNoCancel", "Question") If answer = "Yes" Then Save() Program.End() ElseIf answer = "No" Then Program.End() EndIf EndSub

    And I don't know when will be released.

    Sorry My Bad English
    Friday, September 17, 2010 7:27 PM
  • I can add Closing event to my new GameWindow like

    GameWindow.Closing = OnClosing
    Sub OnClosing
    answer = Dialogs.ShowMessegeBox("Want to save the document you are closing?", Title, "YesNoCancel", "Question") If answer = "Yes" Then Save() Program.End() ElseIf answer = "No" Then Program.End() EndIf EndSub

    And I don't know when will be released.

    Sorry My Bad English
    Yes, this event will be cool
    Sunday, September 19, 2010 5:06 AM
  • I added GameWindow.Closing event and another events, slider control, fixed IP address pattern

    Sorry My Bad English
    Saturday, September 25, 2010 8:46 PM
    • Edited by Danair Monday, September 27, 2010 5:20 PM Thank you for answer
    Monday, September 27, 2010 4:48 PM
  • Classic Theme is Windows 2000 theme and Expression theme is from

    Yes, that is Classic.

    NetworkClient is local but you cant do anything whit it if you don't have NetworkServer in local computer or in some another computer behind internet. Client can send text to server and server to all clients. You don't need any other software or Windows Server. Everything what they send is encrypted and uses port 2010.

    They don't need to be in same network, but firewalls and proxies can limit those functions.

    Sorry My Bad English

    Monday, September 27, 2010 5:09 PM
  • ... but you cant do anything whit it if you don't have NetworkServer in local computer or in some another computer behind internet. Client can send text to server and server to all clients. You don't need any other software or Windows Server. Everything what they send is encrypted and uses port 2010.


    Sorry My Bad English

    I know that. I wrote a successful server and client application about a month ago.


    Hardware.CpuBit returns nothing (My processor (Intel(R) Core(TM) i5 CPU       M 430  @ 2.27GHz) has 64-bit architecture)

    Intro to Small Basic with Vijaye Raji
    Expert to Expert – The Basics of Small Basic
    Monday, September 27, 2010 5:39 PM
  • Yes, it looks I had one "W" in lowercase in code.

    Sorry My Bad English
    Monday, September 27, 2010 5:51 PM
  • It would be really nice if there was a Math function which could allow you to round a number to a specific number of decimal places or significant figures. For example 7.61583 to 2 decimal places: 7.62.
    Tuesday, September 28, 2010 2:00 PM
  • I can add MathPlus.RoundWithDecimals(Number,Decimals).

    in your case MathPlus.RoundWithDecimals(7.61583,2) and return is "7.62".

    Sorry My Bad English
    Tuesday, September 28, 2010 2:47 PM
  • That would be excellent thank you. When can I expect this addition to be available?
    Tuesday, September 28, 2010 2:52 PM
  • No idea

    Sorry My Bad English
    Tuesday, September 28, 2010 3:39 PM
  • OK, as long as it's added that's awesome! 
    Tuesday, September 28, 2010 4:46 PM
  • This can be done in SmallBasic already with a little manipulation:

    TextWindow.WriteLine("Input a number")
    input = TextWindow.ReadNumber()
    input_rounded = 0.01*Math.Floor(0.5+100*input)
    TextWindow.WriteLine(input+" rounded to the nearest 2 decimal places is "+input_rounded)

    Tuesday, September 28, 2010 5:46 PM
  • I knew there would be a hack for it, but to be honest it would be a lot easier and simpler to have it as a feature...
    Tuesday, September 28, 2010 5:54 PM
  • One point about Small Basic is that there are deliberately NOT too many commands to remember and different ways of doing similar things.  Many other languages are hard to learn BECAUSE there are so many different comands and features doing very similar things and it takes a lot of time finding the commands.  It is only a lot easier if you know and remember the command.  Just a thought...
    Tuesday, September 28, 2010 6:09 PM
  • Well, it is a very basic feature I'm proposing, there is already a round function all you would have to do is modify it slightly so that you put a comma after the number you want to round followed the ammount of decimal places you want; for example:

    Math.Round(7.9565621256, 2) = 7.96

    Also a feature allowing the user to give their programs a custom icon would be nice. Something like:


    Tuesday, September 28, 2010 6:50 PM
  • You can set icon with Game object but I remove that feature from (because the new GameWindow). Also I cant add functions under Small Basic objects.

    Sorry My Bad English
    Tuesday, September 28, 2010 7:21 PM
  • Could you add a feature that senses when the "X" button is clicked in the top right corner of the window? Because in text editing programs you could loose a great amount of work by clicking one button.
    Sunday, October 10, 2010 9:18 PM
  • maybe...

    GameWindow.XButton = XButton

    Sub XButton

      'Detects when the close button is clicked...

      dialog = Dialogs.ShowMessegeBox("Save the currently open file?", "Save File", "YesNoCancel", "Question")

      If dialog = "Yes" Then



      Elseif dialog = "No" Then



      Elseif dialog = "Cancel" Then




    Sunday, October 10, 2010 9:23 PM
  • I have added GameWindow.Closing event handler. It raises event when user closes GameWindow or program ending closes GameWindow.

    so here is the code:

    GameWindow.Closing= OnGameWindowClosing

    Sub OnGameWindowClosing

     dialog = Dialogs.ShowMessegeBox("Save the currently open file?", "Save File", "YesNo", "Question")

      If dialog = "Yes" Then


        Program.End()' Not needed if program uses only GameWindow

      Elseif dialog = "No" Then


        Program.End()' Not needed if program uses only GameWindow



    + Also if you or user closes GameWindow and TextWindow or/and GraphicsWindow is visible program doesn't end.

    + GameWindow have support for 15 different control.

    + GameWindow have support for 4 different window event.


    Sorry My Bad English
    Monday, October 11, 2010 11:04 AM
  • Would it be possible to make a function that determines if the program is opened to read a file like:

    If (Object.OpenedWithFile) = "True" Then




    or, a function that allows things to be dragged and dropped?


    Object.ItemDragged = OnDrag

    Object.ItemDropped = OnDrop

    Sub OnDrag

      GraphicsWindow.ShowMessage("Where do you think you're dragging this file to??!!", "ALERT!!!!ALERT!!!!")



    Sub OnDrop

      GraphicsWindow.ShowMessage("How nice of you to contribute this donation!", "THANK YOU!")

      GraphicsWindow.DrawText(50, 50, ": )")


    Monday, October 11, 2010 8:56 PM
  • 1) you can add variable in your code and use if statement.

    2) Dragging and dropping will be to complex for Small Basic (But it is possible)

    Sorry My Bad English
    Tuesday, October 12, 2010 10:53 AM
  • Can there be function for locking textboxes, buttons, and objects?

    control = Controls.AddButton(0, 0)



    Friday, October 15, 2010 4:00 AM
  • So when when you don't want a user to do something, you can lock control
    Friday, October 15, 2010 4:33 AM
  • How about function to get the users on the current computer as an array?

    users = OperatingSystem.UsersLoggedOn()

    usersnumber = OperatingSystem.NumberOfLoggedOnUsers()

    If usersnumber > 2 then

      GraphicsWindow.ShowMessage("Your computer must be slow". "")

      textwindow.writline("Your current users: ")

      For i = 0 to usersnumber






    Friday, October 15, 2010 4:36 AM
  • Mabye a function to let people draw and save work?

    Only problem with FC is when making paint program with FC extension, you need to constantly generate image. this slows program. How about...

    canvas = Picuretools.CreateCanvas(100, 100)

    Picturetools.AlwaysGenerateImage(canvas, "True")

    text1 = Picturetools.Addtext(canvas, 50, 50, "hello")

    ellipse1 = Picturetools.Addellipse(canvas, 50, 10, 10, 10)

    Picturetools.Saveimage(canvas, "C:\Users\" + Operatingsystem.User + "\Pictures\" + Dialogs.Askfortext("name:", " ") + ".jpg")

    Friday, October 15, 2010 6:26 AM
  • WPF does have Ink Canvas that i can add to small basic but that will be too complex for Small Basic.

    Also it is possible to add OperatingSystem.Users but I wont add that because Security.

    I don't add GameWindow.LockControl(shape) and GameWindow.UnlockControl(shape) but I have added GameControls2D.SetEnabled(shape, "True"/"False") and GameControls2D.GetEnabled(shape).

    Sorry My Bad English
    Friday, October 15, 2010 12:39 PM
  • Oskariok,

    Would it be possible to add setting the initial directory for the dialogs.askforfile function?


    Friday, October 15, 2010 5:10 PM
  • Yes, but I won't add that parameter to Dialogs.AskForFile function.
    Sorry My Bad English
    • Edited by Oskariok Saturday, October 16, 2010 8:00 AM
    Friday, October 15, 2010 7:19 PM
  • Oskariok,

    Thanks.  I think by adding that capability it will open up what we can do with the dialogs!


    Friday, October 15, 2010 11:52 PM
  • Can there be transparent 3D objects?


    How about option for maximized window? or minimized window? can this be added to GameWindow.MaximizedWindow("True") and GameWindow.MinimizedWindow("True")?


    How about function to allow objects to be scrolled, so you can add controls and images to be scrolled?

    GameWindow.AddScrollBox(width, height)

    GameWindow.AddtoscrollBox(scrollboxcontrol, x location, y location, control/image)

    GameWindow.OnScrollBoxScroll(scrollboxcontrol) = OnScrollBoxScroll


    Sub OnscrollBoxScroll


      GameWindow.Scroll(scrollboxcontrol, direction)



    Maybe another function could be to get when a link on a webpage is clicked, so internet explorer doesn't pop open?

    Object.LinkClicked(web browser) = OnLinkClicked

    Sub OnLinkClicked



    Saturday, October 16, 2010 1:21 AM
  • 1) Yes

    2) No

    3) Scrolling will be too complex.

    4) No

    Sorry My Bad English
    Saturday, October 16, 2010 8:00 AM
  • I noticed a new object I haven't heard of yet. What is the AeroBeta Object?

    Sounds cool!

    Saturday, October 16, 2010 8:44 AM
  • how about a tool tip function to show information when mouse is over control?

    GameMouse.ToolTip(control, text)?

    Saturday, October 16, 2010 9:25 AM
  • Maybe a trackbar? and functions to set and get the position of the pointer?
    Saturday, October 16, 2010 9:26 AM
  • I have added GameControls2D.SetToolTipText(Shape,"sample tool tip") so you can set tool tip of shape.

    GameWindow does have same mouse functions and events than GraphicsWindow and some new events and functions under GameMouse object.

    Sorry My Bad English
    Saturday, October 16, 2010 10:10 AM
  • How about functions for splash screen?

    GameWindow.GenerateSplashScreen(x, y, imagefilepath)



    Saturday, October 16, 2010 11:04 PM
  • Is it possible to add "SetColor" and "GetColor" functions to "GameControls2D" object?
    Sunday, October 17, 2010 8:13 PM
  • Maybe to set/get the color of a control/shape?
    Sunday, October 17, 2010 8:14 PM
  • A question...

    Does the closing operation cover the key combo Alt-F4 too?

    Sunday, October 17, 2010 8:50 PM
  • Oskariok,

    In the Operating System function you gave us the capabilities to put the computer to sleep and hibernate.  Is it possible to add the capability to wake the computer up after an interval of time?  If so, I could see that within Small Basic we could run a program to tell the computer to sleep for a period then wake it to do some necessary functions.






    Sunday, October 17, 2010 10:41 PM
  • No splash screen (You can do that with GraphicsWindow or GameWindow)

    I have aldready added SetColor functions

    GameWindow.Closing handles every way user can close window except if user is using Task Manager

    jricestk, that is possible to do, but no.

    Sorry My Bad English
    Monday, October 18, 2010 11:02 AM
  • 1. GameWindow.CanMaximize = "True/False"

    If false, so something like this:

    2. Keyboard.KeyDown (An event)

    3. TextPlus.GetLinesNumber()

    4. GameWindow.CloseToTray() - GameWindow.OpenFromTray() - GameWindow.SetTrayIcon()

    And what is Aero (beta)?

    Thanks, electron

    Monday, October 18, 2010 4:56 PM
  • 1. Maybe

    2. No, because security (I dont want kids to make keyloggers)

    3. Maybe

    4. No

    Aero beta is new Beta object. If you have Windows Vista or Windows 7 you can use it to add files to recent menu, create new jump tasks, set task bar progress bar state, set overlay icon, Disable aero composition for better compatibility, expand Aero Glass over Client area of GameWindow and more. Some features may work with XP

    Sorry My Bad English
    Monday, October 18, 2010 7:16 PM
  • Could it be possible to create a new object to handle items plugged into USB ports? Maybe a function in this object to handle input from microphones and video cameras on the computer.

    Or a function to allow people to create programs to read their own emails and send emails from that program, like NetworkPlus.ReadEmail(your email, password) and NetworkPlus.SendEmail(your email, password, email of person to send to, email contents)

    Tuesday, October 19, 2010 2:22 AM
  • Yes it is possible to make handles for video and sound but no. I just dont want use XNA or DirectX with my extension.

    If you want use webcams and mics with your program use VB or C# or C++.

    No em@il. (Mostly because spamming)

    Sorry My Bad English
    Tuesday, October 19, 2010 12:38 PM
  • Would it be possible to cancel a dialog once started, or change the text of a dialog when it is started?
    Tuesday, October 19, 2010 7:35 PM
  • How about a few functions to support fractions in the math object? Like


    •MathPlus.AddFraction(fraction1, fraction2),

    •MathPlus.SubtractFraction(fraction1, fraction2),

    •MathPlus.MultiplyFraction(fraction1, fraction2), 

    •MathPlus.DivideFraction(fraction1, fraction2), 


    •and all the fraction stuff.


    a fraction would be like 1/2 or Numerator/Denominator including the slash between N and D


    Maybe a few functions for remainder division to give you the remainder and the answer. I have created a calculator to do this, but it is much easier and efficient to just have a function to do this

    would it be possible to have a window with no border, and just the inside of the window shown?


    A function to quickly calculate things to do with circles like:




    A good function in math would be a function to calculate the area of 3D objects like spheres and cylinders fast

    Tuesday, October 19, 2010 11:44 PM
  • A way to create shadows with a PictureTools function would be nice

    PictureTools.Shadow(canvas, angle, shadow thickness)


    I've noticed that when using dialogs while the window is on fullscreen, the dialog is shown behind the window, and you can't see the dialog. can this be fixed?


    It would be neat to create an object like fremy's that allows you to add text box which allows the user to change colors.

    •OskariokControls.Addtextbox(width, height, text)

    •OskariokControls.SetCurrentFontColor(textbox, color)

    This function would allow many different color text in a text box

    Wednesday, October 20, 2010 12:11 AM
  • Can it be possible to create a function to center the graphicswindow title?

    Wednesday, October 20, 2010 1:09 AM
  • Can you add a function to get the currently highlighted text of a text box, or to set the highlighted text of a text box? It would also be helpful to be able to get the x and y location of a word, if we were writing word processing programs that would check spelling and grammar. 

    Wednesday, October 20, 2010 1:28 AM
  • is it possible to set the opacity of the gamewindow?
    Wednesday, October 20, 2010 7:07 PM
  • Adding to the fractions, can you add a function to convert fractions into decimals and percentages, and decimals into fractions?
    Thursday, October 21, 2010 12:14 AM
  • An object to support tablets would be nice. like Tablet.EraserPress and Tablet.GetPenPressure. This would be good for drawing programs, so you can change to eraser and pen, then change penwidth when stylus is pressed harder
    Thursday, October 21, 2010 2:55 AM
  • Under gamewindow, is it possible to add a function to fade objects in and out? Like "GameWindow.FadeIn(shape, duration), and GameWindow.FadeOut(shape, duration)"?
    Thursday, October 21, 2010 6:14 AM
  • Because code must be static it is hard to edit dialogs when they have been launched.

    It is possible to add more math functions, but you can calculate same numbers in your program.

    No shadow effect to PictureTools

    I have already made functions to set Fonts and Colors.

    No Highlighting and spell checking.

    I maybe add touch support later if Small Basic 1.0 uses .Net 4 but testing it will be hard because I don't have touch screen or tablet.

    You can more complex animation with delay and animate function (but I add AnimateProperty("WidthProperty",NewValue,Delay))

    Sorry My Bad English
    Friday, October 22, 2010 9:15 AM
  • Thanks Oskariok! Under TextPlus object, can you add

    to sort characters...

    •TextPlus.SortByAlphabetAZ(array consisting of text)

    •TextPlus.SortByAlphabetZA(array consisting of text)

    •TextPlus.SortByNumberLargeSmall(array consisting of numbers)

    •TextPlus.SortByNumberSmallLarge(array consisting of numbers)

    to get positions of characters in the returned array...

    •TextPlus.GetPositionOfText(array consisting of text, text to search)

    •TextPlus.GetPositionOfNUmber(array consisting of numbers, number to search)

    Saturday, October 23, 2010 3:42 AM
  • With objects Media and SoundPlus, the functions GetLenght in each object are spelled "Length", not "Lenght")
    Saturday, October 23, 2010 3:47 AM
  • I fix that spelling mistake.

    Sorry My Bad English
    Saturday, October 23, 2010 8:13 AM
  • ; )

    Saturday, October 23, 2010 8:17 AM
  • Is it possible to add object to support files like TextPlus except FilePlus?

    A few suggestions if you decide to create this object...





    -FilePlus.WriteCharacter(filepath, line number, coulmn, character)

    Sunday, October 24, 2010 3:07 AM
  • You can just add code instead of FilePlus.GetFileName(filepath), but it's a lot eaiser and efficient to just have a function to do the job.
    Sunday, October 24, 2010 3:26 AM
  • I writed FilePlus with some of those functions and some other functions yesterday.
    Sorry My Bad English
    Sunday, October 24, 2010 8:57 AM
  • Cool!
    Sunday, October 24, 2010 9:06 AM
  • How about an object to support disk drives? Few ideas:


    -DiskDrive.BurnToDisk(array containing all filepaths)


    -DiskDrive.DriveClosed -- Event

    Monday, October 25, 2010 1:17 AM
  • Not necessary, but it's still really cool.
    Tuesday, October 26, 2010 3:25 AM
  • Under the object GameControls2D, can you add GameControls2D.FakeClick(control)? This is meant to make it look like a button is clicked, but doesn't raise an event.
    Tuesday, October 26, 2010 5:18 AM
  • Opening and Closing CD / DVD drive is possible. You just must know the letter for drive.

    But burning I leave to burning programs.

    No FakeClick.

    Sorry My Bad English
    Tuesday, October 26, 2010 12:41 PM
  • GameWindow.ResizeWindow   -- this is an event.


    This would be useful for programs so you can draw text and not have it past the window border.


    GameWindow.DrawBoundText(0, 0, "blahblahblah")

    GameWindow.ResizeWindow = RW


    Sub RW


    GameWindow.DrawBoundText(0, 0, "blahblahblah")


    Wednesday, October 27, 2010 5:59 AM
  • I have added GameWindow.SizeChanged long time ago, bit I don't recommend you to Clear GameWindow every time user resizes window.

    Also I don't add any Draw and Fill functions to GameWindow, only shapes and controls.

    Sorry My Bad English
    Wednesday, October 27, 2010 11:45 AM
  • a GameWindow.LockPosition(control, x, y) function? so when user resizes window the control stays at the edge.

    Wednesday, October 27, 2010 7:37 PM
  • Well actually, a gamewindow.lockposition wouldn't work because it would stay in the same place. So hows about a GameWindow.LockAtBorder(control, distance from gamewindow edge x, distance from gamewindow edge y)
    Thursday, October 28, 2010 2:12 AM
  • In your changelog on the main Data Extension thread, you've forgotten  to add FilePlus to the list...

    I lve this extension!

    Thursday, October 28, 2010 2:33 AM
  • A new static object ProgramPlus?


    -ProgramPlus.WaitFor(variable, value) -- this would stop everything in the program... all subroutines and codes until a variable is equal to a certain value.

    -ProgramPlus.EndAllWhiles() -- this would exit all while statements

    -ProgramPlus.EndAllFors() -- this would exit all for statements

    So you can create code:



    ProgramPlus.WaitFor(GraphicsWindow.LastKey, "Space")

    GraphicsWindow.ShowMessage("You pressed the Space Key!", "The end")



    Is it possible to add function "Convert from HTML(contents)" under NetworkPlus?

    Thursday, October 28, 2010 3:00 AM
  • Breaking loops and Fors in program isn't good idea.

    I have created ProgramPlus to register file extensions for program, so you can make editor that can use Shortcuts

    And what you mean with "Convert from HTML(contents)"?

    Sorry My Bad English
    Thursday, October 28, 2010 4:52 AM
  • GameWindow



    .KeyDown = KeyDown

    box=GameControls2D.AddTextBox("", 0, 0, 100, 25)





    Does not get the text.

    Wednesday, November 24, 2010 11:47 PM
  • I havn't tried this as I don't have Small Basic at work, but don't you need to store the text in a variable first?

    TestVar = GameControls2D.GetText(box)

    Did you try that?


    Thursday, November 25, 2010 2:55 AM

    1. TextPlus.GetCharacterCode() doesn't return anything.
    2. Security.Decrypt() chrashes the program when using wrong password or salt. 



    Program ID: FVQ478

    Your Signature
    • Edited by Danair Thursday, November 25, 2010 3:16 PM Added link
    Thursday, November 25, 2010 3:13 PM
  • Sorry Kirkkaf, the code you surggested did not work for me. You could possible create a variable every time a key is pressed, and add the key pressed to the variable, but then with Deletes, you would need to create a very long "IF" statement:

    If GameKeyBoard.lastkey <> "Back" And GameKeyBoard.lastkey <> "Space" And GameKeyBoard.lastkey <> "Oem3" Then

      'your code...


    And that would be a bit long, if you wanted to get down all the keys which are not 0-9, or A-Z, such as a `/~(oem3) or ] (oem6). And then we must remember to get when the shift key and the caps is held down:

    If GameKeyBoard.ShiftDown Then

      'The key's return is shifted to something else, such as 3 would be #


      'the key is the normal return.


    So this concludes that having all these "IF"s are an ache, having to convert the key pressed's return, like with NUMPAD(0-9), would be difficult when using a variable to append text and remove text. And you would also have to get where the cursor is using:

    If GameKeyBoard.LastKey="Left" Then


    ElseIf GameKeyBoard.LastKey="Right" Then



    So you can get where to delete a letter when the delete key is pressed. And now you can see how much efficient it can be by having a function to get text from a textbox, rather than using many variables. If you did create a code to do this, then you would need to know that there are different keys on different keyboards, so you would need to add the keys from other keyboards to your code.



    Sorry, use GameControls2D.GetValue to get the text of a textbox!

    Friday, November 26, 2010 7:32 AM
  • Oskariok,

    ProgramPlus.RegisterFileExtension() doesn't work on Windows XP SP3 Home Edition. Could you fix that? Also all members of russian community ( want to see again the possibility to make the GraphicsWindow in FullScreen mode.


    UPD: Sorry, RegisterFileExtension needed only system restart. But I noticed that FilePlus.GetNumberOfLines works wrong. For example:


    FilePlus.WriteLine(Program.Directory + "\text.file", 1, "Hi")

    FilePlus.WriteLine(Program.Directory + "\text.file", 2, "Folks")

    TextWindow.WriteLine(FilePlus.GetNumberOfLines(Program.Directory + "\text.file"))


    returns 5, not 2. And  if I open this file in NotePad, there is only 1 line!

    Saturday, November 27, 2010 8:44 PM
  • I've also noticed that GameControls2D.GetX and GameControls2D.GetY return errors.

    What does:




    Do? Right now, ProgramPlus.FileToOpen returns an error, and GameControls2D.GetEnabled and GameControls2D.SetEnabled don't do anything 

    Thursday, December 2, 2010 2:13 AM
  • Dear Airwaves,

    I can double you,  ProgramPlus.FileToOpen returns an error. I think that it must return a file path, based on argument (Program.GetArgument)



    Only few functions of GameWindow works for me. I can't set the background; GameControls2D; GameKeyboard; GameMouse & etc... Currently I can only show the GameWindow and set its title.

    Thursday, December 2, 2010 8:23 AM
  • ProgramPlus.RegisterFileExtension() registers extension for program. When you open file that does have registered extension it will launch your program and you get path of the opened file from ProgramPlus.FileToOpen. 

    And this code works with me:


    GameWindow.ReplaceGraphicsWindow()'Use this so program wont end
    GameWindow.Width = 500
    GameWindow.Height = 600
    GameWindow.Left = 60
    GameWindow.Top = 60
    GameWindow.Title = "Title"
    GameWindow.BackgroundColor = "Green"
    GameWindow.FlowDirection = "RightToLeft"
    GameWindow.CanResize = "False"
    GameWindow.Theme = "ExpressionDark"
    B = GameControls2D.AddButton("Button",60,60,400,400)

    Sub press
      TextWindow.WriteLine("You pressed Button")

    Sorry My Bad English
    Thursday, December 2, 2010 2:14 PM
  • Found out, use Program.GetArgument(1) to get the filepath of the file to open, i think. use code:


    For some reason, when using:


    it doesn't write out anything

    Friday, December 3, 2010 4:52 AM
  • PictureTools.DrawLine does not draw a line correctly.

    Monday, December 13, 2010 6:28 AM
  • A GameControls2D.IsMoveOver, like in Fremy's extension? it is difficult to get the control/shape the mouse is over

    Tuesday, December 14, 2010 3:17 AM
  • Is it possible to do a drag+drop thing with small basic? And a listbox would be really cool. I am incredibly bad at making extensions.
    Friday, June 10, 2011 7:40 AM
  • I have made many improves to input functions and also added support for totally new device.

    Drag/Drop is possible but it is too complex to translate into static functions. (Maybe later)

    And here is link for hardcore fans.

    Sorry My Bad English
    Friday, June 10, 2011 2:13 PM
  • Thanks for your response, Oskariok. Wow. It looks like Data will be really awesome.
    Friday, June 10, 2011 9:36 PM
  • This thread is now accepting requests for Data Extension
    Sorry My Bad English
    Wednesday, August 3, 2011 2:26 PM
  • Do the Networking classes work now? I was thinking about making a sort of email program.

    Feature Requests:

    1. Is it possible to create .exe files from within your Small Basic code? I don't mean compile your project and get a .exe file in the directory of your program, I mean create .exe files from a function or something in your code.

    2. Is it possible to add vertical or horizontal sliders to Small Basic? I was thinking about GameControls.AddVSlider(value, X, Y, Height).

    3. Is it also possible to get more information on files, like the dates they were created, or for, say Music files, the album and the artist who created it?

    Wednesday, August 3, 2011 9:27 PM
  • 1. Creating something like eval function in outdated FC extension is much more simple (But if I remember right it might be possible to save output from eval function as exe).

    2. There is rotate function ( GameControls.Rotate(Slider,90) )

    3. Reading file meta is on my TODO list already.

    Sorry My Bad English
    Thursday, August 4, 2011 8:41 AM
  • Well i was trying to put environment variables in a file and i couldn't find any create file functions in SB and your extension... so could you make it, one that has second argument to set the file type as well if possible ?
    I love game design and game programing.
    Tuesday, August 30, 2011 5:46 PM
  • How about check box shapes, like Fremy has but perhaps a little more customizable and programmer friendly. Or maybe even pull down combo box like used in visual basic?
    Thursday, September 1, 2011 2:54 PM