does anyone know of good delphi docking components? - delphi

we'd like to add movable panels to an application. presently we've used DevExpress docking library but have found them to be disappointingly quirky & difficult to work with. it also has some limitations that aren't so great.
auto-hide, pinning, and moving of pages by drag-and-drop are all features we'd like to use.
the built-in delphi docking doesn't seem to be full-featured enough to do the things we need (also see sample below). perhaps i should dig deeper into delphi's docking abilities...my initial impression is that they seem very toolbar-oriented rather than something i can drop a frame into.
i'm not experienced at docking topics. my only experience has been with the DevExpress docking library where i needed to programmatically create & dock panels.
is it my imagination or are DevExpress's products unduly difficult to use/learn? the DevExpress Ribbon Bar component compared to the d2009 Ribbon Bar was certainly a useful experience. i will migrate to the d2009 Ribbon Bar as soon as convenient to do so. it was refreshingly straight-forward to learn and use. a sharp contrast compared to the DevExpress equivalent. if it takes 4x as longer to make it using the DevExpress equivalent, it's time to change direction.
what would you suggest in regard to the docking library?
thank you for your suggestions/comments!

AutomatedDocking
http://www.automatedqa.com/products/aqdocking/index.asp
and for free one JVCL Docking
http://jvcl.delphi-jedi.org/

Disclaimer: I'm not a big fan of docking...but...
Have you played a lot with the docking as it is in Delphi?
If it does all that you want, then give a new try to the VCL...

AutomatedQA's docking components are great. Easy to work with, good help, Visual Studio 2005 style docking hints, etc. I started with DevExpress docking components (I still love DevExpress and use lots of their components), but I think the AutomatedQA docking components are easier to use and more reliable.

LMD Innovative has a docking pack (http://www.lmdinnovative.com/products/vcl/lmddockpack/). Didn't use/need the code so far but the compiled examples worked well.

I'm glad to read your post, I'm using Automated QA' docking components, and I'm fed up with them. I was considering switching to DevExpress, but I think I willl give it a second thought now.
The most problematic with AutomatedQA's component is bugs, sometimes floating windows disappears, when pinned panels are unpinned and stuff like this.
AutomatedQA does not offer a decent support and new releases should not be expected on a yearly basis, even if you have pointed out a bug that can be easily reproduced. I have a suspicion that the docking framework doesn't get much focus within AutomatedQA.
I gues one have to turn to the built in VCL or perhaps JEDI, but I can't find any valuable samples (the mediocre docking sample included with Delphi does not provide much help), but I guess it must be possible, after all they built Delphi using this...
Does anyone know a good JEDI docking sample application?

Related

Delphi TExpander Equivalent for VCL

Using Delphi Tokyo with Windows10.
I would like to use Expanders in my VCL App, ie, to quickly show/hide info and to declutter UI's. They are pretty common now and done very well elsewhere, eg, in Microsoft's Fluent UI and also in Android, in fact they are part of Android's Material Design.
Delphi does include the TExpander Component for FMX, but for some reason does not have one for VCL (yet).
How are others handling this in their VCL Apps?
Is there a way to access and instantiate the Expander component that Windows itself uses with an API call?
Are folks just writing their own? If so, I would welcome a link to a Github repo or equivalent so I don't have to reinvent the wheel. I am not asking anyone to write anything just asking if anyone's done this and for a pointer. If not, I will write one myself and share.
I know there is the TCategoryGroupPanel, it just isn't very snappy and is somewhat awkward. I also know that TMS sells something like this but unfortunately this will not work.
Alternate suggestions for getting an Expander Component into a Delphi VCL App would be most welcome too.
Thank you
There is no native Windows control for collapsible panels (for use in VCL application), but you can use the mentioned TCategoryPanelGroup. In my opinion I cannot say there are issues that could prevent you using that control.

Usage for LiveBinding

I don't understand LiveBinding's purpose. I would like to know which are the cases in which LiveBinding is most valuable. Embarcadero's manual describes it: "LiveBindings is a data-binding feature supported by both the VCL and FireMonkey frameworks in RAD Studio. LiveBindings is an expression-based framework, which means it uses binding expressions to bind objects to other objects or to dataset fields".
Thanks but I still don't know more than before.
I have seen some video in which a guy spends 12 minutes and hundredths of clicks to connect the caption of a TLabel to a TListBox control. When the user clicks an item in ListBox the name of the item is shown in Label. I could have done that with a single line of code (few keystrokes and no mouse clicks).
I am not criticizing LiveBinding. I am saying that I don't understand where it is helpful. I am missing something. Since it is not doing something that cannot be done from code, it means it's doing something that can be done from code, but visually and much much faster. I admit I haven't invested a lot of time in this topic but everywhere I look I see a terribly convoluted way (come on, you really need 5 extra controls to make LiveBinding works?) to do a simple task.
Also, it seems that LiveBinding was mostly designed for DB. All examples will include some kind of DB connectivity. But I am expressly interested only about the cases where I can use LiveBindings and there is no data set/DB involved. I am not using DB that much.
I doubt v. much that anyone would use live bindings if they could use traditional db-aware VCL components. However, that's not an option for non-VCL projects (Android, Apple, etc) and live bindings is the only Emba-supplied option for delivering data to those from TDataSet descendants.
An advantage of live bindings is that in addition to the Android and Apple targets, you can use them in Windows apps, so conceivably you could write the same (FMX-based) application for all three.
Libe-binding can also be used in VCL applications, but tbh, I can't imagine why anyone would use live bindings if they were only targeting a Windows DB application, as they are much slower than the traditional db-aware controls, especially multi-row ones such as grids.
I have not tried myself, but because the implementation of live bindings is interface-based, its potential use extends far beyond DB applications, but you would have to implement the interfaces yourself. It seems to be based around a fairly abstract expression-evaluation engine.
Setting up a l.b. project in the IDE does seem to require quite a bit more clicking around than you'd be used to from a traditional VCL app, but that's mostly because there is an additional step involved where you tell the IDE how to bind the gui objects to the data source(s). However, it is quite straightforward to "wire up" live bindings entirely in code if you want to.

Overriding the paint events in Formula One (1) in Delphi 7?

My company has a Delphi 7 application that relies on Formula One spreadsheets (TF1Book) for a key part of the application.
Users are pretty happy with the functionality actually, but it looks very dated now, especially now we have a Microsoft 2010 style ribbon interface throughout the rest of the application.
My question is whether it's possible to override the paint events for the TF1Book? It doesn't seem to expose anything and the source code isn't provided.
Thanks!
Formula One for Delphi is delivered as an ActiveX component. It is an excellent component, but it is somewhat aged now. In any case, you don't get the code, so you cannot make modifications. You are out of luck. You cannot change the appearance of Formula One.
My company used to use Formula One. We moved away from it a few years ago because we felt vulnerable without source code. We also had problems with the licensing of later versions of Formula One because the vendor wanted royalties which naturally we did not like. We anticipated 64 bit Delphi and took a decision to make sure we had source for all our external libraries.
We ended up using DevExpress ExpressSpreadsheet. It certainly looks more modern. And you can customise it. We are happy enough with it although the standard of coding is very low. We had to implement many bug fixes and performance improvements because the design was so bad. But, it is still probably the best option.

Does a VCL OrgChart component with decent features exists? Is there a viable alternative?

I am using DevExpress OrgChart component that is still maintained but not developed since 2003 (fortunately bugs are fixed, but nothing more).
Honestly this component, even if it starts to look too old still suffices my requirements except for 2 things:
1) it doesn't support at all the staff feature, for understanding what I mean see this image (where the items in staff are Administration, Communication, IT, Special Projects).
2) it arranges the items without optimizing the space, for example if there are 3 items at top level, and only the second item has 2 childs, the top items items are drawn more distantly, because of the 2 childs, there is no an option for "shirinking" the diagram.
Of course the component misses tons of the features one would expect from an OrgChart tool, but in my case Those 2, and expecially (1) are important, the rest is lack of eye-candy.
I look for VCL components, but if (as I fear, since I never found it) such component doesn't exist) I can see the following alternatives:
i) using Hydra with .net winforms components
ii) using ActiveX components. Between the 2 I would prefer ActiveX because of the .NET deployment hell (what I like about Delphi is that you ship the exe to the customer witn Win2k and it works). Anyway I never used an activeX control and I don't know which are the deployment issues, but I fear I will lose the opportunity of replacing an exe and upgrading the software.
iii) hire a delphi component develoeper that can customize the DevEx component by adding feature (1) and maybe (2).
I am stuck.
Try www.componentone.com . They have almost every component you need.
Have you looked at TMS Diagram Studio or dtpDocuments?
Both are native VCL solutions.
By answering my question I has to (sadly) say that:
there is no a good OrgChart VCL component, where by OrgChart component I mean one like DevExpress OrgChart component: not only a component that allows you to draw a orgchart diagram, but a component that has some logic for rearranging nodes automatically (like DevExpress one does). Unfortunately DevExpress doesn't develop that component anymore, because the idea beyond that component was good, there is a very light hope from Steema people (they introduced a new OrgChart series in TeeChart v8 and put as desired feature the "staff", this is tracked on their website as enanchement TV52013924, anyway it is not clear if this will be ever released).

Best auto-update component(s) for Delphi

I am re-writing and/or consolidating a bunch of my "app framework" classes (basic mainform, about box, locking routines & purchase linking, auto-update, datamodule initializer, etc) -- Basically, I have a number of small potential shareware apps that I'm wanting to get out the door, and want to re-use code where I can, as well as build a framework for later apps to save time.
In one app I have auto-updating, I'm using LMD's WebUpdate, and am reasonably happy with it, but given that I'm re-vamping everything, I thought I'd see what the consensus is for "best approach" on this. I don't mind paying for commercial, nor using open source if that's best... just would rather not reinvent the wheel. (I've read: Delphi: How do you auto-update your applications?)
What is the best Auto-update component for Delphi Win 32 apps?
I use TmxWebUpdate. It's free, simple and easy to customize. I also own TMS Component Pack with TWebUpdate, but never really found a good incentive to switch.
I use TWebUpdate from TMS Components and am very happy with it. I haven't used LMD so unfortunately am not able to provide a comparison.
TMS also supply a whole raft of other components so if your re-writes require any else, especially if you want some shiny UI enhancements (TMS have a range of iPhone-style components) then the website is certainly worth a visit.
They seem fairly active in their support forums (although I haven't had need to use them for the WebUpdate component) and they have a fairly regular release cycle.
I have heard good compliment about TWebUpdate from Tmssoftware
also torry has much components for the same job, some are free and others are commericals.
Now what's the best?, it's depend on your needs, you already using one from LMD, which is a good company and I have very good experince with their components, but never used this one.
If you need a specific functionality, or you have some problems with the current one you are using, it's will be better to list them, so you will get a better answers, but it's hard to define the best, because every one has different experience and views.
I use TWebUpdate myself. It works, but the docs are a bit limited and it seems a bit buggy sometimes.
I have looked into LMD's (I have their full component pack), but it seemed to be much more limited than TWebupdate.
I'm also using TWebUpdate, and have to echo stg's comments on quality of support (good), and quality of documentation (spotty -- it's old, and doesn't always reflect their new features immediately).
You'll also find some places that stress the "roll your own" approach.
Remember that part of the auto-update issue is the tools that you will need to create the update "package" at your end. TMS Software makes a tool available for use with TWebUpdate, and it's reasonably well done. In my case, I'm "misusing" the component to deal with multiple files so that I can refresh additional related libraries, text files, etc. The update builder tool isn't really good for that. So there's some manual editing. But the updating part works well.
I'll also add a caution that you need to be careful with updates in Vista (and probably Windows 7). Writing to the protected places in the Program Files hierarchy was problematic for me. You may want to check that out with whatever component you use.
Have you considered Appwave from Embarcadero. It's not free and I don't know the price.

Resources