Assignment: VCL
Well the easy days of working just on internal tooling and processes are over. I’ve been assigned my first real area which you guys actually touch. Luckily enough I’ll have help on this one. I’m to assist Seppy Bloom with VCL, an assignment that I’m diving into with some enthusiasm. It’s going to be treat working on such a useful architecture (we’ll see if thats still my opinion in a few months). With more people working on VCL we can hopefully put in alot of extra features and bug fixing into future releases of the source for you guys. There is alot of work to be done, features to be added, and ideas to be tested and I’m always looking for good feedback. If anyone has ideas for features, lists of bugs, or any other sort of work you’d like to see implemented in future VCL releases, feel free to respond to this post or email me at dlock@codegear.com to discuss them. I’d be happy to get any feedback you can send me!
Share This | Email this page to a friend
Posted by David Lock on May 30th, 2007 under Uncategorized |

RSS Feed

May 30th, 2007 at 5:37 pm
Unicode support for VCL Win32 please.
May 30th, 2007 at 11:16 pm
Threadsafety, or at least warnings/errors when
calling the VCL in a thread (TBitmap.Canvas for example?)
In the field, I see lots of errors be made with threads and VCL!
May 31st, 2007 at 1:21 am
Some serious rework done on ActionBars, especially a huge fix for TPopupActionBar.
TPopupActionBar doesn’t adhere to styles and this has been broken since its introduction.
Steve Trefethen did a Delphi 7 fix that was ignored for Delphi 2005, 2006 and 2007.
It is *really* time to fix the action controls.
May 31st, 2007 at 1:27 am
Second UTF8 for Win32.
Databinding. We don’t need TEdit/TDBEdit, TGrid/TDBGrid, TMemo/TDBMemo etc. Promote DataSource to TControl level. All controls should only show data but not hold them.
MVC, please!
And DataSet is not the only possible source of data.
If generics are here use them!
Multicast events, please!
Make TComponent.Tag an Object, please!
May 31st, 2007 at 2:10 am
Get rid of global form instance variables in the auto-generated code. Global variables should be a thing of the past. Instead, "class procedure Execute; static" (or something similar) should be used to instantiate and show dialog forms. Non-modal forms can still have an instance variable as a static class member
May 31st, 2007 at 2:14 am
‘…extra features and bug fixing into future releases of the source for you guys..’
What I think is important is that you break the current cycle for new features. Whereby
new features are often unusable until the release after they are added (widestring
support has been an example of this).
I personally would rather have 5 features flawlessly implemented than ten with bugs. If
I really need the other five a third party vender will almost certainly be offering them
if they were mainstream enough to be considered for sale with the main product.
If you release new features before they have been robustly tested, then perhaps
you could release two versions of the VCL with Delphi. A stable version and a preview version.
May 31st, 2007 at 3:50 am
A plateform Independant VCL.NET to work with mono.
May 31st, 2007 at 3:50 am
A plateform Independant VCL.NET to work with mono.
May 31st, 2007 at 8:14 am
1. Make TBitmap thread-safe.
2. TZip component, for using Zip files.
3. SSL support.
4. Native support for dBase files (not using BDE) via DbExpress perhaps.
5. Release the source code for BDE, or at least those bits that are not covered by third-party patents.
If I think of anything else I’ll be back.
May 31st, 2007 at 8:25 am
Allow to create cool stuff:
apps with flash / silverlight style (gradient fills, animations, transparency, fades, etc).
Cool interfaces is the first that non-technical users note.
May 31st, 2007 at 9:22 am
Implement improvements to TPrinter as QC33800 - unglamorous but ten years overdue
May 31st, 2007 at 9:29 am
All those requests above… need to create new VCL? VCL 2?
May 31st, 2007 at 9:50 am
Thats alot of feedback for one day. Looks like I’ve got alot of work on my hands!
May 31st, 2007 at 10:26 am
Get rid of "main" forms and the application window. Replace these with top level forms and parent-child relationships. Application.MainFormOnTaskbar is a ludicrous hack in the name of backward compatibility. I say, why should VCL-based applications be limited to one "main" form anyway? It’s way too restrictive; have you tried implementing SDI UIs in Delphi lately? Or, dare I say it, more than one MDI form?
If you want to revitalize the VCL, you’re going to need to have a long hard look at this. The application window in particular is pointless since Windows 95, and has only caused trouble with Vista. If you need a window handle for internal stuff, use a hidden or message-only window.
May 31st, 2007 at 10:57 am
And, of course–welcome! Obviously no lack of things to do…
bobD
May 31st, 2007 at 11:20 am
Unicode please! Alpha support for controls, image lists, and TCanvas/TBitmap. While you’re at it, how about some updates to TCanvas/TBitmap, being able to set a clip rect would be nice, as would GDI+ features. Native PNG & GIF support…
May 31st, 2007 at 11:26 am
a Screen Floating Panel VCL component to make custom tool bars or inspectors.
May 31st, 2007 at 11:39 am
Here are some of my most wanted:
1) Unicode
2) Get rid of the application hidden main form. This one has caused me an incredible amount of problems.
3) Improve threading support. Quad cores are on the way.
3) Replace TBitmap with TBitmap32.
4) Replace the Actionbars with Toolbar2000 with TBX and SpTBXLib.
Alternatively, put DevExpress in charge of the Delphi components.
May 31st, 2007 at 12:36 pm
Unicode.
Thats the only thing I need.
May 31st, 2007 at 12:37 pm
Add some interfaces to the VCL. Things like an IComponent for TComponents and IForm for TForm etc.
May 31st, 2007 at 12:40 pm
Actually, one more thing that someone else’s comment reminded me of. If its not there already (I’m still in D7), please add support in TBitmap for saving & loading images with alpha channels. I believe thats the V5 header or somesuch.
And Unicode. If Delphi wants to be a player going forward, it _desperately_ needs native Unicode support.
May 31st, 2007 at 1:44 pm
1) Unicode
2) ThreadSafe everything (Dual core and all that)
3) tPrinter - start again
4) License DevExpress Toolbar/Ribbon and make standard.
May 31st, 2007 at 2:26 pm
1. Unicode VCL controls
2. A Wizard to convert existing forms with ANSI controls (which must be retained) to new Unicode controls
3. Unicode VCL controls
4. Did I meantion Unicode VCL controls?
May 31st, 2007 at 2:45 pm
1. Consistent 3D look and feel for all VCLs (flat, raise…)
2. Multiple kind of editors for grid
3. Multiple columns for drop down combobox
4. Remove unneeded dependency on Forms unit such as in Printers. Reason -> need to fix bug but unable to compile
5. Support different types of graphics
6. DB Dropdown combobox refers to dataset.RecordCount, this is a big performance killer -> remove it
May 31st, 2007 at 3:22 pm
1) Faster TDataset
2) Unicode VCL
3) Multi Core/Threading
Thank you!
May 31st, 2007 at 3:29 pm
Improve threading support.
May 31st, 2007 at 5:26 pm
A couple of old QC wishes:
QC2267 (&7304) TCheckListBox additional methods for Checkmark control
QC2267 TCheckListBox.MultiSelect published
QC2175 TValueListEditor Usability Enhancement
May 31st, 2007 at 7:32 pm
Unicode VCL please… and a thread safe VCL would be excellent!
May 31st, 2007 at 9:44 pm
1. Replace the Actionbars with Toolbar2000 with TBX and SpTBXLib
2.Force native unicode support and thread safe
3.more coss platform (linux) support
May 31st, 2007 at 10:04 pm
There’s always the suggestions of the people at delphi.wikia:
http://delphi.wikia.com/wiki/Delphi_Suggestions
May 31st, 2007 at 11:32 pm
better TThread synchronization avoiding deadlocks using WaitFor while in a "synchronized" method …
June 1st, 2007 at 12:51 am
1. Unicode support: UTF-8 for storing text data in files, databases, xml; UCS-2 for manipulating text data inside VCL. Additional unit with Utf16String and UTF-16 routines for those who really need it.
2. Cross platform ready VCL: divide VCL into low OS-related levels and high OS-independent level. Every OS related level should be as small as possible. OS independent level should work over OS related levels and should not contain any direct communication with OS.
Make it possible for thirdparties to create OS related levels for another non-Windows OSes.
June 1st, 2007 at 1:02 am
1. DBGrid is stuck in Windows3.1 appearance and features - this needs a huge upgrade. Perhaps a completely separate control?
2. Actionbars are broken in great many ways
3. Fix the silly behaviour of the column/row editor for TGridPanel. If I want a column to be 50% of the control width, I should be able to specify it - it should only adjust one column/row. This control is so irritating to use that I just use custom alignment on a regular panel instead. Oh, and drag-and-drop reordering on both TGridPanel and TFlowPanel.
4. There are a huge number of shell controls missing. Start with the side-bar of Explorer (System tasks/Other places/Details) and work your way through the missing bits.
June 1st, 2007 at 2:35 am
Simple , fast , but very important
TCheckBox have a Internal Label.
Make it TRASPARENT, please !!!
June 1st, 2007 at 4:59 am
- Replace Actionbars with Toolbar2000 with TBX and SpTBXLib

- Unicode Controls
- Get rid of the hidden Mainform
- Upgrade TIcon
June 1st, 2007 at 7:08 am
- Go MVC, like Ruby/Django but best. Create a "controller" to drive the gui asnd easy to port thing to other plataforms
- Truly need more multi-thread love, specially with new n-core
- Unicode of course
- CSS for controls?
- Get VirtualTreeView on Delphi and build the grid from there!
- Easy skinning
June 1st, 2007 at 12:46 pm
support for mvc
support unicode vcl
June 1st, 2007 at 1:45 pm
Support for unicode is a dire need.
June 2nd, 2007 at 4:20 am
1. Add themes to the user interface to make it look better than old style.
2. Better support for Bidimode = RTL
3. Extender component as the .Net one(Highly recommended)
4. Make the standard control DB aware instead of have two components (TEDIT/TDBEdit)
5. Again better interface support for MainMenu/Toolbars and other control, but don’t forget the BIDI=RTL(ActiveBar doesn’t work well with BIDI=RTL)
and keep your great work
June 6th, 2007 at 2:32 am
1. Unicode support
2. possibility to use png graphics on speedbuttons, toolbuttons and images. (gif files are also an great idea
)
3. richedit export routine to html, doc and pdf
4. something like an object inspector (enhance value list editor)
5. add thumbnail view style to listview
6. gradient control
7. component to pack and unpack archives (.zip, .7z, .cab, …)
June 6th, 2007 at 4:25 am
- Fix bugs with ActionToolbars and ActionLists
- Fix bugs with TPageControl and resizing on IDE Load
- PNG ImageList
- unicode
June 6th, 2007 at 4:57 am
-unicode
-toolbar and menues office xp style
June 6th, 2007 at 5:05 am
Although not all of these suggestions directly relate to the VCL, I would like to see:
1) better multi-threaded debugging support. It would be ideal to see a call stack after an AV is thrown. It would be nice to be able to step through the code on a single specified thread, instead of jumping back and forth between threads (too many context switches for my brain). I would also like to be able to inject comments as part of an event handler, so for instance, the developer would be reminded of the thread context in which the method is executed.
2) Support for advanced Win32 objects like IOCP based socket servers, named pipes, MSMQ etc without digging into the Win32 or COM API . These could be third party components, or open source, but it would be a huge benefit if Codegear would QA and bundle such components.
3) A standard plug-in architecture like the application blocks Microsoft is putting out, that accounts for application security, cross plug-in communication including events, and automatic plug-in updates via HTTP, FTP or direct socket communications.
4) Don’t bother enhancing the standard grid and other controls unless there is no alternative. I would buy something like DevExpress’s suite (even a cut down version), document it (that is the one thing it sadly lacks), and bundle them as the standard controls, or replace select standard controls with the the best of breed open source controls like TVirtualStringTree, so newbies get a richer selection of controls without searching the web, and Codegear minimizes their R&D investment.
5) Change the form designer so that form controls are no longer publicly accessible. IOW, implement proper scoping so developers can no longer break encapsulation of visual controls. No more implied friendship in the same unit, no more circular reference issues, and provide a code migration tool.
6) Enhance or dump Indy. If Indy is the only socket library Codegear is going to provide with Delphi, then it should be capable of the same performance levels you can get in .NET (IOCP). Indy 10 is not being actively worked on, and has more stability issues than Indy 9 in my experience. The NET is too important to leave hanging. I would take over the open source project, or fund it to ensure continued development.
7) Show us how to write non-trivial .NET applications using the VCL that are source code compatible with Win32. This is one of Delphi’s strengths (support for Linux, .NET and Win32), yet there is very little guidance on how to support multiple targets with a single code base.
9) Bundle more tools. Development is not about cutting code alone. What about code coverage testing, unit, load testing, and profiling? Why not bundle GPProfile or AQTime lite, NUnit etc. and provide developers with guidance on usage of such tools with Delphi. If it’s all about increasing developer productivity then we need a more complete set of controls, tools, and the guidance to use them effectively.
June 6th, 2007 at 5:12 am
1. Full Unicode enabled RTL functions.
2. Unicode enabled VCLs.
3. Visual style support for menus and tooltips.
June 6th, 2007 at 5:12 am
1. Full Unicode enabled RTL functions.
2. Unicode enabled VCLs.
3. Visual style support for menus and tooltips.
June 6th, 2007 at 5:22 am
add the ability to bind components to projects:
when developing custom components for a specific project, it doesn’t make sense to have them installed globally, and it hinders the project’s portability across workstations. i’d like to have the ability to add a component to a project, and have it load register automatically when the project is loaded, and unregister when the project is closed.
better TwebBrowser
sometimes it’s easier to develop the UI for applications in html and use IE to render it (for graphically heavy interfaces). while bsalsa’s EmbeddedWB is much better than the TwebBrowser included with delphi, i’d like to see a wrapper that automates and simlifies the javascript to delphi glue interface.
June 6th, 2007 at 5:26 am
- Replace Actionbars with Toolbar2000
- A more "modern" TGrid / TDBGrid-component
- GDI+-support in TCanvas
- AsInt64-Property for TParam
June 6th, 2007 at 5:42 am
- Make VCL thread safe (must have)
- Include support for PNG files (must have)
- Fix the bugs in TActionToolbars, TActionsMainMenu
- Make the DBGrid to include native look, doesn’t look good in XP or Vista.
- Get rid of Main Forms, Some times I need all my forms in the task bar, not only the Main one, the horrible hacks to make it happen have glitches(must have).
- I want to bind DataSources to Objects too.
- And Update GDI with Antialising.
June 6th, 2007 at 6:35 am
Every control having a GUID property.
Useful on a whole bunch of levels, when writing tools to access the components.
June 6th, 2007 at 6:41 am
UNICODE
TZip component, for using Zip files.
Native support for dBase files like TDBF http://tdbf.sourceforge.net/
More properties and events for TDBGrid
Support for PNG files
Ribbon toolbar
June 6th, 2007 at 6:48 am
Fix bugs in TClientDataSet (if they haven’t already been fixed - I’m using D6).
June 6th, 2007 at 6:50 am
Native LZMA support would be better.
JPG2K/BMP/PNG support (alpha channel support too)
June 6th, 2007 at 8:20 am
I am using D6 and use mainly 3rd party controls.
Virtualtreeview
Turbo Power controls -> rubbish
My own grid
SkinEngine
LMD
Trichview
JCW Diary
SynEdit
Dream
Hate:
DevEx grid
Just look what is around and see why we use them.
June 6th, 2007 at 8:36 am
I’m user of devexpress for years, I can’t imagine an application with the standard UI of delphi. Applications need to be robust, but need a beautifull skin if you want to sell something today.
Also we need an update of canvas, with more capabilities, look at flash, we need to make programs that people say Wow!! when they look at it.
Thanks
June 6th, 2007 at 8:43 am
>> A true Incremental Search ComboBox, DbLookupComboBox, A ValueComboBox
>> Incremental Search ComboBox to work in DBGrid too
>> Sub-Grids In DBGrids for Master-detail
>> Color on Focus in all controls
>> Enter As Tab sort of feature
>> Vertical DBGrid
June 6th, 2007 at 10:05 am
1.Unicode Support
2.DBGrid have *very" old look&feel and features - this needs a huge upgrade or a new control.
3.Generics Support
4.MVC support (some kind of framework to work with it)
5.TDataset is too restrictive. Some .NET concepts on IList and DataBinding shoud be usefull for new ideas. I Must to bind DataSources to Objects too.
6.An xml streaming engine. Like TWriter/TReader but with XML.
7.ActionBars need "some" bugfix
8.built-in regular expression engine (a good implementation http://www.regexpstudio.com/)
9.Better multi-threading support for new CPU generation
10.Code Coverage Tool integrated in ide.
Someone (Steve T.) spoke about "Zombie", why not release as internal tool for Delphi?
11.Make VCL thread safe (must have).
June 6th, 2007 at 10:13 am
1. Unicode, unicode, unicode please!
2. RTTI for non-published fields
3. Built-in jpeg/png support
4. TWebBrower improvements- wrapping both IE/Firefox
5. Thread safety
June 6th, 2007 at 10:18 am
Yes, pleas Uni Code for the VCL
June 6th, 2007 at 10:49 am
Unicode and 64bit
June 6th, 2007 at 11:04 am
- Lock feature for frames which are added to a form
- Multicast events
- Object type for Tag property
- PNG support for TImage and TImageList
- ErrorProvider component
- GDI+ features in TCanvas
- Shell components
- CancelButton/CancelAction (Esc), AcceptButton/AcceptAction (Enter) properties in TForm
- OnHover event for dropped down TComboBox
- OnValidate event for edits
- AutoComplete features for edits
- Better TPrinter component with more public properties and methods
- psImageIndex Style for TStatusPanels
June 6th, 2007 at 11:37 am
Unicode please!
June 6th, 2007 at 11:54 am
1. ability to bind controls without them being TDBDataSet. support IDataAware.
2. Global notification system so any control can register a new one or to receive.
3. Not have all drop-on controls "Published".
4. add visiblity to Delphi only Interfaces. ie. private for Get,Set
5. possibly insert Interfaces in the appropriate places throughout the VCL to allow better Design Pattern implementation.
June 6th, 2007 at 12:18 pm
How about some new modern components rather than having only a TToolbar to work with as a standard component? This is especially important with Vista. Maybe a basic Ribbon Bar would be great to have as a standard component.
June 6th, 2007 at 2:25 pm
Not strictly VCL, but:
1. Unicode
2. Thread safety
3. 64-bit compiler and .NET 2/3
4. Use advanced features in the RTL. E.g. TStrings and TStringList look like they haven’t been updated since D3 (what is TStringsDefined for? IMHO that’s the constructor’s task)
June 6th, 2007 at 7:38 pm
BDE - keep it around for Paradox and dBase support or move it to DBEXpress along with TBatchmove.
June 6th, 2007 at 7:41 pm
1. Standard language stuff (multicore improvements, 64 bit, Cross platform, Unicode)
2. Update TCustomAction to have Undo/Redo methods and events. Add a TUndoStack class (and a menu that can automatically display the stack) I have already done something like this (and would gladly donate it), but it would be awesome to be in the VCL and encouraged to be supported by everyone.
3. A TPatchUpdate component that can update an EXE
4. DirectX components
5. A Tool that would benefit everyone but is not VCL would be a component developer tool. Given a dpk and pas files, automatically compile and register the package for all installed versions of Delphi (selectable by the user). Sort of like the TeeChart recompile utility but for everyone. (Note this is not an installer, there are plenty of tools out there for that)
June 6th, 2007 at 10:18 pm
Multicast events with automatic free notifications. (So if a subscribing object is destroyed, it’s automatically removed from all the multicast events it’s currently subscribed to.)
Generics in Win32. First stop: TObjectList<T>. Second stop: TStrings<T>, where T = the type in the Objects[] array.
Generics in .NET, for that matter. Still waiting for the release that was supposed to come out last year.
For..in support for IInterfaceList. (There’s already a GetEnumerator method in TInterfaceList. You just need to add it to the interface.)
PNG support, with at least color-key transparency. Full alpha-channel support would be better yet. (Might also be nice to have GIF support now that its patents have expired, but PNG would be so much more useful.)
Published-that-isn’t-public. I want the designer to create and maintain those variables for all the controls on my form, and I want the streaming system to populate the references (which means they need RTTI), but I don’t want the compiler to let me access them from outside the class.
Some reliable way of defining the stacking order when multiple controls are Aligned to the same edge of the same parent. (If you hide some of them, resize the parent, and then show them again, they won’t still be stacked in the same order.) Perhaps there could be an AlignIndex property or something.
Visual Form Encapsulation. VCL got it wrong, WinForms got it right. When I drop a frame onto a form, don’t let me change properties of the controls inside that frame (because if I do, it’s almost always by accident, and it screws things up when I edit the original frame later). If I want to edit the frame, I’ll open the unit it’s in, thank you.
TIntegerList (or better yet, IIntegerList, so we don’t have to worry about memory management).
OwnsObjects property on TStrings (like the OwnsObjects property on TObjectList).
Sparse arrays — basically a HashTable where the key is an integer. (Sure, I’d like a full-fledged HashTable that can take any type as the key, but an integer would be a great first step and would be very practical to implement in Win32.)
Threadsafe VCL, where I define "threadsafe" to mean "I can create forms from multiple threads". Having just one GUI thread is too restrictive.
Include some of the IDE’s cool controls (Object Inspector, the component palette) in the VCL, with full source.
Macintosh support, preferably with single-source cross-compiling.
June 6th, 2007 at 11:52 pm
PNG, JPEG and Alpha support for ImageList / Buttons / etc
Unicode Support (full)
Updated grid and buttons
Transparent controls
TPrinter rewritten
Improved thread safety
Multi-core improvements
64 bit
Additional support for pdf, rtf
June 6th, 2007 at 11:57 pm
dbgrid needs update , something like Infopower studio.
June 6th, 2007 at 11:58 pm
I would love to see a thread safe VCL with a decent thread manager. By that I mean that I should rarely (if ever) need to synchronise with the main VCL thread. Secondly, the Thread Manager should allow me to keep track of all the Threads my application has started, and allow the application kill any one at any time!
It would also be useful to have a set of container classes (similar to the C++ containers) to make it easier to manipulate data internally.
June 7th, 2007 at 12:01 am
For users outside America and Europe:
1. Unicode VCL for Windows 2000 and above
2. DBGRid Bidi mode per column in addition
to the grid Bidi mode. There is a need
to edit and display English column and
arabic/hebrew column each with its own
reading order.
3. Translation suite corrupts forms in big projects
June 7th, 2007 at 12:30 am
Having browsed through this list, I see two items standing out as "most wanted":
1. Unicode support in VCL
2. (More) Thread safety
Both sound good to me!
Kjell
June 7th, 2007 at 12:32 am
1.Unicode VCL please
2.Unicode VCL please
3.Unicode VCL please
I dont need anything than that i mentionted above
June 7th, 2007 at 3:27 am
1. Once again Unicode. It is a hell to support more than one language without Unicode.
2. More optimizations in compiler -> automatic MMX, SSE 64bit support which many modern compilers have built in nowadays.
3. Support SVG since otherwise the one have to use EMF’s which always seems to cause troubles
(see newsgroups!)
4. Provide some searching and sorting functions independent from TList. There are many times one just wants to sort a double array.
June 7th, 2007 at 6:35 am
Make a native code (win32) version of garbage collection for interfaces that goes beyond refcounts and actually tracks objects that reference an interface for easier debugging and cleanup.
June 7th, 2007 at 9:08 am
thread friendly VCL
*All* controls to honor the windows "themes" eg grids, toolbars, menus
Ditching the hidden main form thingy
Improved toolbars that offer styles like the ones from office without having to override all the drawing yourself, or buying 3rd party stuff
Richedit/HTML labels and Editboxes
Ditch the 2 instances of trayicon in the tool palette
Change to accessible items such as invalidate cell/row/column in grids rather than us all resorting to the "THackGrid" work around
A grid that allows simple calculations and developer designed functions.
June 7th, 2007 at 11:11 am
TListView vsReport mode should support sorting by column clicking, inclusing drawing of the sort arrows, with assignment of a built-in sort type to each column (ASCII, UNICODE, integer, float, date, etc.).
The look of TDBGrid is very out of date. It should support themes, etc. It also needs to be able to embed basic controls like checkboxes, more complex combos, etc. It would also be nice if it supported column-click sorting for datasets that support that.
June 7th, 2007 at 11:48 am
1. Class Operator Explicit() - Not identical Implicit as now
2. Class Operator Assign()
3. Unicode support
June 7th, 2007 at 4:46 pm
1.a way to remove unused units from uses clause;
2.a property grid component like the object inspector in delphi ide;
3.replace C++ with Delphi form the face of the world;
June 7th, 2007 at 9:38 pm
Please bring the Delphi win/32 TRichEdit control up to date with the one shipped with XP/2000.
The version of RichEdit supported by Delphi is v2.
The main shortcoming in the Delphi TRichEdit is "Full Justify".
Most reports need full justification.
Windows RichEdit supports full justification since 1999.
http://qc.codegear.com/wc/qcmain.aspx?d=40808
June 7th, 2007 at 9:55 pm
What can i say that most of the guys didn’t said?
Well i’m using Delphi for the past 2 years, learned programming in Delphi, only improvments
i would like are:
(1) Object Inspector is a total mess… Delphi7 has a very good object inspector, while delphi 2005,2006 *suk* sry but it’s true, compare with D7 and u will see.
(2) Some skining components that eats LITTLE resource, do those the Delphi way
The rest is ok, if anyone wanna bring something new be my guest, but i think this are main(at least for me).
June 7th, 2007 at 9:56 pm
What can i say that most of the guys didn’t said?
Well i’m using Delphi for the past 2 years, learned programming in Delphi, only improvments
i would like are:
(1) Object Inspector is a total mess… Delphi7 has a very good object inspector, while delphi 2005,2006 *suk* sry but it’s true, compare with D7 and u will see.
(2) Some skining components that eats LITTLE resource, do those the Delphi way
The rest is ok, if anyone wanna bring something new be my guest, but i think this are main(at least for me).
June 7th, 2007 at 9:56 pm
)Select*from*where*<>*
June 7th, 2007 at 11:10 pm
- java.util.Map interface and implementations like in java
- simplify thread safety: use synchronized methods like in java
- Move XMl databinding wizard to the tools-menu
- Make XML mapper tool more intuitive to use
June 8th, 2007 at 12:50 am
No need to create TFields elements as components of a dataset’s owner. I mean if I have a dataset and create persistent fields than all them are added as components to the datamodule. There is no need. It would be much better to address fields like MyDataModule.SomeDataSet.SomeField instead of MyDataModule.SomeField
And TFields was introduced before all the TCollection stuff. Now TFields should be a TCollection.
The same is for Actions in the ActionList.
June 8th, 2007 at 12:54 am
In addition to ECO/Win32 which is a must for Enterprise we need more simple MVC like Table Model (see Scott Ambler) with traditional datasets for Pro versions.
June 8th, 2007 at 12:59 am
TBitButton:
-possibility to color the backgound
TCombobox:
-possibility to color the background of individual items in the list
TStringgrid:
-easy coloring cells
-easy change font of an induvidual cell
-possibilities for aligning text in cells (taLeftJustify, taRightJustify, taCenter)
-.clear procedure to empty the entire grid
-cells supporting different types besides a string. Such as : integer, double, boolean
-function to make the widths of the columns as wide as the widest text
-search function in the grid
-function : getIsCellSelected(ACol, ARow) : boolean
-deleteRow function public
-swapRow function
-insertRow function
-moveRow, moveColumn function
-when the text of a cell is too long, break it up at place dots (…), for example: if the word ’supercalifragilistic’ is too long to display in a cell, make it ’supercalif…’.
-sorting columns by clicking on the header of a table.
-fixing bug : Now it is impossible to intercept if the user clicked the header or adjusted the column width
-possibility to save and load columnwidths
-possibility to name columns. example: When you need to addres column 3, wich displays addresses. Just adress the cell by a function like cellsByName['addresses', 6]
-add a rowpointer for easier filling the stringgrid with data. De pointer points to the current row you are filling with data.
-no error messages (or a setting is the programmer wants errors displayed) when accessing cells outside the boundaries of the stringgrid.
-ctrl A = selecting all cells (if thats possible according to the options property)
June 8th, 2007 at 1:04 am
Components can be vreated by components verdors.
But CG should provide an integration frameworks. So that components of different vendors can communicate to each other using well-defined interface-based contracts and be easyly substitued.
VCL should provide a set of interfaces to design against. We need a IDBGrid to design our own grids that can be used instead of any other grid.
The same is for collections. Declare IMap, IList, etc. For components vendors to provide compatible versions.
The same is for the whole frameworks. Look at Java JSRs.
June 8th, 2007 at 3:42 am
controls that uses the Delphi IDE:
- TInspector
- THighlightEditor
- themed DBGrid with posibility for column to display a datepanel and calculator like it does with lookup, and autocomplete for picklist..
June 8th, 2007 at 6:49 am
* Support Skins
* Float form design like Delphi 7, this way like Visual Studio was so bad.
* An option to choose what core I want to load delphi.
* Option to hide scrool bars in DBGrid.
* A component to print in a Matricial printer like Clipper, saing the row and col, and normal, expanded, condensed, bold, etc…
* Use Digital-Metaphors ReportBuilder default report generator.
* iif() function
* Firebird driver.
June 8th, 2007 at 9:20 am
I would like there to be an easy way to add user-defined controls to the Open File or Save File dialog boxes that are displayed when TOpenFileDialog.Execute or TSaveFileDialog.Execute are called. For example, I would like to be able to add a custom control that would display a preview image of the selected document to help the user decide if the correct document has been selected.
June 8th, 2007 at 4:27 pm
- I would like more RTTI tools like reflection in .NET. Something to inspect the internal structure of a class, private members, public members, methods, class inheritance.
- Databinding like .NET, with possibility of easy databinding to object.
- Generics.
- Multicast.
June 9th, 2007 at 6:12 am
Great!
1- TDBGrid: Footer Cell, Enable property for each column, Multi Line Title,
Multiple cell lines per record and multiple text lines per cell
(see http://www.quasidata.com/dbaltgrid.html),
BidiMode for each column, Zebra like color, showing cell as checkbox,
EnterAsTab property
2- TTreeView: Checkbox on each Node, RightToLeft
3- TPageControl: modern style tab
4- TEdit: optional elipses button,
5- TCheckBox, TRadioButton: AutoSize
6- TListBox, TComboBox: adding image to items and link to imagelist
7- TPanel: adding Title region, adding gradient property, XP Panel
8- Toolbar, Coolbar: adding office xp style
- Improving web development tools
- Flat property for all visual controls
- Add Gauge components like Dundas Gauge (but simpler than that!)
- Take a look at EhLib components
June 11th, 2007 at 1:19 am
There are problems extracting interfaces from an object created and assigned to a variable. If the object is destroyed, before the interface is deferencied, the system call the _release method of IInterface after the destruction of the object and this causes an access violation. This causes problems extracting interfaces from object craated and assigned to object variables
June 11th, 2007 at 1:50 am
Soap support for document literal mode
June 11th, 2007 at 1:52 am
Give me an xml object serializer please!!!
June 11th, 2007 at 12:50 pm
-UNICODE,
-Databinding in componets, like .Net
-better theme suport, expecially for dbgrid
-allow ticon to suport many images like the ".ico" files
-ticonlist like Timage list, selecting the image by resolution
June 11th, 2007 at 5:42 pm
-Improve TScrollingWinControl so that viewport based scrolling is used instead of manipulating children’s Top and Left properties. At the very least this sort of thing should be implemented in TScrollBox.
-Include OnScroll event for TScrollBox. This wouldn’t be a problem if TScrollBox used TScrollBars instead of TControlScrollBars
-When programmatically changing a TScrollBox’s scrollbars Position property, a MouseMove event is triggered on child controls because they are moving beneath the mouse cursor. OnMouseMove events should really only be fired when the mouse actually moves.
-Consider alternative to triggering the OnClick event when setting radio button or checkbox Checked property to true. This is a pain when an Action is associated with the control, often one may wish to make a control checked without triggering it’s click event. An alternative would be to use the OnMouseDown/Up events for mouse click handling except that the OnClick event is automatically set to the Action’s OnExecute handler.
June 12th, 2007 at 2:36 am
we’d like to have:
1. embedded components in TDBGrid columns.
2. easy to use mechanism for saving and restoring properties of components while the application runs.
3. skinning capabilities
June 13th, 2007 at 5:15 am
Please:
- no fancy tab controls
- no additional buttons in TEdit
- no super-ultra-skin, etc.
- no TInspector, TInterpreter, math lib, mediaplayers, …
Just the core. We already have JVCL, Scalabium grid for free and plenty of controls from TMS and DevX.
But.. TDBGrid is… How many perfect controls descend from it? IMHO, it’s the single control to be rewritten entirely.
June 13th, 2007 at 8:24 am
Add a Property UniqueInstance to TApplication object.
I always have to put the following code into my project file:
mHandle:=CreateMutex(nil,True,PChar(ExtractFileName(Application.exename)));
if GetLastError = ERROR_ALREADY_EXISTS then Halt;
It would be nice to have something like this:
Application.UniqueInstance:=true;
Thanks.
June 22nd, 2007 at 10:02 am
Actually, I use under D7 this code:
with TMyObject.Create do
try
MyObjectProperty := True;
try
// Some other code
except
on E:exception …
Exit;
end;
finally
Free;
end;
It would be nice to have something like this
with TMyObject.Create do
try
MyObjectProperty := True;
// Some other code
except
on E:exception …
Exit;
finally
Free;
end;
I don’t know if this structure has already been implemented in the followed version of Delphi 7.
Thanks.
July 2nd, 2007 at 10:18 pm
-Take a look at NextGrid
-Flat property for all component
-Some components has painting problem in RightToLeft mode
-Language Enhancement:
-Garbage Collector
-Separating COM concept from Interface concept
July 2nd, 2007 at 10:20 pm
try..except..finally..end syntax
July 3rd, 2007 at 7:44 am
Alpha support for TImageList (and everywhere else
would be VERY appreciated
July 8th, 2007 at 6:40 pm
I would love to see a general commitment to support component development.
To call the component development environment “hostile” is being generous. Some improvements that would be really nice to see:
* In the IDE code, trap exceptions in calls to component methods and let us poor mortals know which call to which component failed. As it stands, one false step and the whole IDE comes crashing down providing absolutely no useful information. I’m sure the trillionth of a second of CPU time would be worth it. For bonus points, apply the same philosophy to user-developed designers, wizards, prop editors, etc.
* During package loading and initialization, write a log file (optionally) – a honkin’ huge highly-detailed log file. Currently, it’s incredibly easy to crash the IDE and have it die in IDE code, not component code, rendering the ‘run two instances to debug it’ approach useless (unless you want to ship documented IDE source code). We can only log things that happen when our code is running – little help when the IDE itself raises exceptions..
*. Write useful error messages. “Call failed” is not useful. “Call to <classname>:<objectname>(@<InstanceAddress?).<Methodname> failed with exception <ExceptionDescription>” is a step in the right direction and trivial to code.
* Provide some basic tools for package management (development of, not managing which ones are installed). Assume the developer’s time is valuable and that they don’t have time to grep through megs of code trying to figure out which package an implicitly-included unit belongs to so they can require it.
* Write useful error messages.
* Sometimes we need to remove a published property from a component. This is a nightmare now, as it requires opening every form in every app which ever used it and “Ignore”-ing our way through form-loader errors (or churning through a thousand DFM’s). A practical solution would be a compiler switch which told the VCL stream loader to ignore values assigned to no-longer-existing properties. From the looks of the source, the loader mod would be one line of code.
* Don’t confuse Rapid Code Compilation for Rapid Application Development. – the former is an implementational issue, the latter is a philosophical issue which touches on everything from help file indexing to standardized nomenclature.
* Did I mention useful error messages?
Areas for improvement aside, you still have the best overall development environment on the planet. Rock on.
July 10th, 2007 at 12:03 am
1. fewer bugs
2. php methods for better manipulating dbgrid 3. checkboxes for cells in dbgrid-component.
4. useful errormessages
5. options for colspan and rowspan in dbgrid-component
July 15th, 2007 at 9:54 am
It would be nice if TCollection worked with Form Inheritance. I haven’t tested this past Delphi7, but without it, Form Inheritance is close to useless on any form that has substantial GUI controls.
August 12th, 2007 at 11:51 pm
Add try..except.finally..end; syntax
Add Garbage Collection to memory managment
August 21st, 2007 at 10:56 am
1. Support for RTL in TPrinter
2. Support for RTL per column in all Grids
December 1st, 2007 at 11:07 am
While I don’t necessarily agree with everything in them, the above 110 items looks to me to be a very good list to matrix-match against QC items.