Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/IDE/Code Browsing    [ Add a report in this area ]  
Report #:  97403   Status: Open
Jumping interface <-> implementation does not work correct
Project:  Delphi Build #:  15.0.3953.35171
Version:    15.1 Submitted By:   Mark Burgard
Report Type:  Basic functionality failure Date Reported:  8/10/2011 6:26:52 AM
Severity:    Infrequently encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All versions Internal Tracking #:   286169
Resolution: None (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
If a method, procedure or function starts with ";" no jumping from implementation to interface with [Shift]+[Ctrl]+[Cursor up] or [Shift]+[Ctrl]+[Cursor down] is possible.

Sample:

unit Unit2;

interface

type
  TMyTest = class
    procedure Test;
    procedure DoesNotWorkToo;
  end;

implementation

{ TMyTest }

procedure TMyTest.DoesNotWorkToo;
begin
  ;
  Test;
end;

procedure TMyTest.Test;
begin
  ;
end;

end.
Steps to Reproduce:


1. create a new unit
2. type following code in interface:

type
  TMyTest = class
    procedure Test;
    procedure DoesNotWorkToo;
  end;

3. press [Shift]+[Ctrl]+[C] for code complete
4. press [Shift]+[Ctrl]+[Cursor up] or [Shift]+[Ctrl]+[Cursor down] and you jump between interface and implementation
5. write a ";" (Semikolon) between "begin" and "end;"
5. press [Shift]+[Ctrl]+[Cursor up] or [Shift]+[Ctrl]+[Cursor down] againt and nothing hapens :-(

You can always jump from interface down to implementation but not back !!!

Sample:

unit Unit2;

interface

type
  TMyTest = class
    procedure Test;
    class procedure DoesNotWorkToo;
    function x: boolean;
  end;

procedure x;

implementation

procedure x;
begin
  ; // does not work
  exit;
end;

{ TMyTest }

class procedure TMyTest.DoesNotWorkToo;
begin
  // does not work
  ;;;;;;;;;;;;;
  exit;
end;

procedure TMyTest.Test;
begin
  // here it works fine  ;
  exit;
end;

function TMyTest.x: boolean;
begin
{$message hint 'does not work, because of the ; after message command'};
Result := False;
end;

end.
Workarounds
remove first ";"  ;-)
Attachment
None
Comments

None

Server Response from: ETNACODE01