David Lock

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!

Posted by David Lock on May 30th, 2007 under Uncategorized |



111 Responses to “Assignment: VCL”

  1. Bo Chen Lin Says:

    Unicode support for VCL Win32 please.

  2. Andrew Says:

    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!

  3. Lasse Jari Hansen Says:

    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.

  4. Maxim Shiryaev Says:

    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!

  5. Daniel Lehmann Says:

    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

  6. David Howes Says:

    ‘…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.

  7. Patrice Pechereau Says:

    A plateform Independant VCL.NET to work with mono.

  8. Patrice Pechereau Says:

    A plateform Independant VCL.NET to work with mono.

  9. Stephen Stewart Says:

    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.

  10. Sebastian Ledesma Says:

    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.

  11. Tony Bryer Says:

    Implement improvements to TPrinter as QC33800 - unglamorous but ten years overdue

  12. Piotr Szturmaj Says:

    All those requests above… need to create new VCL? VCL 2?

  13. David Lock Says:

    Thats alot of feedback for one day. Looks like I’ve got alot of work on my hands!

  14. Xavier I. Says:

    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.

  15. Robert Dawson Says:

    And, of course–welcome! Obviously no lack of things to do…

    bobD

  16. DanB Says:

    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…

  17. Chester Says:

    a Screen Floating Panel VCL component to make custom tool bars or inspectors.

  18. Jan Derk Says:

    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.

  19. GrandmasterB Says:

    Unicode.

    Thats the only thing I need.

  20. Dean Hill Says:

    Add some interfaces to the VCL. Things like an IComponent for TComponents and IForm for TForm etc.

  21. GrandmasterB Says:

    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.

  22. Brian Says:

    1) Unicode

    2) ThreadSafe everything (Dual core and all that)

    3) tPrinter - start again

    4) License DevExpress Toolbar/Ribbon and make standard.

  23. Dmitry Streblechenko Says:

    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?

  24. An Pham Says:

    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

  25. Charalabos Michael Says:

    1) Faster TDataset

    2) Unicode VCL

    3) Multi Core/Threading

    Thank you!

  26. marko Says:

    Improve threading support.

  27. Kristofer Skaug Says:

    A couple of old QC wishes:

    QC2267 (&7304) TCheckListBox additional methods for Checkmark control

    QC2267 TCheckListBox.MultiSelect published

    QC2175 TValueListEditor Usability Enhancement

  28. William Wong Says:

    Unicode VCL please… and a thread safe VCL would be excellent!

  29. maziar Says:

    1. Replace the Actionbars with Toolbar2000 with TBX and SpTBXLib

    2.Force native unicode support and thread safe

    3.more coss platform (linux) support

  30. Osama ALASSIRY Says:

    There’s always the suggestions of the people at delphi.wikia:

    http://delphi.wikia.com/wiki/Delphi_Suggestions

  31. dageek Says:

    better TThread synchronization avoiding deadlocks using WaitFor while in a "synchronized" method …

  32. Aleg Azarousky Says:

    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.

  33. Cobus Kruger Says:

    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.

  34. Mauro Botta Says:

    Simple , fast , but very important

    TCheckBox have a Internal Label.

    Make it TRASPARENT, please !!!

  35. Torsten Stelling Says:

    - Replace Actionbars with Toolbar2000 with TBX and SpTBXLib

    - Unicode Controls

    - Get rid of the hidden Mainform

    - Upgrade TIcon ;)

  36. mamcx Says:

    - 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

  37. mustafa yilmaz Says:

    support for mvc

    support unicode vcl

  38. Robert McClintock Says:

    Support for unicode is a dire need.

  39. Mohammed Nasman Says:

    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

  40. Andreas Lauß Says:

    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, …)

  41. Ajasja Ljubetic Says:

    - Fix bugs with ActionToolbars and ActionLists

    - Fix bugs with TPageControl and resizing on IDE Load

    - PNG ImageList

    - unicode

  42. Dave England Says:

    -unicode

    -toolbar and menues office xp style

  43. Larry Hengen Says:

    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.

    8) Make Delphi libraries more like .NET to ease the transition to the .NET FCL and allow more source compatibility between VCL.NET and Win32 Delphi apps.

    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.

  44. stanleyxu Says:

    1. Full Unicode enabled RTL functions.

    2. Unicode enabled VCLs.

    3. Visual style support for menus and tooltips.

  45. stanleyxu Says:

    1. Full Unicode enabled RTL functions.

    2. Unicode enabled VCLs.

    3. Visual style support for menus and tooltips.

  46. byron Says:

    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.

  47. Michael Trowe Says:

    - Replace Actionbars with Toolbar2000

    - A more "modern" TGrid / TDBGrid-component

    - GDI+-support in TCanvas

    - AsInt64-Property for TParam

  48. Ramsees Says:

    - 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.

  49. Brett Graffin Says:

    Every control having a GUID property.

    Useful on a whole bunch of levels, when writing tools to access the components.

  50. Rastislav Karaba Says:

    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

  51. Pete Wason Says:

    Fix bugs in TClientDataSet (if they haven’t already been fixed - I’m using D6).

  52. softwiz Says:

    Native LZMA support would be better. ;)
    JPG2K/BMP/PNG support (alpha channel support too)

  53. mike Says:

    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.

  54. Francis Says:

    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

  55. Jayan Says:

    >> 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

  56. Daniele Teti Says:

    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).

  57. Brian Says:

    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

  58. grenzi_r Says:

    Yes, pleas Uni Code for the VCL

  59. snorkel Says:

    Unicode and 64bit

  60. Stefan Cruysberghs Says:

    - 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

  61. Sergey Ivanov Says:

    Unicode please!

  62. madh Says:

    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.

  63. Bill Miller Says:

    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.

  64. Philipp Stevermann Says:

    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)

  65. Lou Feliz Says:

    BDE - keep it around for Paradox and dBase support or move it to DBEXpress along with TBatchmove.

  66. Thomas Grubb Says:

    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)

  67. Joe White Says:

    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.

  68. Lance Rasmussen Says:

    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

  69. George Somor Says:

    dbgrid needs update , something like Infopower studio.

  70. Gerry O'Connell Says:

    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.

  71. lior ilan Says:

    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

  72. Kjell Rilbe Says:

    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

  73. japan user Says:

    1.Unicode VCL please

    2.Unicode VCL please

    3.Unicode VCL please

    I dont need anything than that i mentionted above

  74. Rabatscher Michael Says:

    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.

  75. Randy Magruder Says:

    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.

  76. Liz Kimber Says:

    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.

  77. Erik Says:

    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.

  78. Alexey Kazantsev Says:

    1. Class Operator Explicit() - Not identical Implicit as now

    2. Class Operator Assign()

    3. Unicode support

  79. Richard Says:

    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;

  80. JP Says:

    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

  81. Zeus Says:

    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).

  82. Zeus Says:

    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).

  83. Zeus Says:

    )Select*from*where*<>*

  84. robert Says:

    - 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

  85. Maxim Shiryaev Says:

    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.

  86. Maxim Shiryaev Says:

    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.

  87. dennis Says:

    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)

  88. Maxim Shiryaev Says:

    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.

  89. mohamed Says:

    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..

  90. Luciano Cabral Says:

    * 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.

  91. Richard Winston Says:

    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.

  92. Bruno Reato Says:

    - 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.

  93. Mohammad Sanati Jouibaary Says:

    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

  94. Enrico Schieppati Says:

    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

  95. Enrico schieppati Says:

    Soap support for document literal mode

  96. Enrico schieppati Says:

    Give me an xml object serializer please!!!

  97. luciano Says:

    -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

  98. Andrew Polden Says:

    -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.

  99. Totsios Dimitrios Says:

    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

  100. Maxim Shiryaev Says:

    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.

  101. Samuel Herzog Says:

    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.

  102. laurent pierre Says:

    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.

  103. Mohammad Sanati Jouibaary Says:

    -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

  104. Mohammad Sanati Jouibaary Says:

    try..except..finally..end syntax

  105. Michiel Spoor Says:

    Alpha support for TImageList (and everywhere else ;) would be VERY appreciated

  106. Matt Says:

    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.

  107. XSchne2036 Says:

    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

  108. Randall Says:

    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.

  109. Mohammad Sanati Jouibaary Says:

    Add try..except.finally..end; syntax

    Add Garbage Collection to memory managment

  110. Majed Dalal Says:

    1. Support for RTL in TPrinter

    2. Support for RTL per column in all Grids

  111. Quentin Correll Says:

    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.



Server Response from: blog2.codegear.com