Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread XE4 workshop London
Fri, May 3 2013 5:16 AMPermanent Link

Adam Brett

Orixa Systems

Went to a nice EMB event in London yesterday, demoing the new XE4 features (really just the iOS upgrades!).

While a lot of the old delphi-ites who were there were less than happy about being repeatedly charged for upgrades as EMB adds on different bits of platform support ... there was quite a bit of cool stuff being presented.

iOS support seems decent now. New versions of FireMonkey seem pretty strong (thank god I didn't start developing on FM1!). Also LiveBindings seem to have improved _a_lot_

Made me feel positive.

... Also made me think about using LiveBindings in my applications, which I haven't done up to now. Is anyone else doing this & does it all work OK in the newer versions of Delphi?

Also, I let my database build my applications using system tables which construct the forms ... so I don't use any of the RAD features of Delphi. Is it possible / easy to work this way with LiveBindings?
Fri, May 3 2013 6:07 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam


Stuck on D2006 so not even attempting to answer your question but rather asking one of my own.

>Also, I let my database build my applications using system tables which construct the forms

Out of interest can you post any examples of this? I can think of a couple of ways to do it but always interested in real life stuff.

Roy
Fri, May 3 2013 6:51 AMPermanent Link

Adam Brett

Orixa Systems

>>Also, I let my database build my applications using system tables which construct the forms

>Out of interest can you post any examples of this?
>I can think of a couple of ways to do it but always interested in >real life stuff.

I would love to Roy, but it is just too much of an awful mess for me to show anyone else, I'd be too ashamed Wink

The issue is that it has developed in a very organic way over about 15 years with me as the sole programmer ... so I haven't ever really had to rationalize it, though I have a long TODO list Smiley

--

The summary of how it works is pretty easy:

1. I have System tables for "Entities", "Relationships", "Resources", "Searches", "Reports" and "UserConfig".  Users actually add to the last 3 of these, allowing them to attach new features to the system without my intervention. I use DevEx components for editable-GUI, these all allow run-time design, so I leave my users to actually design the GUI the way they want it & save this to UserConfig.

2. I have many visual components (i.e. charts, trees, grids) which I can just pass a resource name and the SQL  held in it will return data in predefined forms which the components can interpret. i.e. the Tree expects fields with names like "ID" and "ParentID". Almost all these SQL statements include IDs (which are now globally unique in my EDB systems, but used to be unique per entity under DBISAM) and EntityName (VARCHAR) fields. Virtually all this layer is ReadOnly, but users can edit what is visible.

3. I use a global concept throughout the framework of an ID / EntityName combination. Almost all visual components when clicked will check what they have clicked and if it includes this combination of properties they will Open this entity on this ID. There is an "Editable" layer which becomes visible when "open" is called, so that an individual record can be edited, these are almost always "1 table per window" (i.e. if a Customer consists of several tables each of these will be on a tab-heading). As there is only 1 table behind each Editable window it is pretty easy to code UPDATEs and INSERTs automatically. When it gets more complex I use the Factory pattern so that specific Editables that are instantiated can have different behaviour.

4. The "Relationships" table connects different entities together so that once the Customer entity is open an automatic link to Orders to see lists (or charts or trees or reports) which become available, depending on a Users security. Confusingly a bunch of other functionality has gone into this table ...

--

I use Factories in Delphi so that I can build specific classes of visual object based on the Class-Names passed up from the Entities and Relationships table. That's about the only piece of "magic" ... and it is really cool.

.... anyway I really ought to get back to my TODO list Smilebut happy to talk about this more off-line if you are interested.
Fri, May 3 2013 7:11 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam

>I would love to Roy, but it is just too much of an awful mess for me to show anyone else, I'd be too ashamed Wink

Unlike the pureists I do not believe there is anything to be ashamed of in code that works. It may not be how I'd do it or how they'd do it but it works. That is the important point.

>The issue is that it has developed in a very organic way over about 15 years with me as the sole programmer ... so I haven't ever really had to rationalize it, though I have a long TODO list Smiley

YEAH the ideal sized project team <vbg>

It sounds fascinating and a major support nightmare since you can't say to the user "if you click on X what does it do" or can you?

>I use Factories in Delphi so that I can build specific classes of visual object based on the Class-Names passed up from the Entities and Relationships table. That's about the only piece of "magic" ... and it is really cool.
>
>... anyway I really ought to get back to my TODO list Smilebut happy to talk about this more off-line if you are interested.

OK off you go back to work. I may well take you up on your offer when I've finished de-TMSing an app if its still available. Only two forms and two subsystems to go, naturally, the most complex.

Roy
Fri, May 3 2013 7:35 AMPermanent Link

Adam Brett

Orixa Systems

>>It sounds fascinating and a major support nightmare since
>>you can't say to the user "if you click on X what does it
>>do" or can you?

All Clicks are linked to Actions, so provided I can figure out _which_ action a user is calling I can get to the bottom of most GUI related errors fast. Totally unexplained AVs are the nightmare, and these happen from time to time.

>>OK off you go back to work. I may well take you up on your
>>offer when I've finished de-TMSing an app if its still available.

I look forward to it. My email address for a direct contact is myname@mycompany.co.uk, I think you can probably figure this out Smile
Fri, May 3 2013 7:36 AMPermanent Link

Adam Brett

Orixa Systems

>>I look forward to it. My email address for a direct
>>contact is myname@mycompany.co.uk, I think
>>you can probably figure this out Smile

Actually: myfirstname@mycompany.co.uk sorry.
Image