Именование по умолчанию отброшенных элементов управления в Delphi - PullRequest
0 голосов
/ 27 апреля 2018

Когда я добавляю новые элементы управления в мою форму во время разработки, Delphi дает им имена по умолчанию. TLabel элементы управления будут именоваться 'Label1', 'Label2' и т. Д.

Я создал свой собственный класс компонентов: tMyLabel. Обратите внимание на строчные буквы t. Delphi называет эти элементы управления 'tMyLabel1', 'tMyLabel2' и т. Д. Я не хочу 't' в начале.

Я понимаю, что это как-то связано с именем класса. В этой ситуации Delphi чувствителен к регистру.

Если я переименую свой класс в TMyLabel, тогда все будет хорошо.

Почему Delphi чувствителен к регистру в этом вопросе? Могу ли я убедить Дельфи не проводить различий между 'tMyLabel' и 'TMyLabel'?

Я использую Delphi 10.2.3, но Delphi вёл себя так в течение многих лет.

Изменить (2018-04-30): Кен попросил код

    unit MySpeedButton;

    interface

    uses
      SysUtils, Classes, Controls, Vcl.Graphics, Buttons;

    type
      tMySpeedButtonProps = class(TPersistent)
      private
        fParent      : pointer      ;
        constructor Create( pParent : pointer );
        destructor  Destroy; override;
      end;

    type
      tMySpeedButton = class( TSpeedButton )
      private
        fMyProps      : tMySpeedButtonProps  ;
      protected
        procedure    Click ; override;
      public
        function  GetCanvas: TCanvas;                 //Allow access to the Canvas            procedure Paint ; override ;
        constructor Create( AOwner : TComponent ); override;
        destructor  Destroy; override;
      published
        property TM : tMySpeedButtonProps read fMyProps write fMyProps;
      end;

    procedure Register;

    implementation

    uses
      Forms, Windows;

    constructor tMySpeedButtonProps.Create( pParent : pointer );
    begin
      inherited Create;
      fParent  := pParent ;
    end;

    destructor tMySpeedButtonProps.Destroy;
    begin
      inherited Destroy;
    end;

    constructor tMySpeedButton.Create(AOwner: TComponent);
    begin
      fMyProps := tMySpeedButtonProps.Create( self );
      inherited Create(AOwner);

    {$ifdef RegisterFormular }
    {$endif}
    end;

    destructor tMySpeedButton.destroy;
    begin
      fMyProps.Free;
      inherited destroy;
    end;

    procedure tMySpeedButton.Click ;
    begin
      inherited Click;
    end;

    procedure tMySpeedButton.Paint ;
    begin
      inherited Paint;
    end;

    function tMySpeedButton.GetCanvas: TCanvas;
    begin
      Result:= Canvas;
    end;

    procedure Register;
    begin
      RegisterComponents( 'Test' , [ tMySpeedButton ] );
    end;

    end.

После компиляции и регистрации tMySpeedButton я получаю нежелательные имена, начинающиеся с 't'.

...