VCL/RTL

Welcome to our official feedback forum. Do you have an idea? Do you recognize a good idea when you see one? We want to hear from you!

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. Add interface support for basic VCL classes

    Most of the classes in VCL don't have interfaces support. F.e. add interface IStrings(TStrings), IField(TField), IDataset(TDataset), IDatasource and so on.
    You have created great VCL classes hierarchy, just add similar interfaces hierarchy - this is so easy to implement, but can significantly improve coding speed.
    F.e., just imagine common interface for DbControls - IDBControl, which may look like that(:
    property Datasource: IDatasource;
    property Fieldname:string;
    property DataField: IField;
    Adding such interface will make work with different DbControls much easier.

    And so on with other classes.

    Passing interfaces will make possible to interact between DLL-s, that were compiled different Delphi versions, and…

    233 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      7 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • GDI+ canvas

      GDI+ canvas and GDI+ controls

      180 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        3 comments  ·  Flag idea as inappropriate…  ·  Admin →
      • Worker Thread Component

        I think, it would be easier to implement multithreading with thread components.

        45 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          1 comment  ·  Flag idea as inappropriate…  ·  Admin →
        • Event View Component

          It would be great to have a VCL component to access the Windows Event Viewer easily ... creating/deleting event sources, writing messages, reading messages, ...

          40 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            1 comment  ·  Flag idea as inappropriate…  ·  Admin →
          • Conection lines between linked components

            It would be realy cool (especially for Database development), when I can see which data components are linked together. e.g.: TxDatabase <- TxQuery <- TDataSetProvider <- TClientDataset <- TDataSource ...
            But only in TDataModule of course. ... I already saw that in some old delphi books???

            36 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              1 comment  ·  Flag idea as inappropriate…  ·  Admin →
            • OOP organized RTL

              Add TString class with basic operations

              Isn't it a high time to become a more OOP oriented?
              IOUtils is a good starting point in this direction.

              Now lets make a static class TString with static memebers for Concat, Split, Join, Replace, EndsWith, StartsWith, Contains, Copy, Remove, etc.

              Just take the .NET String class members and make a Delphi version.

              I am not insisting on haing Strings being theated like objects, just keen on having one

              TString.Replace(buffer, 'Gad D Lord', 'author')

              with first paramter the instance to operate over.

              I really hate to rememeber whether SysUtils or StrUtils is what I…

              17 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
              • A simultaneous Vertical and Horizontal splitter.

                such as splitting in Spreadsheets.

                11 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                • Add iphone-like scrollbar

                  The scrolling effect on the iphone and other phones. I think its called 'smooth scrolling'.

                  6 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                  • Some additional IOUtils goodies

                    Thanks Malcolm for implementing almost all of my recommendations. Maybe just a considence but I managed to deprecate almost all of my unt_Path, unt_Directory, unt_File methods.

                    What I still miss is:

                    class function TDirectory.IsReservedName(DirectoryName: string): Boolean;
                    begin
                    DirectoryName := LowerCase(DirectoryName);
                    if (DirectoryName = 'con') or
                    (DirectoryName = 'aux') or
                    (DirectoryName = 'prn') or
                    (DirectoryName = 'nul') or
                    (DirectoryName = 'lpt0') or
                    (DirectoryName = 'lpt1') or
                    (DirectoryName = 'lpt2') or
                    (DirectoryName = 'lpt3') or
                    (DirectoryName = 'lpt4') or
                    (DirectoryName = 'lpt5') or
                    (DirectoryName = 'lpt6') or
                    (DirectoryName = 'lpt7') or
                    (DirectoryName = 'lpt8') or
                    (DirectoryName = 'lpt9') or
                    (DirectoryName = 'com0')…

                    3 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                    • Add TDirectory.IsReservedName

                      Add a missing class function
                      class function TDirectory.IsReservedName(DirectoryName: string): Boolean;
                      begin
                      DirectoryName := LowerCase(DirectoryName);
                      if (DirectoryName = 'con') or
                      (DirectoryName = 'aux') or
                      (DirectoryName = 'prn') or
                      (DirectoryName = 'nul') or
                      (DirectoryName = 'lpt0') or
                      (DirectoryName = 'lpt1') or
                      (DirectoryName = 'lpt2') or
                      (DirectoryName = 'lpt3') or
                      (DirectoryName = 'lpt4') or
                      (DirectoryName = 'lpt5') or
                      (DirectoryName = 'lpt6') or
                      (DirectoryName = 'lpt7') or
                      (DirectoryName = 'lpt8') or
                      (DirectoryName = 'lpt9') or
                      (DirectoryName = 'com0') or
                      (DirectoryName = 'com1') or
                      (DirectoryName = 'com2') or
                      (DirectoryName = 'com3') or
                      (DirectoryName = 'com4') or
                      (DirectoryName = 'com5') or
                      (DirectoryName = 'com6') or
                      (DirectoryName…

                      2 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                      • TPath.Combine(Paths: array of string): string

                        Add an overload for TPath.Combine which takes unlimited number of paths as array:

                        class function Combine(Paths: array of string): string; overload; static;

                        2 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                        • Don't see your idea?

                        VCL/RTL

                        Feedback and Knowledge Base