![]() |
|||||||||||||||||
|
|
|||||||||||||||||
|
|
|||||||||
|
Delphi |
DELPHI DEVELOPER SUPPORT
Areas of concentration under: ide
Area: ide\ Problem: Selecting help for the dialog for File|Open of a nonexistent file produces a 'topic does not exist' error. Steps: File|Open, type in name zyz.bbb to open dialog. Click help on resulting "requested file does not exist" dialog. Note error. The Help button needs to be removed. Area: ide\ Problem: Tab order incorrect in Tools | Environment Options Steps: Select the Preferences page. Order is currently: OK Cancel Help Tab Autosave options Form designer Shared repository Desktop Contents Compiling and Running Color, Browser and Explorer pages are also wrong. Let me know if you need more on this Area: ide\ Problem: Tools | Configure Tools When two tools have the same name, the second tool does not take the correct parameter. It takes the one from the first tool. I think when we check for a duplicate pickletter, we could also check for a duplicate name. I use notepad to reproduce. Steps: - start Tools | Configure Tools - click Add - enter 'test' as title - click Browse and select Notepad.exe in the windows directory - enter 'one' as parameter - click ok - click Add - enter 'test' as title - click Browse and select Notepad.exe in the windows directory - enter 'two' as parameter - click ok - click close - select first 'test' in Tools menu -- > check the parameter: one -- > This is correct select the second 'test' in Tools menu -- > check the parameter: one -- > this is wrong, should be two Area: ide\ Problem: There is an odd painting problem in the control used to demonstrate color syntax highlighting found on the Environment Options dialog Colors page Steps: -Environment | Options | Color(s) -Select Ocean from the Color SpeedSetting -Move the Environment Options dialog down (so the Syntax highlighting example is invisible ) and then move it back up the syntax highlighting example gets repainted. Note the 1 or 2 pixel wide line around the syntax example that does not get repainted correctly Area: ide\ Problem: In Project Options under Applications tab, edits for Title and Help File aren't quite left aligned. Area: ide\add component template Problem: When installing a component that contains a form, and that form contains a component that will be installed at the same as the target component, the load of the form fails. If one isn't carefull with the answers to the messages boxes, the uninstalled component will be removed from the form. This didn't happen in Delphi 3.0, since D3 didn't attempt to open the units in the editor when one added them to a package. Area: ide\class completion Problem: When using the Code Explorer to insert new items an Access violation results if no data is provided (if you just hit enter in the edit box). This only happens in some cases where CE sees the class as incomplete but cannot complete the class. Steps: -Open the attached file -In the TDataServer class, hit Shift+Ctrl+C result: "Could not find source location to add method. END or initialization not found in unit source" -In CE, right-click on TDataServer class and select new -Hit enter key without typing anything for the new name result: Access violation at address 050392BC in module 'VCLIDE40.BPL'. read of address 00000000 ...and then... Expected an identifier but < found Area: ide\class completion Problem: Parameter problem with Class completion. Class completion changes a parameter declared as a longint to integer. The compiler does not complain (because they are one and the same) but it should be consistent. Area: ide\class completion Problem: Class completion can incorrectly insert a field in an inherited class when the field already exists in an ancestor. Steps:
Foo1 = class(TObject)
protected
FNumber : Integer;
end;
Foo2 = class(Foo1)
protected
property Number : Integer read FNumber write
FNumber;
end;
Invoking class completion in Foo2 results in
Foo2 = class(Foo1)
protected
property Number : Integer read FNumber write
FNumber;
private
FNumber: Integer;
end;
This behavior really becomes a problem when Foo2
is creating lots of properties whose fields reside in
Foo1.
Area: ide\class completion Problem: Completing a write only property will add a read clause. Area: ide\class completion Problem: When attempting to finish a property with no trailing semicolon incorrect code is generated if a "get" procedure for the property already exists. If the "get" procedure does not exist then the correct error 'Expected ; found END" is generated Steps:
a)
//Add a procedure procedure GetAsSize;
//ad Ctrl-Shift-C
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure GetAsSize;
end;
b) Now add a property ABOVE the procedure in the
public OR private sections
type
TForm1 = class(TForm)
private
FAsSize: integer;
procedure GetAsSize;
procedure SetAsSize(const Value: integer);
private
{ Private declarations }
property AsSize:integer
public
{ Public declarations }
procedure GetAsSize;
end;
//Now press Ctrl-Shitf-C
c) and you get
TForm1 = class(TForm)
private
FAsSize: integer;
procedure GetAsSize;
procedure SetAsSize(const Value: integer);
private
{ Private declarations }
property AsSize:integer
public
{ Public declarations }
procedure GetAsSize read FAsSize write
SetAsSize;
end;
NOTE the incorrect insertion.
Area: ide\class completion Problem: The class is never seen as complete and multiple handlers keep being generated if one of the event handlers in the class has a forward declaration of a local method. Area: ide\class completion Problem: When using the Code Explorer to edit or insert values only the "Enter" key submits the edit. Steps: -File | New Application -Make the Code Explorer the active window -Select the node for TForm1 -Right Click, pick New ins (same behavior for Rename) -Type a new procedure name -Instead of hitting enter, select another node in CE with the mouse result: The edit action is ignored as if hitting "Escape" expected result: In Windows Explorer selecting another node after an edit is the same as hitting "Enter" Area: ide\class completion Problem: Renaming of a property successfully changes the name in all places except the setter Steps: -Add the following to a class declaration property X: integer; -Shift+Ctrl+C -In the Code Explorer highlight X, right-click Rename -Enter new name < Y > result: Names change correctly everywhere except in setter FX := Value; Area: ide\class completion Problem: Class completion adds unwanted methods. Area: ide\class completion Problem: Class completion generates non-compilable code if a property is declared in a class without scope specifiers (i.e., if you accept the default of public) Area: ide\class completion Problem:
Class completion generates invalid code for the
following class definition:
MyClass=class
function foo1: string;
property Int1: integer read GetInt1;
property Bool1: boolean;
end;
Problems:
1) private variables follow Get methods and are
thus out of scope
2) two private sections generated
Area: ide\class completion Problem: code navigation doesn't work correctly in certain cases. submitted by user via web Steps: 1. Open the system unit. 2. In the interface section of the code, put the editor's cursor on the declaration for the _FindDynaClass procedure. 3. Press ctrl-shift-down to go to the body. 4. Now press ctrl-shift-up to go back to the declaration in the interface section. Result: The editor will not go back to the declaration. Area: ide\class completion Problem: Code navigation Using Ctrl+Shift+Up from within TObject.Free does not jump to the declaration in the class definition. Intriguingly, it takes you to the declaration of Destroy instead. Seems to work OK for some class/functions containing asm blocks but not others. E.g. works for NewInstance, but not FreeInstance. Area: ide\class completion Problem: Using code completion with a property of type TStrings generates the wrong 'setter' code. procedure TForm1.SetFred(const Value: TStrings); begin FFred := Value; end; Should this not be fFred.Assign(Value) ? Steps: 1. New Application 2. Declare a property Fred : TStrings; 3. Hit Ctrl-Shift-C 4. Check the generated Setter code Area: ide\class completion Problem:
Given this declaration
TA = class
constructor Create;
property i: integer read FI write SetI(var j: integer);
end;
Activate class completion, get
TA = class
constructor Create;
property i: integer read FI write SetI(var j: integer);
private
FI: integer;
procedure SetI(const Value: integer);
end;
Note that the argument to SetI has become 'const'
Area: ide\class completion Problem: Class completion: when the cursor is in the interface part and a method/property is deleted (in the interface part), delete the implementation in the implementation part too - if its body is empty. Current behaviour is to re-add the old declaration. Area: ide\class completion Problem: Class is not seen as complete after an attempt to have a class declaration generated for an implementation procedure Steps:
-File | New Application
-Double click on the form so you get an empty
FormCreate procedure
-Paste the following code in the implementation
section
directly above the empty FormCreate body
procedure TForm1.bar;
-Note in ME both "bar" and "FormCreate" are
incomplete (bold)
-Go up to class declaration and enter Shift+Ctrl+C
result:
the declaration for bar is completed but multiple
implementations for FormCreate are continually
re-generated
Area: ide\class completion Problem: If a class doesn't specify visibility then during completion of a property the class is completed in an order that will not compile. Steps:
-Shif+Ctrl+C on the following ( note no published,
public or private, etc.)
TFoo = class
property A: Integer read FA write SetA;
end;
result:
the class looks like...
TFoo = class
property A: Integer read FA write SetA;
private
FA: Integer;
procedure SetA(const Value: Integer);
end;
Area: ide\class completion Problem: Class completion doesn't check for conditional defines Steps:
-Use Shift+Ctrl+C on the following class
TMyClass = class
{$ifdef foo}
procedure foo;
{$endif }
end;
result:
the procedure is generated whether foo is defined
or not
Area: ide\class completion Problem: The IDE shuts down when attempting to use Class Completion with a procedure with more than 1024 characters in the parameter list Area: ide\code browsing Problem: Code browsing fails on new project - until it is saved. Steps: 1) File | New Application 2) Ctrl+click on TForm1 to use code browsing. Note that you cannot jump 3) File | Save All. Ctrl+click on TForm1 and notice that it works now. Area: ide\code browsing Problem: Line number does not change in the status bar when you jump inside the same unit. Steps: New application, save it (must save to enable code browsing) in the Var section Ctrl-left click on TForm1; Notice the cursor jumped to the Type section, but the line number in the status panel did not change. Area: ide\code browsing Problem: In STD SKU, the Code browsing icons are still on the upper right corner of the editor. Fly over works(fly over "location info" at design time) - should fly over even work? But there is a lengthy pause when you fly over, seems more so than Pro/CSS. [BCB UI] Steps: Code Browsing is a feature not offered in the STD SKU. we need to remove the icons or add the feature Area: ide\code browsing Problem: User suggestion: Make ctl-click invoke help on a token if it is something that cannot be browsed (a reserved word, for example). Area: ide\code browsing Problem: Browsing to a symbol defined in a file open in two edit windows always focuses and moves the cursor to the symbol definition in the first edit window. Area: ide\code browsing Problem: The module browser doesn't work for selected (highlighted) text. Steps: start delphi32 View | Units | Unit1 Hold mouse cursor over 'Windows' in uses clause and press < CTRL > Notice underlining Double-click 'Windows' and hold mouse cursor over Windows and press < CTRL > Result: no underlining Area: ide\code completion Problem: The fly-over hintwindow for kibitzing only displays one line which cannot show the entire parameter list for routines which take more than 4 or 5 parameters (i.e., a large number of Win32 APIs) Area: ide\code completion Problem: If you have the Kibitz window open and you switch editor tabs using Ctrl-Tab the kibitz window does not get closed. This also was true in D3. Area: ide\code completion Problem: When invoking Code completion in the context of default parameters,type matching of applicable values is not correct. Steps: given: const ReallyBigInt =$7FFFFFFFFFFFFFFF; BigInt = $7FFFFFFF; BigNegativeInt = $80000000; BigWord = $FFFF; and procedure Gungla(W: Word = < --invoke code compeletion. you are allowed to chose values which don't fit in a word, in which case the code we've helped write won't compile (constant expression violates subrange bounds) Area: ide\code completion Problem: When you're in a CASE statement that uses an enumeration as the case variable and you pick a constant for a case using the drop-down list (Ctrl- < space > ), the cursor jumps to the left-most column instead of inserting at the proper indentation level. Area: ide\code completion Problem: Code completion window doesn't go away when you grab the editor titlebar and move the editor. Steps: File | New Application. Double click form. type "Self." move editor window. Area: ide\code completion Problem: Tooltip symbol insight doesn't work for selected (highlighted) text. Steps: start delphi32 Tools | Environment Options | Code Insight Make sure Tooltip Symbol Insight is on View | Units | Unit1 Hold mouse cursor over the TForm string and get declaration tooltip Now double-click TForm to highlight it Hold mouse cursor over the highlighted TForm Result: no tooltip Area: ide\code editor Problem: AV's and crash of the IDE after you Cancel a "Open File at Cursor" command in a second Edit window. AV then happens when you close the second edit view and attempt to Run the application Steps: -File | New Application -Double click on Form so you are in Code Editor -Right-click, "New Edit Window" -(In second edit window without moving cursor), Right-click "Open File at Cursor" -Hit the Cancel button in the Open File dialog -(Still in second edit window), Right-click, "Close Page" -Back in first edit window add some text after final ".end" to generate a warning -Run | Run result: multiple AV's whenever you access the menubar Access violation at address 200DD3AA in module 'CorIde40.bpl' Read of address 6C6F62E1 two debugshell logs are attached Area: ide\code editor Problem: Syntax highlighting doesn't distinguish between when a certain word is supposedly reserved and when it's not Steps:
The message reserved word is correctly displayed
as a reserved word in the editor when used in the
declaration of a message handler.
However it is incorrectly displayed as a reserved
word when used elsewhere. For example in an
exception handler, you can access the Message
property of the trapped exception, but it is displayed
by the editor as a reserved word.
Clearly the editor has the capability of displaying
one word as a reserved word or as an identifier,
since the read and write words are displayed
differently depending upon whether they are found
in a property declaration or not.
The following unit shows the issue:
unit Unit2;
interface
type
TTest = class(TWinControl)
procedure WMTest(var Msg: TMessage);
//Message should be bold here (it is)
message wm_User;
//Read & write should be bold here (they are)
property X: Byte read FX write SetX;
private
FX: Byte;
procedure SetX(const Value: Byte);
end;
implementation
procedure TTest.SetX(const Value: Byte);
begin
FX := Value;
end;
procedure TTest.WMTest(var Msg: TMessage);
var
//Read & write should not be bold here (they
aren't)
//Message should not be bold here (but it is)
Read, Write, Message: Byte;
begin
end;
end.
Area: ide\code editor Problem: With persistent blocks turned on, when you put the cursor on a command in the editor and press F1, if anything else is highlighted, the highlighted text gets searched instead. Steps: 1. Turn on persistent blocks in the editor 2. Highlight a block of text. 3. Move the cursor to a location outside of the marked text and try to use F1 on any identifier. // The IDE attempts to search on the highlighted text not the text at the cursor location. Area: ide\code editor Problem: When a SQL statement is loaded in the normal code editor window, I get an access violation when I try to change the TQuery component name for that SQL statement. This only happens after you have closed the project and reopened it. If I delete the dsk file then the project comes up without the sql strings in the editor. This eliminates the problem. Steps: Drop a TQuery on a form, click on the SQL property editor and then click on the 'Code Editor...' button to load it into the code editor. Close all files for this project (File|Close All). Reopen the project (the SQL window should still be in the code editor) and try to change the TQuery component name and the error should be generated. Access Violation 0043F40D in DELPHI32.EXE. Read of address FFFFFFFF Area: ide\code editor Problem: [Search and Replace] Replacing a character with the upper case equivalent of that same character in a marked block hangs the IDE if the direction is backwards and you don't check the "Case Sensitive" checkbox. Steps: * File | New Application * Goto the source for Unit1 * Select from right to left the word Windows (in the Uses list) * Search | Replace * Text to find: n * Replace with: N * Direction: Backward * Scope: Selected text * Click on Replace All // Need to terminate IDE through task manager Area: ide\code editor Problem:
A write-only property declared as 'stored false'
causes Delphi
to crash when the property is another component.
TMyClass = class( TComponent );
...
published
property MyInteger: integer write SetMyInteger
stored false; < < this is OK
property MyObjProp: TComponent write
SetMyObjProp stored false; < < this is NOT
end;
MyObjProp produces AV's and crashes Delphi 3
when TMyClass is on a TForm
and you try view the dfm in the IDE. The
documentation indicates that
properties declared with 'stored false' do not
participate in streaming
and that this flag is checked first before any attempt
is made to stream
the property value. Adding 'read FMyObjProp'
eliminates the problem.
It looks like the IDE is not treating 'stored false'
exactly the same as the compiler.
Steps:
this unit does the trick
unit Component1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs;
type
TComponent1 = class(TComponent)
private
procedure SetMyObjProp(c: TComponent);
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
property MyObjProp: TComponent write
SetMyObjProp stored false;
{ Published declarations }
end;
procedure Register;
implementation
procedure
TComponent1.SetMyObjProp(c:TComponent);
begin
end;
procedure Register;
begin
RegisterComponents('Samples', [TComponent1]);
end;
end.
Area: ide\code editor Problem: The replace logic doesn't appear to respect the "selected text" setting when the block doesn't span a full line. For instance, if you paste this line into the Delphi editor Result := MessageDlg(Msg, AType, AButtons, HelpCtx); and mark the word AButtons and do a replace "t" with "q" in selected text, the whole line changes. The work-around, of course, is to do the edit by hand. Area: ide\code editor Problem:
The syntax highlighter gets confused by this
construct:
(*)
Compiler does fine with it, only the syntax highlight it
incorrect
Area: ide\code editor Problem: Changing to Terminal or larger sized fonts causes paint problems. Steps: 1) Tools | Environment Options 2) Display Tab 3) Set Font to Courier New 10 4) Close Dialog 5) Bring up Code Editor 6) Repeat 1-4 except choose Terminal Take a look at text. It is displayed with letters cut off. Also adding to the end of a line causes odd painting. Area: ide\code editor Problem: DPR file is badly highlighted by Delphi 4: Steps: Start delphi32 dcc32774.pas Result: Syntax highlighting for 'in' for line: B in 'B.pas'; isn't on Syntax highlighting for 'begin' isn't on. Area: ide\code editor Problem: Having a forward declaration nested in an event method prevents the IDE from being able to generate further event methods. Area: ide\code editor Problem: In the editor in Brief mode, the keystrokes Alt+M Ctrl+End ought to start the selection mode, and then extend the selection to the bottom of the screen. What happens is that the Ctrl+End does not extend the slection to the bottom of the screen, but instead makes a null selection which is not visible. Pressing Alt+M again does not turn *on* the selection mode, but turns it off (which would be correct if Ctrl+End actually highlighted a selection). Same thing happens with Alt+L and Alt+C (line-selection mode and column-selection mode). Steps: 1. Open a text file 2. Set the Brief mode in the editor 3. Go to the middle of the text file. 4. Press Alt+M to start a selection. See a 1-character highlight 5. press Ctrl+End to go to the bottom of the screen. The cursor goes to the bottom of the window, but the highlight is gone. The highlight should have extended to the bottom of the window. Area: ide\code editor Problem: Deleting the only unit name from a uses clause, and then trying to add it back in via Use Unit, causes the unit name to appear in a weird location. Steps: 1) File | New Application 2) File | New Form 3) Click on Form1 4) File | Use Unit..., Unit2, OK 5) In Unit1.pas, delete "Unit2;" from the line "uses Unit2;" 6) File | Use Unit..., Unit2, OK. Notice that a "uses Unit2;" is added above the line "uses ;" 7) Project | Compile Project1 and notice the error reported on the line with "uses ;", and a Fatal Error as a result of that. Area: ide\code editor Problem: this concerns the ide under d4, which worked fine from d1 to d3. using the brief default key mapping, < alt > < n > & < alt > < - > goto the next and previous pages in the textual editor, respectively. < alt > < n > still works fine, but < alt > < - > does not scroll through the previous unit page. Steps: just try it in the editor under the brief default key mapping, make all editor properties brief by default. Area: ide\code editor Problem: When default keystroke mapping is selected, the option used to select it forgets to highlight the fact Steps: In Delphi 4, choose Tools | Environment Options... | Display Change keystroke mapping from whatever it is to Classic and press OK Now choose Tools | Environment Options... and observe that Classic is indeed selected. Change the keystroke mapping to Deafult and press OK Now choose Tools | Environment Options... and observe that no keystroke mapping appears to be selected Area: ide\code editor Problem: Search/Replace functionality: The search dialog should automatically ignore the "Whole words only" option if the search phrase does not conform to the search engine's definition of a word. For instance, with the way it's working now, searching for "TForm1." will always yield a "not found" when "whole word" is selected. Area: ide\code editor Problem: In the text editor, I'm addicted to the classic keyboard layout. However, I never use the Ctrl+ < letter > commands to do cursor movement, and I often press Ctrl+C, etc, when I want to do clipboard operations - instead the cursor moves. I would like to have the option to turn on the default Windows clipboard shortcuts when when in classical-mode. This could be a seperate option (Registry only, if you don't want to add it to the UI). Ideally we would be able to modify all keyboard shortcuts. Area: ide\code editor Problem: Default IDE keymapping. If you are replacing a highlighted selection that exceeds a visible page in length with a single line, the editor does not redraw properly. Area: ide\code editor Problem: Refreshing problem in the editor window. Steps:
1) Open a large source file (db.pas for example)
2) Press the following keys in the exact order
a) Ctrl + Home
b) ArrowDown
c) Shift+PageDown
d) Do not press anything just look on the last
selected line.
If it is no text in this line, change the size of
editor window
and repeat all previous steps.
e) If you see the text in the last selected line than
remember it
f) Press Enter key - the selection is deleted but
the top line of editor window (the last line of
selection)
is not refreshed.
g) press ArrowUp - it refreshes now.
Area: ide\code editor Problem: Tooltips on the toolbar buttons show keystrokes bound to the commands, except when the keystroke is a keypad key. Steps: 1 Set the editor keymap to Brief mode 2. Put the mouse cursor over the Cut button on the toolbar. This should pop up a string that says "Cut (Keypad +)", but it says "Cut ()". Same is true for the Copy button Area: ide\code editor Problem: Ifthe Code Editor Font Size is set to 30, the Caret is inside the gutter when it is all the way to the left. Steps: 1. Tools | Environment Options. Go to the Editor Tab and change the Font Size ComboBox to 30. (happens with at least Courier New, and Terminal Type) Area: ide\code editor Problem: Syntax highlighting doesn't work correctly with array properties defined with two separate indexes Steps:
If you add the following into a class (say a form
class in a form unit) the compiler correctly
emboldens the read and write words, since they are
reserved words when used in the property
definition:
property X[A,B:Byte]: Byte
read GetX write SetX;
However if you redefine the property like this, then
the read and write words are left in the syntax
coluring for identifiers, which is incorrect:
property X[A:Byte;B:Byte]: Byte
read GetX write SetX;
Area: ide\code editor Problem: It would be really nice to be able to re-arrange the tabs in the code explorer when needed (like via drag & drop). Area: ide\code editor Problem: Add Cut, Copy, Paste menu items to editor context menu when text is selected. Steps: 1. Select a word in the IDE 2. Right-click on the word It now unselects the word. Area: ide\code explorer Problem: Declaring a function or procedure with more than 1024 characters in the parameter list whenever the Code Explorer is visible will cause Delphi 4 to abort without any apparent error messages. It appears that the Code Explorer has a limitation that should not exist. Area: ide\code explorer Problem: The IDE crashes after modifying the project source. Steps: 1. File | New Application 2. Project | View Source 3. Add the line Application.Title := z; after the "begin" in the project source. 4. File | New Application and do not save any changes // AV occurs. Area: ide\code explorer Problem: The CodeExplorer hangs while parsing a large file and then renaming a member of the _previous_ unit (which it is still showing). Steps: 1. Playing with the CodeExplorer, I loaded the ultimate test as usual, the Windows.Pas file. 2. As usual it was horrible slow at loading the huge file and the CodeExplorer still showed the contents of my small form unit, that had been active. 3. I get the Windows text file in the editor, while the CE is still showing my methods in the form unit. 4. Clicking in CE navigates to the corresponding line-number in Windows - strange, but Ok. 5. Then if I try to _rename_ one of my methods while the CE is still parsing Windows.Pas in the background, Delphi hangs completely. 6. I waited for 5-6 minutes, then closed it down (with the Task Manager). This was on a P60, 64MB, Win95a machine. > > > > > > Additional steps from Craig F > > > > > > -File | New Application -File | Open, browse to Windows.pas -Before windows.pas finished parsing type a new procedure into Unit1 -click on Windows.pas tab in Code Editor to re-start parsing -In Code Explorer, right click rename the procedure -type a new name and hit Enter key Results first test: Invalid class typecast Expected ':' but the end of the file found Results second test: Access violation at address 40003BE4 in module 'Vcl40.bpl'. Read of Address FFFFFFF2 Area: ide\code explorer Problem: Pressing '*' on large files is extremly slow Steps: 1) Open the included file with everything marked in the options as being collapsed. 2) Open the interfaces 3) Press '*' Area: ide\code explorer Problem: There is a repaint failure when the Code Explorer window needs to be repainted and is in a horizontally scrolled state Steps: -Size Code Explorer window so that it gets a horizontal scroll bar -Make sure there is some white space at the bottom of the CE (make sure there is no vertical scroll bar ) -Scroll the CE all the way to the right -Move the CE window around (off and back onto the visible area) note: the blank area after the end of the tree is not repainted correctly (helps to see the problem if you change code editor color to a non-white background) Area: ide\code explorer Problem: Code explorer does not parse .inc files. Since they contain valid source I think the code explorer should parse them. Steps:
New Application
File/New... Text. Add declarations etc. - save as
"Unit1.inc"
Note that Unit1.inc is properly syntax higlighted.
In Unit1.pas, {$include Unit1.inc}
Verify that the project compiles and runs properly.
Explorer is empty when viewing Unit1.inc though.
Area: ide\code explorer Problem: Unit explorer does not position correctly after an item is selected. Steps: Open a unit that has a lot of code in the editor. Scroll to the bottom and select an item. Explorer will position relative to the top of the treeview. [Seems to be a request for the newly selected area in the module explorer to always be at the top] Area: ide\code explorer Problem: In the module explorer, the popup menu on the Uses clause shows you can "View Editor" but doesn't actually do anything. It should take you to the beginning of the uses clause. [If there are two uses clauses, perhaps it could first go to one, then to the other, so if you press Ctrl+Shift+E twice you'd switch back and forth?] Steps: 1. File|New Application 2. Go to the Module Explorer and select the Uses clause. Right-click and choose "View Editor". This does nothing. 3. Compare to what happens when you choose one of the child objects. Area: ide\code explorer Problem: Subfocus management for nodes in code explorer is confused when code explorer's model is changed. Steps: 1. New application 2. Expand Units section of code explorer and resize until a large scrolling range is available 3. Open classes.pas 4. Scroll-down to the Variables/Constants section and dblclick on toWString 5. Notice gray subfocus rect in code explorer 6. Change editor tabs back to view Unit1 7. Notice the scroll position is near the bottom 8. Click on the last node - notice that the tree control scrolls to the top Area: ide\code explorer Problem: Tools/Environment options/Explorer/Automatically show Explorer does not immediately work on the code editor window. Instead, you have to close and reopen the window for this option to have an effect. This is in contrast to other options on the same page that do have an immediate effect. Steps: New Application Tools/Environment options/Explorer Change the setting of Automatically show Explorer OK Nothing seems to happen Area: ide\code explorer Problem: Code Explorer doesn't react to Alt-F10 to generate its local context menu Steps: Start Delphi ensuring the Code explorer is visible (mine is docked in the editor) Click on the Code Explorer Press Alt-F10 Nothing happens, whereas a popup menu should appear for consistency with the rest of the environment (eg the form designer and editor) Area: ide\code explorer Problem: If module explorer is undocked and you click on an item of interest, the explorer goes behind the editor if it floating above it. Steps: Undock module explorer and position it above the editor. Click on an item and the module explorer goes behind the editor and is thus unavailable. Area: ide\code explorer Problem: Module Explorer: add a right-click-menu entry for Form properties in module explorer that enable the user to jump to the form and focus the corresponding element. Area: ide\code explorer Problem: Procedures/Functions without parameters using the "( )" fail to show up in the code explorer. Steps:
1. File | New Application, add the below code to the
implementation section:
procedure MyProc();
begin
Showmessage('Hello!');
end;
The code explorer will not pick this procedure up,
but if you get rid of the empty parens it will. If we
allow the empty parens the explorer should honor
this.
Area: ide\code explorer Problem: Code explorer fails to update Area: ide\code explorer Problem: After opening a second edit window and using the Code Explorer window of the second edit view to navigate into the code the first edit window is activated rather than the second edit window Steps: -File | New Application -Right click on Unit1 in Code Editor, select "New Edit Window" -In the second Code Explorer window (titled Unit1.pas:2) expand the uses node and select and double 'graphics' result: uses grapics in the first edit window code editor becomes active Area: ide\code explorer Problem: The name for the Variables/Constants node is the wrong name in the Options dialog Steps: -Tools | Environment Options | Explorer -Explorer Categories -Note there is a Variables node not a Variables/Constants node. Area: ide\code explorer Problem: The Rename local menu item applied to a property will rename the read and write methods, but will not do the same for the stored method. Steps: New Application Add the following property to TForm1: property X : Integer read GetX write SetX stored StoredX; Do local menu item "Complete class at cursor". Click on X in the code explorer and rename it to Y. GetX is changed to GetY, SetX is changed to SetY, but StoredX stays StoredX. Area: ide\code parameters Problem: Typing the following causes an AV in DCC40.DLL: showmessage(inttostr(height Steps: 1. File | New App. 2. Double click the form to create an OnCreate event handler. 3. In the event type "showmessage(inttostr(height" (without the quotes) // AV in DCC40.DLL occurs. Area: ide\code parameters Problem: At certain times when viewing code perameters, delphi gives a "list index out of bounds." Area: ide\code parameters Problem: Code parameters tooltip is fooled into going away by the wrong type of bracket Area: ide\code parameters |