Trevor DeVore lists at
Thu Feb 25 09:30:16 EST 2016

Hi everyone,

I'm going to include responses to a number of thread comments in this

On Wed, Feb 24, 2016 at 2:53 PM, Clarence P Martin <chipsm at>

>  a very immersive user and I need to know how things work. This allows me
> to get the most out of anything that I use. I am also assuming that this is
> supposed to be a “Data Centric” tool which is very important to certain
> applications.

Yes, DataGrids are a data centric tool.

> I am hoping that this tool is high on the list of “near future” widgets
> and will eventually be less cryptic.

I don't know what the plans are for widgets that provide similar
functionality to the DataGrid. I would hope that nobody ever tries to
create a widget that does the exact same thing. That would be asanine :-)
Rather, widgets should be more focused in the problems they try to solve
(e.g. don't combine the form and table in the same widget). The DataGrid
was built using the technology available at the time and combined a couple
of features in order to solve a broader range of issues developers were

> I have seen the tutorials on the LiveCode site  and I am still trying to
> completely understand the tool.
> If the author of this tool reads this list, I am hoping for some help and
> insight on using this tool.

I am the original author of the DataGrid. I don't provide any one-on-one
support and unfortunately I don't have time to explain everything about how
it works under the hood. You would need to dig into the code if you want
that kind of understanding. If you have specific questions as you go
through existing documentation then you can post those and someone here
will be able to provide some help.

On Wed, Feb 24, 2016 at 5:13 PM, stephen barncard <
stephenREVOLUTION2 at> wrote:

> But my question is ... why is it so S L O W ??

IIRC, you are seeing a slowdown in LC 7 or 8. Is that correct? Do you have
a test stack you can show that demonstrates the slow down you are seeing?
While I don't use the DataGrid any longer, a control I use that is similar
to the DataGrid doesn't perform any differently in LC 8.

On Thu, Feb 25, 2016 at 3:27 AM, Terence Heaford <t.heaford at>
> Its because it is built using multiple live code fields and manipulating
> data in these fields when scrolling is pushing live code scripting
> probably to and beyond it’s limits. For smallish tables it works
> adequately but as the number of rows and columns increases the performance
> diminishes
> to a point where you say to yourself it is is not useable.

The number of rows shouldn't affect the scrolling speed. The DataGrid
doesn't create any more rows based on the amount of data. It only generates
enough controls to view the visible rows (+ a handful of others). The
number of columns can affect the scrolling as more controls have to be
created based on the number of columns.

> I believe it was probably created by Trevor Devore because he had a need
> and live code didn’t
> provide a table/grid at the time.

I created the DataGrid form to meet specific needs my projects had. It
evolved over a couple of different projects. I was asked to add the table
functionality by LiveCode as there was no solid table solution and (as we
well know by now) there wasn't going to be a dedicated table control
created in the old LiveCode engine.

> It will never scroll smoothly as say Objective-C tables in Xcode as the
> data grid probably relies on moving the cell contents from field to field
> to simulate scrolling
> so to the eye it does not appear to be smooth. This again is not helped by
> the fact it is done in script which in comparison to compiled is slow.

Very true. The fact that the DataGrid has to create so many LiveCode
controls puts it at a huge disadvantage. Each control carries a lot of
baggage when it comes to rendering and event processing.

> There really needs to be a version created in a c or c++ or objective-c or
> whatever that is compiled into the the live code system.

I don't think this is the case. Widgets provide (or at least will provide)
an excellent platform for building out a custom control like a Widget. When
designing a widget, a developer only has to draw what is absolutely
necessary. This is much more efficient than the current approach. Widgets
are also self-contained unlike groups which makes event processing much
easier. And because widgets can be nested the underlying design becomes
much simpler. I think widgets will give us everything we need without
having to resort to C++.

We still can't create editable text fields with a Widget yet so creating an
editable table or form isn't possible yet. But once we can then widgets
will be the way to go.

Trevor DeVore
ScreenSteps    -

More information about the Use-livecode mailing list