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.