Updated FormExDestop and ControlsExDesktop libraries

agraham

Expert
Licensed User
Slightly updated FormExDesktop version 1.3 has bGetPixel anomaly of setting two pixels sorted and bGetImagePixel and bSetImagePixel methods added to work on a Forms' Image (not background) property.

Slightly updated ControlsExDesktop version 1.1 has CheckBox and RadioButton renamed to CheckBoxEx and RadioButtonEx to avoid name conflicts that arose with version 6 of Basic4PPC.

FormExDesktop 1.4 and ControlsExDesktop 1.2 posted here.

EDIT :- ControlsExDesktop 1.3 posted. See post #4 for details

EDIT :- ControlsExDesktop 1.4 posted. See post #5 for details

EDIT :- Sources for FormExDesktop 1.4 and ControlsExDesktop 1.4 posted for merging.

EDIT :- FormExDesktop 1.5 posted. See post #7 for details

EDIT :- FormExDesktop1.6 posted with support for module name prefixes for the Thread object.

EDIT :- ControlsExDesktop 1.5 posted. See post #21 for details

EDIT :- ControlsExDesktop 1.6 posted. DropDownComboBox now has GetItem and SetItem.

EDIT :- ControlsExDesktop 1.7 posted. See post 59 for details.

EDIT:- FormExDesktop 1.7 posted with support for cross-thread events in the IDE. See post #60 for details.

EDIT :- ControlsExDesktop 1.8 posted with OpenDialogEx and SaveDialogEx. See post 91 for details.

Note that FormExDesktop 1.7 is for use with Basic4ppc v6.8 and earlier. FormExDesktop for Basic4ppc v6.9 and later can be found here
 

Attachments

Last edited:

agraham

Expert
Licensed User
Remember the InputBox from VB? ControlsExDesktop 1.2 now includes it! Also the problem with DateTimePicker events not firing is sorted and the Click event removed as I could never get it to fire. Now posted in first post together with latest (unchanged) FormExDesktop.
 
Last edited:

agraham

Expert
Licensed User
ControlsExDesktop version 1.3 posted in original post. This version includes two new controls, Splitter and Listview. Between them they make possible the "classic" Explorer type app with a moveable Splitter bar. I have NOT updated the Help yet as it is a big job as Listview is a complicated control and I will need a large dose of enthusiasm to get down to do it. However I thought that I would post the library, with demos, so you can have a play.

Note that you can place Splitters on Panels and Forms, and maybe Tabs as well, I haven't tried that yet!

The Listview is a virtually complete exposure of the Listview control including sorting by column. In contrast to Fillippos version, which is optimised as a Table replacement, it provides LargeIcon, SmallIcon, Details and List views.
 
Last edited:

agraham

Expert
Licensed User
Version 1.4 now posted in original post. The archive includes a new updated help file, source file for merging and demo apps for all controls included in the library.

Note that although the demo app uses my FormExDesktop library this is in order to demonstrate the NotifyIcon control. The controls will work just as well on a normal B4ppc Form.

New in this release is a GroupBox, similar to a Panel but with a border and optional text, a FolderDialog which allows a user to select a folder (as opposed to a file), and a MonthCalendar control. It is a bit more clumsy than a DateTimePicker or the native B4ppc Calendar controls as it is displayed fully expanded at all times. However I included it as it provides the capability of showing an arbitrary number of dates in bold and supports selection of a range of dates.
 

agraham

Expert
Licensed User
Previous versions of FormExDesktop were not fully compatible with my Threading library in that although the threads ran correctly thread events did not fire.

Having learnt a lot about .NET and Basic4ppc since writing the original FormExDesktop I have now posted version 1.5 that is fully compatible with the Threading library. There is one additional method and one additional property added since version1.4, both deal with the threading issue. There are no other changes since version 1.4. Help, demos and source for merging are in the zip.

I must admit to "borrowing" some of Erel's event code to understand how Basic4ppc events work and to incorporate in this library. Apologies to him for appropriating his work - but for a good cause!
 

Byak@

Active Member
Licensed User
agraham :sign0188:!!!!!!!!!!
 

agraham

Expert
Licensed User
In another thread tsteward asked
Please is there a way to get the number of items in a ToolStripComboBox?
Yes, with the Door library. obj1 is a Door library Object
B4X:
   obj1.Value = tscombo1.ControlRef
   obj1.Value = obj1.GetProperty("ComboBox")
   obj1.Value = obj1.GetProperty("Items")
   obj1.Value = obj1.GetProperty("Count")
   Msgbox(obj1.Value)
 

Cableguy

Expert
Licensed User
a coding mistake or a BUG?

Hi Andrew...
first of all, congragtulation on bringing these two dlls on step further...
" to infinity and beyond..."....
I have a doubt...
I satrted a project adn added the controlsExDesktop, and its two main Objects...

here's the partial code, wich reproduces my issue...
B4X:
   Xform.New2("Main","EMK v0.1",600,480)
   XForm.HasControlBox=True
   Xform.HasMaximizeBox=True
   XForm.HasMinimizeBox=True
   XForm.MaximumHeight=480 'If commented out these two lines, the form displays normally 
   XForm.MaximumWidth=600 ''If commented out these two lines, the form displays normally 
   XForm.WindowState=1
As posted, if the two lines are comomented out, the form displays as expected, but if I use either of the lines is like I never setted the forms size in the new2 method...With the adicional problem, that even with both maximumwidth and maximumheigth set, my form appear trimmed in width (see image attached)...
So in order to make the form appear as I want, must I again, set the width and heigth of the form?????
Why???
 

Attachments

Last edited:

agraham

Expert
Licensed User
So in order to make the form appear as I want, must I again, set the width and heigth of the form????? Why???
Yes, I know this happens but I can't really explain it. It is a .NET thing and seems to be caused by an interaction between the Maximum and Minimum Height and Width size settings which all default to 0, which means unlimited. Once you set one of them this effect appears so it is best to set them all then set the required size.
 

klaus

Expert
Licensed User
Hi Andrew,

I have another question about the ControlExLib library.

In the joined program I want to set the with of the ToolStripComboBoxes and the ToolStripTextBox.
I tried several things with the Door library but with no success.
I can modify the DropDownHeight Prorety but not the Width properties.
I tried to change the Anchor and Dock properties to the width changed but nothing happens.
I can get the Width value but not set it.

What am I missing ?

Thank's in advance for your help.
 

Attachments

agraham

Expert
Licensed User
What am I missing ?
B4X:
   obj1.Value = tspSelect2.ControlRef
   obj1.SetProperty("ToolTipText", "Select superpos")   
   [COLOR="DarkRed"][B]obj1.SetProperty("AutoSize", False)[/B][/COLOR]
   obj1.SetProperty("Width", 60)
These controls normally size themselves to fit the ToolStrip, setting AutoSize to False lets you set the Width but the Height always seems to be automatic even though the docs say it is a settable property.
 

klaus

Expert
Licensed User
Hi Andrew,

I am continuing to use the ControlEx Library.

I am also using ToolStripComboBoxes.
It would be interesting to have:
- the Clear method
- the Item paramter
This would make a whole reinitialization and the replacement of the text of one item much easier, like in standard ComboBoxes.

It is probably possible with the Door library (I don't know how), but if these two functionalities were directly accessible it would be easier.

Best regards.
 

klaus

Expert
Licensed User
Hi Andrew,

To clear the ToolStripComboBox I tried to use the RemoveItem method for I know the number of items.
But it seems that RemoveItem(n) doesn't do anything.

Code atached, only the program, the rest is the same as in post #14.

Thank you in advace for your help and Best Regards.

EDIT: I saw in between that to remove an item there must be the text of the item in RemoveItem, I was thinking of the index of the item, as in RemoveAt for the standard ComboBox that, for me, would be more convenient.
 

Attachments

Last edited:

agraham

Expert
Licensed User
But it seems that RemoveItem(n) doesn't do anything.
It's the item itself you need to specify, not its index

"tspSelect1.RemoveItem(tspSelect1.Text)"

I will do a new revision of ControlsExDesktop with the ToolTips for all the ToolStrip controls and Clear, Count, Item and RemoveAt(index) for theComboBox and Clear, Count and RemoveAt(index) for the DropDownButton. Anything else you can think of?
 

klaus

Expert
Licensed User
That's pretty good news.

I think that the Insert method could be intersting too.
Does there also exist the Left property, I didn't see it in the MS documentation ? Would be intersting for alignment with AutoSize = False

Best regards.
 
Top