Page 1 of 3 123 LastLast
Results 1 to 25 of 73

Thread: ezForm

  1. #1
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default ezForm

    Simba/Includes/ezForm.simba
    By @Obscurity;

    Last Updated: 2015-10-26





    Click the thumbnails for full-size




    Introduction


    eZForm is a tool for easily creating and manipulating forms for your Simba scripts. These forms can run simultaneously with your scripts, allowing you to update variables, options, and more on the fly! You can even add images from a URL with a single line of code!



    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

      myButton,
        myMemo:eZElement;

    procedure pButtonHandler();native;
    begin
      myForm.height(135);
      myMemo.height(80).multiple(true).text('Now I''m multi-line...');
      myButton.disabled(true).offsetTop(95);
    end;

    begin
      myForm.create('Tutorial');

      myMemo:=myForm.addMemo('I''m single-line...','s8','',[10,10],[230,20],nil);
      myButton:=myForm.addButton('Multi-line','b s08','',[10,35],[230,30],pButtonHandler);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

      myCheckbox:eZElement;

    procedure pCheckboxHandler();native;
    begin
      myForm.find().isnt(myCheckbox).disabled(myCheckbox.checked());
    end;

    begin
      myForm.create('Tutorial');

      myCheckbox:=myForm.addCheckbox('Disable components','i s8','hCheckbox',[10,10],pCheckboxHandler);
      myForm.addMemo('','s08','',[10,30],[230,20],nil);
      myForm.addButton('Button','b s08','',[10,55],[230,30],nil);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

      myButton,
        myListbox:eZElement;

    procedure pButtonHandler();native;
    begin
      myListbox.prop('cols',2);
      myButton.prop('disabled',true);
    end;

    begin
      myForm.create('Tutorial');

      myListbox:=myForm.addListbox(['First','Second','Third','Fourth','Fifth','Sixth','Seventh','Eighth','Nineth','Tenth'],'s8','',[10,10],[230,100],nil);
      myButton:=myForm.addButton('Two Columns','b s08','',[10,115],[230,30],pButtonHandler);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

    begin
      myForm.create('Tutorial');

      myForm.addGroupbox('Tooltip','b s10','',[10,10],[230,50]);
      myForm.addLabel('Hover over me. I have a tooltip!','s8','',[20,35]).title('This is a tooltip!');

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

    procedure pButtonHandler();native;
    begin
      myForm.find('#hMemo')[0].text('');
    end;

    procedure pMemoHandler();native;
    var
      Memo_Color,
        Memo_Length:integer;
      Memo_Value:string;
    begin
      Memo_Value:=myForm.find('#hMemo')[0].val();
      Memo_Length:=length(Memo_Value);
      Memo_Color:=round(Memo_Length/12*255);

      myForm.find('#hLabel')[0].color(Memo_Color).text('Characters: '+toStr(Memo_Length)+'/12');

      myForm.find('#hButton')[0].disabled(Memo_Length=0)
    end;

    begin
      myForm.create('Tutorial');

      myForm.addLabel('Characters: 0/12','i s08','hLabel',[10,10]);
      myForm.addMemo('','s8','hMemo',[10,30],[230,20],pMemoHandler).maxLength(12);
      myForm.addButton('Clear','b s08','hButton',[10,55],[230,30],pButtonHandler).disabled(true);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

      myImage:eZElement;

    procedure pButtonHandler(vSender:tObject);native;
    begin
      case myImage.src() of
        'http://puu.sh/kYXD8/e9dde9e433':myImage.src('http://puu.sh/kYXCm/2631effd0c');
        'http://puu.sh/kYXCm/2631effd0c':myImage.src('http://puu.sh/kYXD8/e9dde9e433');
      end;
    end;

    begin
      myForm.create('Tutorial');

      myImage:=myForm.addImage('http://puu.sh/kYXCm/2631effd0c','',[10,10],[230,230],nil);
      myForm.addButton('Invert','b s08','hInverted',[10,260],[230,30],pButtonHandler);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

      myCombobox,
        myText:eZElement;

    procedure pButtonHandler();native;
    begin
      myText.text('You submitted: '+myCombobox.val());
    end;

    begin
      myForm.create('Tutorial');

      myCombobox:=myForm.addCombobox(['First','Second','Third','Fourth','Fifth'],'s8','',[10,10],230,nil).readOnly(true);
      myForm.addButton('Submit','b s08','',[10,40],[230,30],pButtonHandler);
      myText:=myForm.addLabel('You submitted: ','s08','',[10,80]);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i eZForm.simba}

    var
      myForm:ezForm;

    procedure eButtonHandler(vSender:tObject);native;
    var
      _Sender:eZElement;
    begin
      _Sender:=vSender.toElement();

      if _Sender.equals('#addButton') then
        myForm.find('#progressBar')[0].val('+10')
      else if _Sender.equals('#subtractButton') then
        myForm.find('#progressBar')[0].val('-10')
      else if _Sender.equals('#setButton') then
        myForm.find('#progressBar')[0].val(+50);
    end;

    begin
      myForm.create('Tutorial');

      myForm.addProgressbar(90,'progressBar',[10,10],[230,20]);
      myForm.addButton('Add 10','b s8','addButton',[10,40],[115,30],eButtonHandler);
      myForm.addButton('Subtract 10','b s8','subtractButton',[125,40],[115,30],eButtonHandler);
      myForm.addButton('Set as 50','b s8','setButton',[10,70],[230,30],eButtonHandler);

      myForm.show();

      repeat wait(1);until false;
    end.


    Simba Code:
    program new;
    {$i ezForm.simba}

    var
      myForm:eZForm;

    begin
      myForm.create('Tutorial');

      myForm.addLabel('Username','c8421504 i s08','',[10,10]);
      myForm.addMemo('eZForm','','',[10,30],[230,20],nil).prop('maxlength',12);
      myForm.addLabel('Password','c8421504 i s08','',[10,60]);
      myForm.addMemo('Rocks my socks!','','',[10,80],[230,20],nil).prop('maxlength',20).prop('password',true);

      myForm.show();
      repeat wait(1);until false;
    end.


    Simba Code:
    program eZTutorial;
    {$i ezForm.simba}

    var
      myForm:eZForm;

    begin
      myForm.create('Tutorial');

      myForm.addTab(['Memo','Picture','Button'],'s8','tabList',[10,10],[230,120],nil).select(1);
        myForm.addMemo('Memo','c8421504 i s08','',[10,10],[200,70],nil).parent('#tabList0');
        myForm.addImage('http://puu.sh/ldbMk/00ed57d427.png','',[10,10],[200,70],nil).parent('#tabList1');
        myForm.addButton('Button','b s08','',[10,10],[200,70],nil).parent('#tabList2');

      myForm.show();

      repeat wait(1);until false;
    end.


    Download eZForm.simba from Github and place it into your Includes folder.

    Download ProSocks.dll from Github and place it into your Plugins folder.

    Read the quick guide to using eZForm found here.


    Firstly, I want to thank @Olly;. Since eZForm's release, I've been pestering him with endless questions regarding forms and he's been incredibly patient with me.

    Secondly, @Brandon;'s ProSocks helped solve the issue raised in the f248a16 commit.
    Last edited by Obscurity; 12-06-2015 at 04:12 AM.




    Skype: obscuritySRL@outlook.com

  2. #2
    Join Date
    Jan 2012
    Location
    East Coast
    Posts
    733
    Mentioned
    81 Post(s)
    Quoted
    364 Post(s)

    Default

    AWESOME! Repped!

  3. #3
    Join Date
    Aug 2014
    Location
    Australia
    Posts
    932
    Mentioned
    53 Post(s)
    Quoted
    495 Post(s)

    Default

    Could you give an example of a complete script form, and why it's easier to use than SPF?



    New to scripting? Procedures & Functions for Beginners
    Do you use your computer at night? Just get f.lux

  4. #4
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    @Incurable;

    If you look at the screenshot from my ogLivid script...
    Screenshot

    ...And then look at the code, you can see that it's ugly (shutup) and incredibly long.

    To make that same form using ezForm:
    Simba Code:
    ezForm.new('ogLivid',[290,290]);
      ezForm.addGroupBox('ogLivid','s14 b','',[10,10],[270,270]);
        ezForm.addGroupBox('Map Location','s10 i','',[25,40],[240,65]);
          ezForm.addButton('Set Location','b','',[35,65],[220,30],pSetLocation);
        ezForm.addGroupBox('Perform Actions','s10 i','',[25,110],[240,155]);
          ezForm.addCheckbox('Cure Diseased livid','s8','hCure',[35,135],pCure);
          ezForm.addCheckbox('Deposit Trade wagon','s8','hDeposit',[35,160],pDeposit);
          ezForm.addCheckbox('Encourage Drained Pauline','s8','hEncourage',[35,185],pEncourage);
          ezForm.addCheckbox('Fertilise Empty patch','s8','hFertilise',[35,210],pFertilise);
          ezForm.addCheckbox('Fix Broken fence','s8','hFix',[35,235],pFix);
    ezForm.show();



    You can change settings on the fly and it'll edit the live script. If I wanted to only enourage Pauline if the checkbox is checked:
    Simba Code:
    if ezForm.getComponent('hEncourage').getState() then
      //~ Encourage Pauline;

    Or, if you wanted checking it to run a procedure, you can see changing the value of hEncourage will run the pEncourage procedure. .

    Edit: I just realized I have to add c# (color) to fonts as well. Currently you can supply any of:
    Simba Code:
    (*
      b or bold
      i or italic
      s or strikeout
      u or underline
      s# or size#
    *)
    Last edited by Obscurity; 09-16-2015 at 02:36 AM.




    Skype: obscuritySRL@outlook.com

  5. #5
    Join Date
    Aug 2014
    Location
    Australia
    Posts
    932
    Mentioned
    53 Post(s)
    Quoted
    495 Post(s)

    Default

    Quote Originally Posted by Obscurity View Post
    -snip-
    Well I'm convinced, great work.



    New to scripting? Procedures & Functions for Beginners
    Do you use your computer at night? Just get f.lux

  6. #6
    Join Date
    Dec 2011
    Posts
    2,147
    Mentioned
    221 Post(s)
    Quoted
    1068 Post(s)

  7. #7
    Join Date
    Sep 2014
    Location
    C:\Simba\
    Posts
    565
    Mentioned
    9 Post(s)
    Quoted
    71 Post(s)

    Default

    Oh man that's sick!

  8. #8
    Join Date
    Jun 2007
    Location
    The land of the long white cloud.
    Posts
    3,702
    Mentioned
    261 Post(s)
    Quoted
    2006 Post(s)

    Default

    The thing the SPF lacks is customizability. If something like this was compatible with the SRL player management system (multiplayer/loading/saving/encrypting/decrypting armys) I can see it replacing the SPF.

  9. #9
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Quote Originally Posted by Obscurity View Post
    stuff
    [/SIMBA]
    Plus you could theoretically put that code into a loop and make it even shorter.

    pretty cool pretty cool

  10. #10
    Join Date
    Jan 2012
    Location
    East Coast
    Posts
    733
    Mentioned
    81 Post(s)
    Quoted
    364 Post(s)

    Default

    Quote Originally Posted by The Mayor View Post
    The thing the SPF lacks is customizability. If something like this was compatible with the SRL player management system (multiplayer/loading/saving/encrypting/decrypting armys) I can see it replacing the SPF.
    Besides loading and saving settings for multiple accounts, is there any other use for armies/multiplayer?

    Quote Originally Posted by rj View Post
    -snip-
    Yeah a for..to..do loop with a tStringArray etc. and incEx() for the y variable could make this super easy. It's what I do for my Smart Graphics Proggies.

  11. #11
    Join Date
    Feb 2012
    Location
    Canada
    Posts
    1,164
    Mentioned
    26 Post(s)
    Quoted
    433 Post(s)

  12. #12
    Join Date
    Jun 2007
    Location
    The land of the long white cloud.
    Posts
    3,702
    Mentioned
    261 Post(s)
    Quoted
    2006 Post(s)

    Default

    Quote Originally Posted by Ross View Post
    Besides loading and saving settings for multiple accounts, is there any other use for armies/multiplayer?
    Yes, multiple players within the same script. That's what multiplayer means.

  13. #13
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    I think he more meant - what is the use of armies apart from the obvious gold farming.




    Skype: obscuritySRL@outlook.com

  14. #14
    Join Date
    Oct 2013
    Location
    East Coast USA
    Posts
    770
    Mentioned
    61 Post(s)
    Quoted
    364 Post(s)

    Default

    Quote Originally Posted by The Mayor View Post
    Yes, multiple players within the same script. That's what multiplayer means.
    Quote Originally Posted by Obscurity View Post
    I think he more meant - what is the use of armies apart from the obvious gold farming.
    Well, I don't do any farming but I have a handful of accounts and I don't like remembering the signins for them.

    The player manager does a nice job of partitioning this information from the script writer so people aren't posting scripts with hard coded logins or making people add them in before running.

    Here's some code I hacked up the last time someone (?) was messing with the forms.

    It's has a similar flavor but is centered on making the player manager easier, not making forms more moldable.

  15. #15
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    After all of the good responses, I decided to spend some time on ezForm today. The updated ezForm.simba will be attached to the original post.

    I tried to make it very easy to use, and have the feel of JS (or jQuery, to more precise). I'm sure some won't like this, but I'd be willing to hear you out, so please share!

    I made the following using ezForm. It's a simple form for Ross' AIO Combat:


    It works without his AIO script. It's just a demo! If you'd like to toy around with it, please:
    • Save this image as RossAIOCombat.png at C:\Simba\RossAIOCombat.png.
    • Download and place ezForm.simba into C:\Simba\Includes.
    • Copy and play the following script:
      Simba Code:
      program ezFormTest;
      {$i ezForm.simba}

      procedure hButtonHandler();native;
      begin
        ezForm.find('hEdit').text('');
      end;



      procedure hItemsHandler(vSender:tObject);native;
      var
        _AlchItems,
          _LootItems:boolean;
      begin
        _AlchItems:=ezForm.find('hAlchItems').is('checked');
        _LootItems:=ezForm.find('hLootItems').is('checked');

        ezForm.find('hLootItemsList').prop('disabled',not _LootItems);
        ezForm.find('hAlchItems').prop('disabled',not _LootItems);
        ezForm.find('hAlchItemsList').prop('disabled',not (_AlchItems and _LootItems));
      end;



      procedure hListHandler(vSender:tObject);native;
      var
        _Sender:tZComponent;
      begin
        _Sender:=tZComponent(vSender);
        _Sender.text(replaceRegExpr('[^0-9$,\s]',_Sender.text(),'$1',true));
      end;



      begin
        ezForm.new('Ross'' AIO Combat',[400,465]);

          ezForm.addImage('RossAIOCombat.png','hImage',[0,0],[400,125],nil);
            ezForm.addLabel('Ross'' AIO Combat','b s16','',[17,7]);
            ezForm.addLabel('Ross'' AIO Combat','b c65535 s16','',[15,5]);

          ezForm.addGroupBox('Options','b s14','',[10,130],[380,325]);

            ezForm.addGroupBox('Abilities','b i s10','',[20,160],[360,95]);
              ezForm.addLabel('Note: This script does not support Legacy combat.','i c255 s8','',[30,180]);
              ezForm.addCheckbox('Use regeneration','s8','hRegeneration',[30,200],nil);
              ezForm.addCheckbox('Use thresholds','s8','hThresholds',[200,200],nil);
              ezForm.addCheckbox('Use ultimates','s8','hUltimates',[30,225],nil);

            ezForm.addGroupBox('Looting','b i s10','',[20,265],[360,180]);
              ezForm.addCheckbox('Bury bones','s8','hBury',[30,285],nil);
              ezForm.addCheckbox('Loot charms','s8','hCharms',[200,285],nil);

              ezForm.addCheckbox('Loot items','s8','hLootItems',[30,305],hItemsHandler);
                ezForm.addLabel('Supply a list of model IDs seperated by commas:','c8421504 i s8','',[40,325]);
                ezForm.addEdit('123456, 234567, 345678, 567890','s8','hLootItemsList',[40,345],[330,20],hListHandler).prop('disabled',true);

                ezForm.addCheckbox('Alch items','s8','hAlchItems',[40,370],hItemsHandler).prop('disabled',true);
                  ezForm.addLabel('Supply a list of texture IDs seperated by commas:','c8421504 i s8','',[50,390]);
                  ezForm.addEdit('987654, 876543, 765432','s8','hAlchItemsList',[50,410],[320,20],hListHandler).prop('disabled',true);

        ezForm.show();

        {This is just to make the script persistent}
        repeat until false;
      end.


    Without spacing, that's a mere 20 lines of code to create that form - excluding the optional even handlers, obviously!

    There are a few things to note. When creating an element (I hate "component"), you typically supply a caption or text, some font details, a handle to reference the element later, a point and dimensions, and then an event handler for things such as clicks.

    So, if we wanted to add an edit box that had the initial text, "Hi mom!", we'd:
    Simba Code:
    ezForm.addEdit('Hi mom!'...);

    If we wanted to add some font styles, instead of having plain text, we'd:
    Simba Code:
    ezForm.addEdit('Hi mom!','c255 bold i underline s s16'...);
    This is important. Fonts have some options:
    Simba Code:
    (*
      b or bold
      c# or color#
      i or italic
      s or strikeout
      u or underline
      s# or size#
    *)

    If we wanted to reference the edit later, we could do:
    Simba Code:
    someEdit:=ezForm.addEdit(...);
    //~ Some code
    someEdit.text('Hi mom!');

    {Or...}

    ezForm.addEdit('Hi mom!','b','hSomeEdit'...);
    //~ Some code
    ezForm.find('hSomeEdit').text('My text has changed!');

    If we wanted to disable, set a maxlength, and recolor the edit (let's assume it's stored in someEdit), we'd:
    Simba Code:
    someEdit.prop('color',255).prop('disabled',true).prop('maxlength',12);

    Of course, there's a lot more, but have a peak at the prop() methods and others.



    So, using Ross' AIO Combat, you can see at the top of his script has has constants that the user must specify before running the script. Well, the great thing about ezForms, you can change the elements while the script runs and have it update and have the script react on the fly! That the following example...

    You can see Ross uses:
    Simba Code:
    USE_THRESHOLDS = true;
    //~ Some code
    if (not USE_THRESHOLDS) or (useSGS()) then
    To have it automatically update to what the user wants, using the sample script above:
    Simba Code:
    USE_THRESHOLD := ezForm.find('hThresholds');
    //~ Some code
    if (not USE_THRESHOLDS.is('checked')) or (useSGS()) then



    I'd love to add more on what it can do, but I have to head to bed! Keep in mind, I've only worked on this a bit over 2-3 days, so it's not by any means complete. I just want a community opinion as I go, since I want to write this for y'all. .

    Cheers to @Ross; for allowing me to use his script as an example. .
    Last edited by Obscurity; 10-02-2015 at 03:54 AM.




    Skype: obscuritySRL@outlook.com

  16. #16
    Join Date
    Jan 2012
    Location
    East Coast
    Posts
    733
    Mentioned
    81 Post(s)
    Quoted
    364 Post(s)

    Default

    +Repped. Awesome work, would love to see this officially supported.

  17. #17
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    One quick suggestion that I'd think would make this maybe slightly easier to use

    function tZComponent.prop(vProperty:string;vValue:variant): tZComponent;overload;

    you could make vProperty a enum so that we can only enter checked, colored, disabled, etc etc

  18. #18
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    Just to make sure I'm understanding, @rj;, you want something like:
    Simba Code:
    eZForm.find('someEdit').prop(eZPropDisabled);

    (I only used eZProp... because currently things like tags are eZTagEdit)




    Skype: obscuritySRL@outlook.com

  19. #19
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Quote Originally Posted by Obscurity View Post
    Just to make sure I'm understanding, @rj;, you want something like:
    Simba Code:
    eZForm.find('someEdit').prop(eZPropDisabled);

    (I only used eZProp... because currently things like tags are eZTagEdit)
    Yea

  20. #20
    Join Date
    Jan 2007
    Posts
    8,876
    Mentioned
    123 Post(s)
    Quoted
    327 Post(s)

    Default

    Stickified

  21. #21
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    Cheers, @Zyt3x;!

    Going to try and put some work into ezForm and ogLib tonight. I want to have a {$DEFINE DARKSCAPE} and such. :-).

    Edit:

    So I'm in a pickle. The is method...
    Simba Code:
    vCheckbox.is('checked');
    vEdit.is('visible');
    //~ Etc
    ..is breaking codehints. So, I need opinions. I can leave it as is and have codehints look like...

    ...or I can rename it be and have codehints like...


    An alternative suggested by Ross is equals. But keep in mind, it can be used for:
    Simba Code:
    vCheckbox.equals('button');
    //~ Etc
    Last edited by Obscurity; 10-15-2015 at 01:43 AM.




    Skype: obscuritySRL@outlook.com

  22. #22
    Join Date
    Oct 2015
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    9 Post(s)

    Default

    So it would look like this?
    Code:
    vCheckbox.be('checked');
    vEdit.be('visible');
    //~ Etc
    If that's the case, there's no complaint from me. If it lets have have codehints and this same functionality then it's really all the same, different syntax same logic :P

  23. #23
    Join Date
    Jun 2012
    Posts
    586
    Mentioned
    112 Post(s)
    Quoted
    296 Post(s)

    Default

    Quote Originally Posted by Paradoxs View Post
    So it would look like this?
    Code:
    vCheckbox.be('checked');
    vEdit.be('visible');
    //~ Etc
    If that's the case, there's no complaint from me. If it lets have have codehints and this same functionality then it's really all the same, different syntax same logic :P
    That's correct. I like be because it's short. @Ross;' suggestion of equals wouldn't be bad, but I feel like that'd be better for comparing two components.




    Skype: obscuritySRL@outlook.com

  24. #24
    Join Date
    Oct 2015
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    9 Post(s)

    Default

    I agree, I think be is the better option. Equals is definitely something that should be used for comparing objects. I wonder why "is" is breaking code hints

  25. #25
    Join Date
    Nov 2011
    Location
    England
    Posts
    3,072
    Mentioned
    296 Post(s)
    Quoted
    1094 Post(s)

    Default

    Quote Originally Posted by Paradoxs View Post
    I agree, I think be is the better option. Equals is definitely something that should be used for comparing objects. I wonder why "is" is breaking code hints
    Because it's a keyword on which the parser works on.

Page 1 of 3 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

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