I am proud to present my new grid control (complete canvas based) class which can partly replace the standard xojo listbox.
It features most of the things the standard listbox have but currently is has no multiline selection and hierarchical mode.
key features:
optimized for speed (control based on sqlite db)
handles thousands of rows with ease owing to the cache logic
customizable header (incl. images)
header context menu
customizable cells
and may things more
I haven’t tested on all platforms (binary files for Mac only ATM). Mac should work fine but I
suspect graphical issues in win/linux. I am sorry for the lack of manuels/descriptions ect. but I’ve spent
all my time in getting this demo out.
Please comment and leave your feedback here!. Thank you.
I cant download it from here
drop box thinks it should show in some oriental set up (no idea why that is)
and when I click on either of the buttons (no idea what they say) it looks like it requires me to log in to drop box
Made a couple of changes and pulled off settings to a separate window pane.
Please check out. Compiled version for Mac. I am going to release the encrypted binary project soon.
Changes 1.0RC 1:
[code]
OPTIMIZATIONS:
smoother/faster header column resizing
speed up auto column resize (from header context menu)
many minor speed improvements
FIXES:
fixed bug: left mouse click in header and dragingg off no longer crashes
scrolling triggered by using up/down keys brings back focus
scrolling outside is not possible anymore while dragging a row
getAttributes now returns only a copy of the tableheader reference
fixed small graphical color bug in back ground (alternate)
default cell fill color is now : &cF9F9F9 (before: &cFFFFFF)
added mouse down feedback for controls (popupmenu, checkbox)
fixed mouse down/up precision
when reaching end or top of the table, the scrollers won’t keep invaliditating the view
NEW METHODS/EVENTS/ECT.:
clipboardPaste/clipboardCopy now passes a clipboard object
added clipboardPaste event
added shared method PictureFromData which returns a picture obj from a data string (EncodeBase64)
inserted rowValues (get/set) as a shortcut
inserted headerTitles (get/set) as a shortcut
added resizing event
added adjustColumnsWidth(col as integer) which sets the the column width to max string width found in the column
NOTE:
The focus ring is always cleared for drawing sensitive operations as there’s
a bug causing the paint() to slow down.[/code]
I am proud to release the RC2 including multi-selection and many other improvements and fixes.
Key features of the control:
customizable header with header pictures
made it for transparent use too
header context menu
columns can be set visible/unvisible without deleting (see picture)
fast drawing and resizing
fast column resizing
copy & paste from and to the control (data will be handle appropriate)
drag reorder
drag and drop
multi selection
I am not sure why there’s isn’t any feedback. Well, at least something I could work with.
Please give me feedback what features you like to be included (especially productivity and feature
for professional use)
Screenshot taken from Demo Win 3 using multi selection and handling 10k rows:
[code]Changes 1.0RC 2:
OPTIMIZATIONS:
optimized handling for larger tables
optimized drawing
FIXES:
headers flagged as not “shown=false” are displayed correctly; events fire with correct header column
cell() returns correct cell string
fixed minor graphical issue with header
fixed selected() function, now supporting multi selection
NEW FEATURES:
added multiline selection
added a new alternate style see enum “AlternateStyle” and revealed it in the settings pane of the demo
added new cell attribute: arcSizeSelection (int) (not recommened in for grid lines and alternate styles)
added new cell attribute: truncateCellText (default=true )
[quote=206490:@Hans-Jürgen Müller]@Rob Egal
I would like to evaluate this and of course purchase it if i like the results.[/quote]
Then download the demo and check out. I haven’t released any project files yet as I am in RC state
and collecting general feedback. Once the RC state is over, I’ll be distributing project files too.
Drag and drop is my list top and will be implemented. I think I’ll do it today. I am currently checking which behavoir is the best. I mean I actually want to combine drag reorder and drag to another control are pretty similar from the current code base. Not sure If I seperate them. My idea is to go from drag reorder which is vertical fixed to drag and drop if you move the mouse right or left out of the control…Retina should work too as I use OSX drawing but the checkbox is low-res at the moment.
[quote]Like dragging to Finder or dragging to another control? /quote]
Explain me a little more what is suppose to happen if you drop it to finder ?
Do you have a website that this will be hosted on yet? I don’t have a need for it now, but I tend to collect URL’s waiting for a project to present itself.
Yes, indeed I need a landing page but I have pile of work to do. It’s on my list :))
As soon as I leave RC state, I’ll try to get page and make the documentation (which will consume much time… )
fixed coorditate calculation for control if columns are invisible
sorting dates now work for the respected format YYYY-MM-DD; no extra work need
fixed a bug when dropping a row outside of an valid index
NEW FEATURES
added drag and drop support: It will work with drag reorder without inteferering (see demo project 7)
added dragRow(dragitem, row) event
added makeDragImage() that helps rendering the drag image (optional)
added returnSelectedRows() that returns an integer() of all selected rows helping to omitt frequent “selected( x )” queries
cell(,) now accepts variants of type (text, text(), string, string() ) which should help increase overall
performance especially for linear column queries like cell(x, a), cell(x,b) and cell(x,c) and so on and works like the following:
cell(-1, X) = Array() -> passed column X gets updated with the items
cell(-1,-1) = string/text fills the table (see original Listbox)
cell(X, -1) = Arrray() -> passed row X gets updated with the items
returned string from cell(,) works similar:
cell(-1,X) - returns the content of column X seperated each by EndOfLine
cell(-1,-) - returns the content of the table; columns seperated by vertical tab and by last column by endofline
cell(X,-1) - return the content of row X seperated by vertical tabs and on the last column with endofline
invalididateCell(,) work like cell(,)
columnWidths() returns the TableHeader widths as integer()
moved GridControl.ColumnAligment and GridControl.ColumnTypes to TableHeader.ColumnTypes
added enumeration for SelectionType (Single/Multiple)
OTHER:
added custom focus ring / focus ring flag to bypass the focus ring bug under MacOSX
added blue line indicator for the target drags of drag reorder order events
added new demo project showing single/multi drag and drop
added rowCacheSize (default 500 rows ) to control the rows cached (for advanced users)
[/code]