Einzelnen Beitrag anzeigen

mariusbenz

Registriert seit: 6. Mär 2015
38 Beiträge
 
Delphi 10.3 Rio
 
#1

IDE, Inline Variablen und Strg+Klick

  Alt 12. Okt 2020, 13:15
Delphi-Version: 10.4 Sydney
Folgender simpler Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure Foo(S : String);
    procedure Foo2(S : String);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
  begin
    Foo('');
  end;

procedure TForm1.Button2Click(Sender: TObject);
  begin
    Foo2('Hello World');
  end;

procedure TForm1.Foo(S: String);
  begin
    if S = 'then
      begin
        var S_Empty := S;
        ShowMessage(S_Empty);
      end
    else
      begin
        var S_NotEmpty := S;
        ShowMessage(S_NotEmpty);
      end;
  end;

procedure TForm1.Foo2(S: String);
  var S_Empty, S_NotEMpty : String;
  begin
    if S = 'then
      begin
        S_Empty := S;
        ShowMessage(S_Empty);
      end
    else
      begin
        S_NotEmpty := S;
        ShowMessage(S_NotEmpty);
      end;
  end;

end.
Mit einem Strg+Klick auf die Prozeduren Foo und Foo2 gelangt man hierbei immer nur zur Deklaration im interface.
Kommentiert man den Code in der Prozedur Foo aus, landet man wie gewohnt durch Strg+Klick im implementation Abschnitt.
Könnt ihr das bei euch nachvollziehen oder wisst ihr eine Lösung außer "benutze keine Inline Variablen"

Als ich einem größeren Projekt Inlinevariablen bei einer Prozedur in einem ähnlichen Schema eingebaut hab, konnte ich bei der Hälfte der Prozeduren Strg+Klick nicht mehr benutzen. Auch Refactoring war damit in den betroffenen Funktionen lahmgelegt.
  Mit Zitat antworten Zitat