In the forms designer, CTRL-Z should undo the last selection, move, resize, or change in property editor. Of course, unlimited undos would be even better.150 votes
At the moment it is necessary to work with the .res file to have version info updated in the compiled executable.15 votes
Delphi binaries (.dcu, .dcp, .bpl) should be forward compatible. This would make the upgrade path much easier!8 votes
Please, add support for loading/using minidumps. Either in MS's format or invent your own (provide a library to create them).
This is invaluable for debugging application crashes.222 votes
Please show the files used in a build process. The res, pas, dcu, dcp and bpls. Sometimes its hard to know what file is used in a compile time.12 votes
Release the source for Bold and let the community continue development. See https://forums.embarcadero.com/thread.jspa?messageID=21177329 votes
If FastMM4 creates a detailed memory leak log file, the IDE should offer a GUI which allows to jump to the source locations where the leak has been created.14 votes
DUnit is available in Delphi for some versions now, but one feature would be really useful: when a test fails, double-clicking should bring me to the source code location where the assertion failed. (or an error occured)52 votes
Please add the following functions as default to the TStream class:
TStreamHelper = class helper for TStream
procedure WriteInteger(aValue: integer);
procedure WriteCardinal(aValue: Cardinal);
procedure WriteDateTime(aValue: TDatetime);
procedure WriteBoolean(aValue: boolean);
procedure WriteDouble(aValue: Double);
procedure WriteAnsiString(AString: AnsiString);
function ReadInteger: integer;
function ReadCardinal: Cardinal;
function ReadDateTime: TDatetime;
function ReadBoolean: boolean;
function ReadDouble: Double;
function ReadAnsiString: AnsiString;
function TStreamHelper.ReadBoolean: boolean;
procedure TStreamHelper.WriteInteger(aValue: integer);
TThread.Synchronize and TThread.Queue only accepts a "procedure of object". Very annoying, because if you want to synchronize something, you almost always need some data to be used in that synchronized function. It should be very easy to make an overloaded TThread.Synchronize with a "procedure(arg: array of TObject) of object" function.
I have modified once the RTL myself: only the "TSyncProc" record should be expanded with an array field...6 votes
I am in love with the cnWizards's Procedure List addin.
It allows you to press Ctrl+D and search for a method by part of its name.
In my past I have used the GExperts Ctrl+G to to exactly the same.
This is also present in the Lazarus IDE.
I believe it is high time to add this magic to the standard toolset of Delphi. This will eliminate the need to use cnWizards and/or GExperts being the onlyreally useful tool in those Experts.17 votes
There are third party components (like DAO from allroundautomations.nl) which integrate perfectly with sql developing tools supporting the parameter syntax uses in delphi.
Would be great if ADO components would have this too.4 votes
If a control is disabled (Enable = False) then the mouseover hint is not shown. Add new propertys
DisabledHint and ShowDisabledHint .170 votes
Allow wildcards (% or * etc) in the search boxes ... such as searching for components in the tool palette
This will greatly help with searching for objects
At the moment, if you have two classes that refer to each other, they have to be in the same unit, otherwise you'll get the dreaded "circular uses" error. By allowing forward declarations to classes that aren't defined in the interface section but are defined in implementation, this would get around that. A side effect would be to allow types that are unknown but usable as parameters to functions.7 votes
At the moment, you create variables at the start of functions, procedures etc. Why not allow them to be created anywhere inside a block of code (like practically every other modern language out there)?22 votes
Debug visualizers must support descendant classes, eg. if I make class like this :
TMyStringList = class(TStringList);
debugger doesn't know that object of TMyStringList is TStringList and doesn't show visualizer loupe icon
Currently with OTA is possible to write debug visualizer but only for classes that can be serialized to string, this makes Visualizers *very* limited.2 votes
Packages could be a good instrument for providing a plugin architecture to an application.
But it is only useful for applications with only a few 3rd-party components - otherwise the effort to maintain these application at client side is a lot.
Bundled packages could solve this problem. My idea is to compile multiple runtime-packages into one. The application have to load these bundled packages and share them with additional packages.
So at client side only the bundled package has to be up-to-date and additional packages could be loaded dynamicaly as plugins.3 votes
- Don't see your idea?