Exp: the list with units should be displayed
Act: the list is displayed, but the letter 's' from extension 'pas' is cut off (see atached screenshot)

Note: this is also happening for View | Units dialog.

QC #:

Date Reported:

Area:

78136

9/27/2009

IDE

Description:

Steps:

[QC Short Description]
Problem using Shift key multi-select in Search for Units/Forms dialogs

[QC Description]
If you open the 'Search for Units' or 'Search for Forms' dialogs (View->Units and View->Forms), when you try and multi-select a number of forms/units, the OK button is always disabled once you select more than one unit/form. So, it is not possible to make contiguous multi-selections with the shift key.

If you use the Ctrl key then you can make multi-selections, but you have to click on each file individually.
QC Entry 78136

Open project with multiple units. Open the Search for Units dialog by choosing Units from the View menu. Click on the first unit then hold down shift and click on the last unit. The selection is made but the OK button becomes disabled.

QC #:

Date Reported:

Area:

9/23/2009 5:35:09 PM

IDE

Description:

Steps:

On windows 7, 64 bit, when enabling large fonts the reopen properties form is not displayed correctly.

[QC Description]
I'm getting serious AVs at shutdown in several cases.
A long story:
I first noticed that in some cases ModelMaker Code Explorer (MMX) caused AVs at shutdown.
Running this ide add-in in the in the debugger showed all kind of errors (object instance
not set to a ref) followed by crashed, but all outside the MMX code.

Then after a while the AVs went away! and I could shutdown repeatedly without problem.
I tired to open a different project in the IDE being debugged and voila: AVs again.
Next step: I ran bds.exe in the debugger by defining it as host app for the MMX addin dll
project without actually loading the add-in dll (temp unregistered it).
And yes: AVs at shutdown - as long as the project opened in the IDE is relatively "new".
Once the opened project is "known" I can shutdown OK.

Doing the same thing outside the debugger does not show any noticable error msgs.
So why is this a shopwstopper?
Because these (invisible) AVs can cause 3rd party addins to crash afterwards which
in that case does show error msgs.

Another hint: something inside the IDE makes the "known" state persistent:
once the problem is gone I can consistently restart / shutdown without AVs

The stack traces point at some thread still running at shutdown causing the AV.
Probably the thread collection the "persistent state" ?

Exp: the 'Ok' button is displayed
Act: the 'Ok' button is displayed but cut off (see atached screenshot)

Note: this is happening also for View | Units.

QC #:

Date Reported:

Area:

5/28/2009 9:26:17 AM

IDE

Description:

Steps:

when first creating a vcl application and setting a breakpoint, running to the breakpoint and then attempting to run again will bring up the dialog:

Source has been modified. Rebuild?

Create a new VCL forms application.

Drop a button on the form
In the OnClick event, place the following code:
Caption := 'Foo';

Place a breakpoint on that line of code.

Hit F9.
Click the button.
You are now at the breakpoint. Hit F9 again.

Exp: Program should resume running
Act: Dialog pops up stating: Source has been modified. Rebuild?

Note: This also happens in C++. Problem doesn't happen if you save the project. Only happens on first run. If you right click on the Form and choose View as Text and then switch back to view in the designer, the problem doesn't occur.

This broke in between Subversion revision 21434 and 21454

QC #:

Date Reported:

Area:

8/31/2009 8:46:05 AM

IDE

Description:

Steps:

Reported in the public newsgroups:

=========
I have less than a few minutes of experience with Delphi and I am trying to get familiar with the IDE. It did not get long before I managed to get the product to have a hiccup;

1) Put TCategoryPanelGroup on Form 2) Create new CategoryPanel 3) Put two buttons on CategoryPanel 4) Press down left mouse-button on one of this buttons and see http://img90.imageshack.us/img90/9999/31005543.png For comparison: http://img170.imageshack.us/img170/4613/31456407.png

QC #:

Date Reported:

Area:

BETA

9/8/2009 11:34:10 AM

IDE

Description:

Steps:

The Gradient TabSet used by the IDE has several painting problems.

1) There is space below the "scroller" which paints in clWindow instead of the color used by the rest of the background.

2) The right arrow scroller also paints using clWindow when enabled.

3) The whole tabset does not change colors immediately when the clBtnFace color changes on the system.

Start the IDE and open enough editor tabs to get the scrollers active.

Set the "Window Color" to fuschia or something else bright in Control Panel.
// Note the 2 pixel area below the tabset scroller that is now painted in this color.
// Also note, when the right arrow scroller button (when enabled) is also this color.

Set the button face color to Teal (aka "3D objects") in Control Panel.
// Note the editor tabs do not repaint using this new color (restarting IDE picks it up).

EXP: The debugger steps to the next line
ACT: You get the "Source Modified" dialog:
---------------------------
Information
---------------------------
Source has been modified. Rebuild?
---------------------------
Yes No Cancel Help
---------------------------

QC #:

Date Reported:

Area:

8/27/2009 9:15:10 AM

IDE\Dialogs\Environment Options

Description:

Steps:

Some Environment Options pages not displaying correctly on Large Fonts

1. Set OS to run with large fonts
2. Select Tools | Options
3. Navigate to the VCL Designer tab

[QC Description]
There is a huge performance difference between D2009 and D2010 when you remove files from a project using the Project Manager or the OTA.

-> see steps
QC Entry 77765

- save the attached project files - start Delphi - open TestProject.dpr - multiselect the units TestUnit0001.pas till TestUnit0100.pas in the Project Manager - press the DEL key or call "Remove From Project" from the Project Manager popup menu expected: the operation is finished in less then a second actual: it takes more than two minutes to finish the operation (Vista x64 on and old Core2 Duo)

QC #:

Date Reported:

Area:

9/23/2009 10:40:02 AM

IDE\Code Editor

Description:

Steps:

New tab indent does not work well with persistent blocks.,

1. New Delphi VCL application.
2. Double-click on form to create OnCreate handler.
3. Tools/Options/Editor Options, make sure Persistent Blocks is checked.
4. Highlight lines 10 and 11 (declaration of TFormx class and FormCreate procedure).
5. Use arrow keys to navigate to some other line outside of the selected block.
6. Press Tab.

1) Create a new Delphi forms application and drop a TButton,
double klick to auto-create the OnClick handler.
2) In the event handler type some nonsense chars, ensure the
last char is not a semicolon.
3) Mark the nonsense string and move the curser to the right
within the _same line until some loop starts popping up
code insight windows infinitely (eats a lot of CPU time,
but IDE still survives).
4) While in that loop press the DEL key.
5) Move the curser to another line to stop the loop.

If you do not see strange looking characters in the editor yet just undo last change by using the shortcut keys. A lot of garbage should become visible. Try to delete the garbage and the IDE should crash sooner or later.

1) Create a new Delphi forms application and drop a TButton, double klick to auto-create the OnClick handler. 2) In the event handler type some nonsense chars, ensure the last char is not a semicolon. 3) Mark the nonsense string and move the curser to the right within the _same line until some loop starts popping up code insight windows infinitely (eats a lot of CPU time, but IDE still survives). 4) While in that loop press the DEL key. 5) Move the curser to another line to stop the loop. If you do not see strange looking characters in the editor yet just undo last change by using the shortcut keys. A lot of garbage should become visible. Try to delete the garbage and the IDE should crash sooner or later. Vista 32bit, single CPU VM. Clean, default install and default settings.

QC #:

Date Reported:

Area:

76729

8/16/2009

IDE\Code Editor

Description:

Steps:

[QC Short Description]
Editor shows no error when it cannot save a file

[QC Description]
When the editor cannot save a file due to a low level error, no message is displayed.
A temporary file *.$$$ is kept instead.
QC Entry 76729

1. Launch the IDE under a non-privileged user (specifically who has no write access to $(BDS)\Source directory). 2. Create a new console application using the wizard. 3. Open SysUtils unit source and make some changes. 4. Try "Save"/"Save all" 5. Try "Compile"/"Run" ("Autosave options->Editor files" should be enabled). In steps #4 and #5 IDE silently refuses to perform the requested action and you have no clue what's going on.

The following words are untranslated:
Namespace, Constant, Type, Method, Field....

Open an application.
Select Code tab.
Drag mouse pointer over various items.

QC #:

Date Reported:

Area:

74253

5/26/2009

IDE\Code Editor

Description:

Steps:

[QC Short Description]
Inconvinience with indent

QC Entry 74253

I found small problem with tab indent. Assume we have following text: (1)Begin (2) MyLine; (3)End; if I selected block from the beginning of line 2 to the beginning of MyLine (in other order all these spaces from the left of MyLine until beginning of the line) and then press Tab MyLine will be indented even more. I actually expecting it to replace selection with tab (or spaces) because selected only one line. Visual Studio works exactly the same way as I expected.

QC #:

Date Reported:

Area:

76680

8/13/2009

IDE\Code Editor

Description:

Steps:

[QC Short Description]
dialog use unit - OK button disabled

[QC Description]
After filtering and select an unit with a mouse click the OK button is disabled.
QC Entry 76680

Steps by USc: - save the attached files - open UseUnitTest.dpr - open FirstUnit.pas - press ALT+F11 to show the "Use Unit" dialog - enter "Second" in the search edit in the "Use Unit" dialog (see that "OK" is enabled) - click with the mouse on the line with SecondUnit.pas expected: OK is enabled actual: OK is disabled Original Steps: 1. Open a project with few units 2. push [ALT] [F11] to open the dialog "Unit verwenden" Use unit 3. Filter the units and click with the mouse on an unit or click twice on an item The OK button is disabled

QC #:

Date Reported:

Area:

75920

7/19/2009

IDE\Code Editor\Error Insight

Description:

Steps:

[QC Short Description]
"Identifier redeclared" with procedures after generic "reference to procedure"

Create a new Delphi Win32 application Double click on the new form In the OnCreate Event past this code : try showmessage('Hello'); except on E: Exception do showmessage('Hello'); end; Hover the mouse over showmessage('Hello'); ("on" block) Act : code parameter hint is displayed Expt : Tooltip help insight should be displayed

QC #:

Date Reported:

Area:

73995

5/16/2009

IDE\Code Editor\Formatting

Description:

Steps:

[QC Short Description]
[3417] Code Formatter: No menu item

[QC Description]
I noticed that the Formatter can only work on pas files in a project. Otherwise there is no item in the menu. e.g. load Math.pas unit with Open File and right click in the editor window --> no menu item
QC Entry 73995

It was in the CodeFormatter requirements.
http://radblog.codegear.net/wiki/index.php?title=Source_Code_Formatter
see Design Overview "Worst use cases". We have now problems with files outside project

[vk] Formatting files not in the project fixed in rev.23158
all other - 23191
refixed: rev.23211

[vk]All is OK for Delphi, but the same bug occures now in cpp
[vk] refixed - in the trunk rev.24349
in the branch - rev.24350

1) Create one (or more) bookmark in the unit
2) 'Format source';
3) All bookmarks are moved in the last line of unit

http://img443.imageshack.us/img443/4311/13961015.png

fixed: trunk - rev,24557-24559, branch - rev.24560-24562

QC #:

Date Reported:

Area:

10/7/2009

IDE\Code Editor\Formatting

Description:

Steps:

Delphi Formatting:keep ; after end in asm block and keep dynamic in function declaration

2. Dont split after formatting in the assembly section (delphi) "end" and ";" (print "end;" in the same line): example
asm
push lParam;
end;
(now end and ";" are printed in different lines - this is the bag))

3. Take into account "dynamic" modifier for functions (delphi). For example
procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); dynamic;
(now "dynamic;" is printed in the saparate line - this is the bug)

[vk] This is part of #273202 in initial revision. Fixed trunk, rev.25187, brunch rev.25202

QC #:

Date Reported:

Area:

75941

7/20/2009

IDE\Code Editor\Formatting

Description:

Steps:

[QC Short Description]
Code Formatter: formatting of message handlers

QC Entry 75941

Message handlers like procedure WMLButtonDown(var Msg: TWMMouse); message WM_LBUTTONDOWN; are formatted into procedure WMLButtonDown( var Msg: TWMMouse); message WM_LBUTTONDOWN; Not good. It's also weird, 'cause 'virtual', 'override', 'abstract' keywords are kept on the same line, which is correct and expected.

QC #:

Date Reported:

Area:

77118

8/28/2009

IDE\Code Editor\Formatting

Description:

Steps:

[QC Short Description]
Formatter confused by subrange type definition

[QC Description]
Code to be formatted:

program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils;

type
{ subrange type }
TSub = -1..1;

TFoo = class
private
FSub1: TSub;
FSub2: TSub;
end;

begin
end.

Result:

program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils;

type
{ subrange type }
TSub = -1 .. 1;

TFoo = class private FSub1: TSub;
FSub2 :
TSub;
end;

begin

end.
QC Entry 77118

See Description

[vk] Fixed in the trunk rev.24448.
Fixed in brunch - rev.24450

QC #:

Date Reported:

Area:

77585

9/10/2009

IDE\Tool Palette

Description:

Steps:

[QC Short Description]
Component Toolbar does not retain it's position when restarting the IDE

[QC Description]
When the IDE is restarted the Component Toolbar is always moved to the right of the other toolbars even when it was previously positioned in another location.
QC Entry 77585

Start the IDE View | Toolbars | Component (check it) Drag Component Toolbar to be below the other toolbars Restart IDE //Exp: Toolbar positioned where it was //Act: Toolbar moved back up to the right of the menu and other toolbars

Renaming a form or component while editing a StringList in the code editor causes an error

Create a new Delphi VCL app
Drop a TMemo on the form
Double click the "Lines" property to open the String List Editor
Click the Code Editor button
In the Object inspector change the "Name" property of either the Form or the TMemo component
Notice that the "filename" in the string list code editor tab changes: the "dfm." part disappears
Edit the string list in the code editor and do a File | Save

If you edit the contents of a published TStringList in the code editor and you do a "File | Save as", and then try to save the unit of the project you'll get an access violation.

Create a new Delphi VCL app
Drop a TMemo on the form
In the Object Inspector, double click the "Lines" property
In the TStringList Property editor, click the "Code Editor" button
File | Save as
Click Save to accept the default
Try to save the unit of the project.
An AV will appear.

QC #:

Date Reported:

Area:

8/13/2009 4:28:58 PM

IDE\Object Inspector

Description:

Steps:

CustomPainting a property editor is broken if you attempt to custom paint something on the right edge of the property editor value rect.

The edit control overpaints anything you paint.

[Blocking for CodeRage4 talk]

* Install the attached package
* Drop a TNotSoMuch component on the form
* Click on the Value property
//Exp: The scroll buttons are visible
//Act: The scroll buttons disappear when the property is selected

You have to close the bds and to reopen it again , so any project can work to be built.

QC #:

Date Reported:

Area:

8/16/2009 11:04:59 PM

IDE\Open Tools API

Description:

Steps:

IOTAVersionControlNotifier.ProjectManagerMenu and IOTAProjectMenuItemCreatorNotifier.AddMenu are not triggered when more then one item is selected

- build and install the attached package ProjectManagerMenuMultiSelectTest.dpk
- open ProjectManagerMultiSelectTestProject.dpr
- show the Project Manager popup menu for FirstUnit.pas
(see that there is a menu item "OTA (IsMultiSelect=False)")
- (multi)select FirstUnit.pas and SecondUnit.pas for exam. by pressing CTRL and clicking with the mouse on both items
- show the Project Manager popup menu

expected: in the popup menu is an item "OTA (IsMultiSelect=True)"
actual: there is no "OTA..." item at all

QC #:

Date Reported:

Area:

10/5/2009 10:30:49 AM

IDE\Open Tools API

Description:

Steps:

Uninstalling a package that creates and displays a top-level editor tab wil cause a crash if the top-level editro tab is still open

Open attached package
Right click on the package in the Project Manager and select "Install"
View | Something Cool
Right click on the package in the Project Manager and select "Uninstall"

[QC Description]
Using IOTARecord to read/write macros to a stream always fails with this error message: "Invalid Key macro format." I believe the problem is
that the code to read/write the macro stream (VEdTypes.TRecord.ReadFromStream) was not adjusted for unicode compatibility.

The attached test case works fine in older releases. This bug prevents the macro library tool in GExperts from working.
QC Entry 78289

If the message view is opened, tab-docked, but not the active dock client (see steps), it will not get displayed when you compile a project that has an error

Start IDE with Default Layout
View | Messages
Grab the Object Inspector and tab-dock it into the Message View
Make sure the Object Inspector is the active dock client (not the Message View)
----->(see "1" in attached screenshot)
Create a new Delphi project
Add invalid code to the app and compile it
----->(see "2" in attached screenshot)

EXP: Error is shown and the Message view is brought in front of the Obejct Inspector
ACT: Error is shown, but the Message view stays behind the Object Inspector

QC #:

Date Reported:

Area:

71187

2/5/2009

IDE\Code Templates

Description:

Steps:

[QC Short Description]
Ctrl+Space incorrectly eats the character following the template name

[QC Description]
When Ctrl+Space is used to expand a template name into a template, the character following the template name disappears.

See "Steps".

This worked correctly in Delphi 7 but does not in Delphi 2009.

Severity comment: This makes the new code template system MUCH more clumsy and less useful than the Delphi 7 system.
QC Entry 71187

E.g. 1) Suppose the template name is "abc" and that it expands to "A=B": Suppose that before Ctrl+Space you have: if abc| then Inc(A); After Ctrl+Space you get: if A=Bthen Inc(A); rather than: if A=B then Inc(A); This lost space must then be replaced manually for the code to compile. --- E.g. 2) Suppose the template name is "fan" and that it expands to "FreeAndNil": Suppose that before Ctrl+Space you have: fan|(ObjectReference); After Ctrl+Space you get: FreeAndNilObjectReference); rather than: FreeAndNil(ObjectReference); This lost semicolon must then be replaced manually for the code to compile.

QC #:

Date Reported:

Area:

8/5/2009 8:50:49 PM

IDE\Code Completion

Description:

Steps:

Unexpected $ClassInitFlag is list up in code-completion list for some classes.

I found $ClassInitFlag from the following

SysUtils.Exception
SysUtils.TEncoding
Classes.TThread

CodeCompletion said it is a "class variable"
But compiler can not compile this "variable"

1. Open the attached project.
2. Open Unit1.pas.
3. Ctrl-Click on Unit2 in the uses clause.

// exp & act: Unit2.pas is opened in the editor.

4. Close edit window for Unit2.pas.
5. Build the project (Ctrl-F9).
6. Ctrl-Click on Unit2 in the uses clause.

//exp: Unit2.pas is opened.
//act: Nothing happens.

From internal debugging, I find that Unit2 is not opened because the position returned by the call to BrowserFindDeclaration has 0 as the line number.

QC #:

Date Reported:

Area:

9/18/2009 9:11:02 AM

IDE\Code Browsing

Description:

Steps:

Code browsing fails to detect when a file has been modified in the IDE.

1. Open attached project.
2. Open Unit1.pas.
3. Ctrl-click on CONST1

// exp & act: IDE navigates to the delcaration of CONST1 in Unit2.pas

4. In Unit2.pas, press Enter to move the constant declarations down a line.
5. Go back to Unit1.pas and Ctrl-click on CONST1 again.

// exp: IDE navigates to the declaration of CONST1 in Unit2.pas.
// act: IDE navigates to Unit2.pas, but does not go to the right line number. It goes to the original line number where the declaration used to be.

QC #:

Date Reported:

Area:

77185

8/30/2009

IDE\Class Completion

Description:

Steps:

[QC Short Description]
Class Complete stops working if there is a "procedure(x: Integer) of object" field in the class

[QC Description]
Class Complete stops working if there is a method pointer in the class who's type is inlined.
QC Entry 77185

1. Create a new unit 2. Replace the content with the following text <<<<<< unit ClassComplBug; interface type TTest = class public Event: procedure(const S: string) of object; procedure Test; end; implementation end. >>>>>> 3. Move the caret into the class declaration 4. Press Ctrl+Shift+C (Class Complete) Expected: The body for "Test" is created under implementation Actual: Expected ';' but OF found in class TTest.

QC #:

Date Reported:

Area:

76332

8/3/2009

IDE\Search\Find

Description:

Steps:

[QC Short Description]
Find bar (Ctrl-F) options doesn't shown

[QC Description]
When using Ctrl-F option find bar shown but some options are hidden behind "Additional search options" button when plenty of space available to show all of them in one place
QC Entry 76332

used screen resolution: 1680x1050 run and maximaze Delphi 2010 open any file for editing press Ctrl-F - find bar is shown the result - some options (usually Search selection, but sometimes others depends on program window size) are not shown hidden behind "Additional search options" button when plenty of space available to show all of them in one place (See attached image)

QC #:

Date Reported:

Area:

67688

10/8/2008

IDE\Packages

Description:

Steps:

[QC Short Description]
Disabled design time packages become enabled after IDE restart

[QC Description]
If you disable some design time packages under Components\Install Packages or under Project Options\Packages by unchecking the checkboxes, then close Delphi and restart, all packages appear enabled as if you did not change anything.
QC Entry 67688

Open a VCL Project
Go to Project Options, item Packages and disable some packages by unchecking the checkboxes. Check Default button to be sure.
Save all changes,
restart IDE,
Reopen the project
go back to project options and observe checkboxes you unchecked appear checked again.

The same happens if you disable packages through menu Component\Install Packages...

QC #:

Date Reported:

Area:

8/18/2009 12:08:36 PM

IDE\Packages\Installing Components

Description:

Steps:

Packages with suffixes do not indicate they are installed or uninstallable.

Extract attached files.
Open the project group.
Build the runtime package.
Build/Install the design-time package.
Exp: icon should be yellow indicating the package is installed, and "Uninstall" local menu item should be present.
Act: icon indicates package is not installed, no menu item present.

QC #:

Date Reported:

Area:

65498

8/10/2008

IDE\Packages\New Component Wizard

Description:

Steps:

[QC Short Description]
When installing to a new package, selecting the name of an existing file causes AV

[QC Description]
When you use Component | New VCL component, or Component | Install component, select the 'Install into new package' option, and set the package name to a name of an existing file, you get an AV.
QC Entry 65498

[QC Description]
The Component Toolbar (located under the main menu [File, Edit, Search, etc...]) does not stay "gone" when removed.

Typically, I would expect that I could right click the Component Toolbar's handle, (or anywhere in the toolbar,) and deselect the checkmark to show the Component toolbar to hide it. I would expect that I should save my desktop layout, and be able to close out Delphi, and reopen it, and have the Component Toolbar remain hidden. Instead, the Component Toolbar is again visible, as though none of my layout preferences were saved.
QC Entry 78036

Background compilation reports success when it really failed. This occurs when the background parser is active (note the dots painted in the Structure Pane caption in the dev build)

If you're debugging the IDE, you'll see this exception in the debugger from the background compilation thread:

First chance exception at $7C812AFB. Exception class EThread with message 'CheckSynchronize called from thread $3EC, which is NOT the main thread'. Process bds.exe (2692)

Turn on background compilation (I have the progress dialog shown)
Open attached large project
Note that the dots are painting on the Structure View's Caption
Press Ctrl-F9 to build

Note the message view reports success, but the source does not compile
Compiling it in the foreground properly shows the error

Dismiss the progress dialog

Wait for the dots to stop painting (indicating that the background parser is complete)
Ctrl-F9 to compile again.
This time you get: "[DCC Fatal Error] E2165 Compile terminated by user"
Dismiss the progress dialog

Ctrl-F9 to compile again.
This time, finally you see the error in the message view

QC #:

Date Reported:

Area:

9/14/2009 3:57:26 PM

IDE\Build Tools\Delphi

Description:

Steps:

When enabling large fonts with Vista, some option from Add Watch dialog is not visible.

Exp: the option 'Allow side effects and function calls' should be visible
Act: the option 'Allow side effects and function calls' is not displayed, it is hidden under option group (see atached screenshot)

QC #:

Date Reported:

Area:

10/6/2009 12:58:40 PM

IDE\Start Page

Description:

Steps:

Running the IDE with Kaspersky AntiVirus 2010 installed, you get errors from the welcome page:

Cannot create file "C:\Documents and
Settings\chesik\Local Settings\Temporary Internet
Files\Content.IE5\YDQSQD5S\wpLoader[1].js". The process cannot access
the file because it is being used by another process.

We have over 25 AIR reports for this for D2010, 20+ for D2009, a few for D2007

Run Delphi
If you don't get an error right away, then:
-- close the Welcome page tab
-- View | Welcome page

QC #:

Date Reported:

Area:

9/15/2009 6:36:40 PM

IDE\Start Page

Description:

Steps:

The start page should refresh only if the welcome page is shown and only when you open or close a project, not if you've navigated to some other web page and if you open or close a saved file.

1. New VCl project.
2. Open a link (an youtube link to a video clip) in the Welcome Page.
3. Let the video clip to play.
4. Save the project.
5. Close the open unit, or open an unopened saved file.

Act: The video clip is restarting (A refresh of the page is done).
Exp: No refresh.

QC #:

Date Reported:

Area:

10/5/2009 6:05:07 PM

IDE\Structure Pane

Description:

Steps:

Double clicking an item makes that other item to be selected and double clicked.

1. File->New VCL Application for Delphi (or an existent project with a file with some classes, functions)
2. Double click the form designer.
3. Double click "FormCreate(Sender: TObject)" from Structure Pane. (or any other item).

Exp: The "FormCreate(Sender: TObject)" should remain selected and the cursor should be moved at the item declaration.
Act: The selected item is "TForm1(TForm)" and the cursor is moved at "TForm1 = class(TForm)" declaration.

QC #:

Date Reported:

Area:

9/2/2009 2:01:17 PM

IDE\Structure Pane

Description:

Steps:

Access violation when closing the IDE caused by the parser thread accessing the editor view after it has already been destroyed.

Shutdown the IDE while the parser thread is parsing.

See attachment for stacks.

QC #:

Date Reported:

Area:

10/28/2004

IDE\History View

Description:

Steps:

History view -- Word order of time stamp is wrong (am/pm comes before hour in Japanese). Change it to 24 hour system. If it is impossible, revert it to English.

(attached image)

note: the standard time format of my machine is "H:mm:ss" (24 hour system).

QC #:

Date Reported:

Area:

76732

8/16/2009

IDE\History View

Description:

Steps:

[QC Short Description]
Switching to another revision does not reset the search result

[QC Description]
After performing a search in the History view and switching to another revision the search result is not resetted.

-> see steps and attached images

This is from the thread "Search in Historie Window?" in .weaver.ide.editor
https://forums.embarcadero.com/thread.jspa?messageID=147476&tstart=0#147476
Message-ID: <149135@forums.codegear.com>
QC Entry 76732

Before you start with the following steps make sure that QC 75439/RAID 270794 and QC 76730 is fixed! - start the IDE - create a new Delphi console application - save it - remove the "{ TODO -oUser -cConsole Main : Insert code here }" line - save it - switch to the History editor tab - switch to the "Content" History sub tab - click into the edit control on the "Contents" tab - press CTRL+F - enter "end" in the search edit and press ENTER (see "end" [end;] on line 13 is marked in black see also HistoryViewSearchResultCorrectRevision.png) - select the Revision "~1~" in the Revision content virtual tree expected: the search result is resetted actual: the black mark stays where it is (see HistoryViewSearchResultOtherRevision.png)

QC #:

Date Reported:

Area:

8/10/2009 4:47:48 PM

IDE\IDE Insight

Description:

Steps:

IDE Insight doesn't auto-update actions, so it's possible for available commands to be missing from the list.

Start IDE
Create a Delphi VCL app
Pull down the Run menu and see that the "Inspect" menu item is disabled
F6 to invoke IDE Insight
Type in "Inspect" and note that the Inspect command is not shown (because it is disabled).
All good to this point
Dismiss IDE Insight
Now press F8 to invoke a debug session
F6 to invoke IDE Insight
Type in "Inspect" and note that the Inspect command is still not shown
Dismiss IDE Insight
Pull down the Run menu and see that the "Inspect" menu item is enabled
F6 to invoke IDE Insight
Type in "Inspect" and note that now the Inspect command is shown (becuase you manually did something in the IDE that caused the Action to get updated).

QC #:

Date Reported:

Area:

10/26/2009 2:48:01 PM

Install

Description:

Steps:

BDSShellRes.dll and BDSShellRes140.dll are different between the Update 2 patch and the Update 2 inline.

QC #:

Date Reported:

Area:

10/26/2009 3:39:38 PM

Install

Description:

Steps:

cglm.ini has different contents between patch and inline install.

For the patch install, the following line is missing from cglm.ini:

RegExe=bdsreg.exe

QC #:

Date Reported:

Area:

11/3/2009 3:51:48 PM

Install

Description:

Steps:

Additional_Products.htm has the wrong URL for remote debugger.

It has http://www.installers.codegear.com, but should have http://installers.codegear.com instead.

For Update 2, we should not allow 501 serial numbers because the IDE doesn't work with those serial numbers.

At some point in the future, the IDE and installer should both accept 501 serial keys, however that won't be the case for Update 2.

QC #:

Date Reported:

Area:

10/15/2009 3:39:19 PM

Install

Description:

Steps:

When updating to Patch 1 or Patch 2 from WeaverRTM, the "automatically show updates on launch of IDE" setting is undone if indeed you have selected originally to automatically show updates when launching the IDE

*Install Weaver RTM build and select "Automatically check for updates when IDE launches" (or something like that)
*map installers.codegear.com to swintern
*Launch the IDE -- updates are found -- cancel out of the updating process
*Install Patch1
*Launch IDE -- no "Updates available" screen shows up even though several are available.
*Launch "Check for Updates" from the start menu -- notice there are indeed updates...

With Sergio's help I have watched where the registry value:

HKLM\Software\CodeGear\BDS\7.0\AutoRun\UpdateCheck was populated after the RTM install and right at the instant I click Finish on the Patch1 install (or Patch 2 - in either case) it is deleted...

QC #:

Date Reported:

Area:

10/15/2009 2:42:03 PM

Install\Install Execution

Description:

Steps:

When installing a language besides English, the Database Pack installer does not keep the language selection...

* Install RTM with a language besides English
* Check for updates (using swintern mapped to installers.codegear.com)
* Install all updates
* Check and see that the DBPack files expected for Japanese (or any other language besides English) are not there.

QC #:

Date Reported:

Area:

10/16/2009 2:36:26 PM

Install\CD Layout

Description:

Steps:

Download Partner ISO button does not work -- it's looking for D:\Install\Additional_Products.htm and the file doesn not exist.

If you try to register with a serial key that has been register for another user, has expired or is for trial puposes only, you get an error message in English instead of German.

NOTE: Assigned to Chris B�rgi instead of German Sub by request.

1. Install Weaver with default values
2.Enter key that is expired (e.g. 3Axx-xxxxxx-xxxxxx-MxxN)
( xx are only masks, but you should be able to find the key I refer to)
3. try to register the key on startup for any EDN user account

exp: message explaining that key expired/is invalid in German
act: message is in German

NOTE: Same problem applies as with other bugs. One does not try "another kind of registration" but the same "registration process again". The translation is incorrect at this point. This has been logged before.

QC #:

Date Reported:

Area:

9/18/2009 10:46:54 AM

Database

Description:

Steps:

MetaData Query GetProcedureSources retrieves a stored procedure but AVs when trying to retrieve the Definition if the proc name is not present in the database

Search in the RTL/VCL code for all 'VString' occurances. Notice that in Variant.pas all TVarData.VString are cast to an AnsiString. Now notice that DBCommon (and other units) do a cast to 'string', which effectively means a cast to 'UnicodeString'.

- record is edited using DBEdits and simultaneously shown in a DBGrid
- user clicks on the empty are of a DBGrid

See steps and attached test-case

This is caused since in TCustomDBGrid.MouseDown there is a call to UpdateData instead of FDataLink.UpdateData (see workaround)
QC Entry 34447

1. Download and run the attached test-case 2. Activate the second record by clicking on the cell showing "two" 3. Enter a different text (e.g. "test") into the DBEdit above the grid 4. click on the empty area in the grid below the records exp: updated value ("test") should show up in the grid act: value is cleared, i.e. data loss

QC #:

Date Reported:

Area:

9/25/2009 1:30:05 PM

Database\Data Aware Controls\TDBRichEdit

Description:

Steps:

In the latest D2010 VCL the TDBRichedit control is broken, when no datafield is assigned OR during the process of streaming the control is you will observe AV's in the dbtrls.pas, in the BeginEditing...

trunk rev: 24877
update rev: 24878

1) Create a 1 form Delphi VCL app
2) drop TDBRichEdit onto the form
3) now change the TDBRichEdit's Font's color property to something else say clGreen... (actually any of the font properties that change will do the trick)

function TDBRichEdit.BeginEditing: Boolean;
begin
Result := FDataLink.Editing;
if not FDataLink.Editing then
try
if Assigned(FDataLink.Field) then //********Adding this line will fix the AV when font color is changed...***********
if FDataLink.Field.IsBlob then
FDataSave := FDataLink.Field.AsString;
Result := FDataLink.Edit;
finally
FDataSave := '';
end;
end;

The problem comes in during the streaming in process, when the font color is changed a message is sent, and at that point the DataField has not been streamed in has not been streamed in... And hence is blank so the datafield has not been created at at point, this also happens . or ih no datasource is connected the reason is we do not check if the Datalink's Field is assigned or not and we have the AV trying to dereference the pointer...

QC #:

Date Reported:

Area:

77939

9/22/2009

Database\Data Access Controls\TQuery

Description:

Steps:

[QC Short Description]
Error ParamByName result IsEmpty

[QC Description]
After being reviewed, I have encountered a problem in a TQuery, then add the data to PARAM this way:
query1.ParamByName('name').AsString: = 'Boa';
query1.open;

and then to validate the result with:
if query1.IsEmpty
ShowMessage ( 'Empty');
else
ShowMessage ( 'Not Empty');

gives always empty because it does not filter well, but if it works well if I do this:
query1.ParamByName('name').Value: = 'Boa';
query1.open;
and then to validate the result with:
then if query1.IsEmpty
ShowMessage ( 'Empty');
else
ShowMessage ( 'Not Empty');

It gives me the desired result.

The query is, is this a modification of Delphi 2010 and earlier versions that no such breakdown, then it is a modification or some inconveniete surmountable with any update?

[QC Description]
A change was made to TBlobField in D2010 that causes the DataSize property to return the size of the blob stream contents rather than zero. This change breaks the previously documented behavior for the DataSize property which requires fields with "data of indeterminate size" to return zero. The new behavior is cleary inconsistent with Delphi documentation and hazardous for code that depends on the previous behavior:

"The value of DataSize for TField is 0. Most descendants of TField override this property to specify the size required by the specific field type they represent. BLOB fields, however, represent data of indeterminate size. They do not override the inherited method, so the value of DataSize for BLOB fields is 0. A value of zero should not be interpreted as meaning the field value requires no memory. A value of zero indicates that the memory required for the field is indeterminate."
QC Entry 78576

Compare the TBlobField definition in D2010 with that from D2009 and earlier. D2010 adds the following
GetDataSize override to TBlobField:

[QC Description]
A change was made to TBCDField in D2010 that causes the DataSize property to return the wrong value. In previous versions of Delphi, the GetDataSize method of TBCDField returned SizeOf(TBcd). The GetDataSize method has been changed in D2010 to return SizeOf(System.Currency) instead. This change breaks code that depends on the previous behavior, in particular code that manipulates DataSet record buffers.
QC Entry 78620

Using the BDE to inserting blobs into tables has issues... in Delphi/CB 2009 VCL

1) Compile the example code application
2) press the top button first this will create a Pdx table and insert a Blob and an Ansistring into the table
3) press the second button to retrieve the data from the table and display what was pull out of the table...
4) you will see random values...

[QC Description]
When using dbxpress TSQLConnection / TSQLQuery with Sybase ASE (using dbxase30.dll) in Deplhi 2007, a memory leak occurs with each call to ExecSQL.

The issue appears to be related to dbxase30.dll (Sybase ASE), as the same test application does not produce a memory leak if the TSQLConnection is instead associated with the 3rd party dbexpca400.dll (from Peter Sawatzki) and connected to an AS/400 database.

Including "ReportMemoryLeaksOnShutdown:=true;" in the test application FormCreate, does not report any memory leaks on shutdown, despite the application having consumed and not released additional memory for each ExecSQL call.

The leaked memory is also not released even after Free'ing the TSQLQuery object that was used to invoke the ExecSQL call (perhaps further confirming the issue exists with dbxase30.dll?). The memory is only released upon termination of the application.
QC Entry 62562

[QC Description]
An application originally made with D2007 uses dbExpress to connect to MSSQL. For some functionality, it creates temporary tables and fills these with data in consecutive statements on the same connection in the same (implicit) transaction.
This worked great in D2007, but the same code fails in D2010. It looks like changes to the mssql dbexpress driver in between versions has broken this functionality. (Don't know about D2009.)

Using explicit transactions does not help. Dmitry Arefiev suggested the driver might be using sp_execute statements internally, which would explain the behaviour because that would create a new context for each statement thus failing to recognize temp tables made in another context and therefore already dropped.

This is really basic functionality for our app and a showstopper for porting it to D2010 (unfortunately, because I really like it even better than D2007).
QC Entry 77303

Create a new application and drop a TSQLConnection and a TButton.
Connect the TSQLConnection to a MSSQL server by setting the Driver, Host and a Database.
To the button.OnClick handler attach this code:

Expected: both statements run fine. If this program is made using D2007, it does.

If made with D2010, this application fails on the 2nd statement with the SQL error "Invalid object name '#TestTemp' ".

D2007 uses dbxmss30.dll. D2010 uses dbxmss.dll. If I make the D2007 version use dbxmss.dll, it fails too. Unfortunately, it doesn't work the other way round.

QC #:

Date Reported:

Area:

78188

9/29/2009

Database\DBExpress

Description:

Steps:

[QC Short Description]
List index out of bounds if only some fields are persistent

[QC Description]
If you have a SELECT * but only create persistent fields for some columns, Delphi 2010 gives a "List index out of bounds" when you open the clientdataset. This worked in previous versions.

According to Dmitry Arefiev, this may be the problem:

As I see, the problem is in TCustomSQLDataSet.GetFieldData.
There are few places, where the code is accessing to the dataset
fields as "Fields[Ordinal]". But there Ordinal is FieldNo-1 and
not a index. Instead must be used Fields.FieldByNumber(FieldNo).
This issue is introduced in D2010 - in D2009 there is no such issue.
QC Entry 78188

When applying updates through DataSetProvider.ApplyUpdates procedure, access violation happens if connection to database was not yet established. Example is attached. This is only a small test sample. Otherwise in our software Delta is sent from client application to a stateless server with multiple datamodules which can handle the request and apply updates. In that case if datamodule handling the data was not the same as datamodule handling updates this error occured.
I believe this to be a bug.

When dragging and dropping a server method from the procedures node of a datasnap connection, it needs to put quotes around the CommandText property in order for it to work. otherwise it will error when executing with "Unknown Token".

Note: Storedprocs do not have periods in its name, therefore we can use the logic: if there is a period, then quote it, as all server methods will have a period to separate serverclass.servermethod

create a new vcl form
open data explorer and connect to any datasnap connection
expand that connection and expand procedures
drag and drop any server method (make sure it has a . as it is a storedproc otherwise)
right click the sqldataset and clcik execute

exp: to complain about missing parameters values not set or execute successfully
act: token unknown error

Note: now put quotes manually around the CommandText property and repeat execute. it will now work as expected.

[QC Description]
TJSONString.ToBytes fails to convert Unicode chars which are between U+0080 and U+00FF.

For example, multiply operation charcter(x = U+00D7) has been converted invalid data, because U+00D7 has been handled as byte(ASCII character) data instead of Unicode character.
It must be converted to \u00D7 by the method.

The bug exist in Line#1813 of DBXJSON.pas.
-----
... or (CurrentChar > WideChar(255)) then
must be
... or (CurrentChar > WideChar(127)) then
-----
QC Entry 79153

Added By Sysop
<<<<<<<<<<<<<
In 'DBXStream.pas',
TDBXJSonStreamWriter.WriteString method also has same bug.
>>>>>>>>>>>>>

exp: to see result param to equal input param
act: result param is "truncated"

QC #:

Date Reported:

Area:

8/19/2009 8:04:52 AM

Database\DataSnap

Description:

Steps:

DataSnap CGI servers don't work properly

Create a new DataSnap WebBroker app, check cgi
Setup in IIS
Create virtual directory called DSProjects
Enable CGI (executables) in virtual directory
Enable browsing
Build CGI to virtual directory
Browse to the virtual directory
Click on the .exe
expected: "DataSnap Server" shows in browser
Copy to the clipboard part of URL starting with DSProjects, this is the URLPath for the connection
Start DataExplore.exe
Add a connection
http
localhost
80
URLPath: Paste in URLPath. Should be something like DSProjects/Project1.exe

Test Connection

Expected: Connection works
Actual: Hang

QC #:

Date Reported:

Area:

9/25/2009 4:52:26 PM

Database\DataSnap

Description:

Steps:

A table returned by a datasnap server method can't be used with a TDataSetProvider and TClientDataSet.

Open the attached applications
Start the server
Start the client
Select ftString in the Field Type combobox
Click "ReturnDataSetWithTFieldType to CDS Provider" or "ReturnReaderWithTFieldType to CDS Provider"
Expected: Displays data in the grid
Actual: CDS.Active Exception: Catastrophic failure

QC #:

Date Reported:

Area:

8/25/2009 8:16:57 AM

Database\DataSnap

Description:

Steps:

REST

Current unable to pass Multibyte strings (Unicode) as parameters to a server method expecting a unicode string for example

IE: EchoStr(Input: String): TJSONValue;

Note: JSON protocol also does not seem to work well with unicode chars in the msg content portion of a json execution

DataSnap Filters is raising exception some times, more frequently in debug mode.

After some test with Adrian, he knows where is the problem and look likes is easy to fix.

This is stop ship bug

open and run raid272513.zip
run without debugging the failover project
run two instances of the Myserver project
start the servers on port 211 and 213 each
open data explorer and connect to the server using http protocol (8080)
expand procedures
select the EchoString procedure for executing
enter any string value (ie: Delphi)
click execute and expect it to work
now shutdown the first server on 211
clcik execute 5 more times

Re-translated to English by Google-translate.
"Checking for initial data, it fails to create pre-compiled headers."

QC #:

Date Reported:

Area:

78205

9/29/2009

International\Translation

Description:

Steps:

[QC Short Description]
English ION version of RAD Studio 2010 Architect has Japanese translations on SQL Window tab

[QC Description]
The English InstantOn version of RAD Studio 2010 Architect has Japanese translations shown on the SQL Window tab. Not all labels are shown in Japanese, and I have not noticed this anywhere else in the IDE. I have attached a screenshot for reference
QC Entry 78205

//Masahiro Arai
This is not only for ION but Installer.

- Right-click a valid database connection in the Data Explorer window and select 'SQL Window' from the contest menu Expected: The SQL Window tab is shown with all text in English Actual: The SQL Window tab is shown with a mixture of English and Japanese text

QC #:

Date Reported:

Area:

10/3/2009 10:50:01 AM

International\Translation

Description:

Steps:

Regression and integration problem?
File History property dialog resources are shown in English (Number of projects: and Number of files:).

Both are translated in Weaver projects repository but new resources are added in 'RAD Studio (TP - Trunk; this is for RAD Studio 2011)' project and it seems to picked those resource, please see attached screen shot.

[QC Description]
On Delphi 2009, TRichEdit.RegisterConversionFormat does not work (the function passed to the method will never be called), and simply calling the method causes an exception when the program exits.

The problem appears to be in the FreeConversionFormatList method called in the ComCtrls finalization section, and specifically the AppendConversionFormat method, which is using the code:

ConversionFormatList.Add(Pointer(@NewRec));

when it looks to me like it should be this:

ConversionFormatList.Add(Pointer(NewRec));

Not only does this fail to register the conversion function with the correct address, so it never gets called, but it screws up the heap when the list is de-allocated.
QC Entry 77448

trunk rev: 24803
update rev: 24804

Simply creating a TRichEdit instance and then calling the RegisterConversionFormat method with appropriate parameters demonstrates the bug. The attachment contains a program for both Delphi 2009 and Delphi 5 which demonstrates the problem. To see the problem, run the program, click the button on the main form, then close the program. An access violation occurs when the program exits if compiled with Delphi 2009, but not with Delphi 5.

1. Create a subclass of TWinControl 2. In the constructor, raise an exception before calling inherited.

QC #:

Date Reported:

Area:

76743

8/16/2009

VCL

Description:

Steps:

[QC Short Description]
scrollbars don't work with touch

QC Entry 76743

trunk rev: 24810
update rev: 24811

The scrollbars of TListBox, TMemo, TStringGrid and TScrollBox don't work with touch on a Windows 7 multi-touch machine. You can click them, but moving the slider or keeping the outer buttons down doesn't work. In NotePad the scrollbars do work.

QC #:

Date Reported:

Area:

66905

9/17/2008

VCL\Additional Controls\TCheckListBox

Description:

Steps:

[QC Short Description]
Repaint Error.

[QC Description]
Set the property "DoubleBuffered" to be True. And then check the item in the TCheckListBox(Do not check the first item.). It's seemed that checkbox is paintting error.
QC Entry 66905

1.Put a TCheckListBox in a form. 2.Set the DoubleBuffered property to be true. 3.Insert some items into the CheckListBox. 4.Complie and run the program and check the item in the CheckListBox. you will find some checkbox can not been paint as checked status.

[QC Description]
Microsoft Windows has a Link Select cursor under Control Panel > Mouse > Pointers tab. Scroll to the bottom and you'll see Link Select. This is the cursor that is shown when the user is hovering over a clickable link in a browser. The VCL has never had that cursor as an option in the Cursor property's drop-down list of cursor. The closest thing to it is crHandPoint which looks Windows-95-ish. Can the Link Select cursor please be added to the TCursor type?

Once that is done, ms-help://borland.bds5/delphivclwin32/Controls_TCursor.html would need to be updated because it has this to say about crHandPoint:

"An upward pointing hand cursor. This is normally used to identify a selectable item, such as a web page link."

which has false.
QC Entry 66550

QC #:

Date Reported:

Area:

77100

8/27/2009

VCL\Standard Controls\TComboBox

Description:

Steps:

[QC Short Description]
TComboBox position uncontrollable when BevelKind != bkNone

[QC Description]
The position (Top, Left) or size (Width) of TComboBox are uncontrollable in a strange way if you change BevelKind to values other than bkNone.
QC Entry 77100

trunk rev: 24782
update rev: 24785

Place TComboBox on a form. Then, change the BevelKind to bkFlat. You will see its position or size are being changed wrongly (every time you select the combobox).

QC #:

Date Reported:

Area:

7/28/2009 4:11:53 PM

VCL\Standard Controls\TRadioButton

Description:

Steps:

Fix for flicker in TGroupButton.

See attached.

QC #:

Date Reported:

Area:

7/28/2009 4:24:24 PM

VCL\Standard Controls\TRadioGroup

Description:

Steps:

For TRadioGroup, defer the creation of TRadioButton intances until the window handle is created.

See attached patch.

QC #:

Date Reported:

Area:

BETA

6/14/2004

VCL\System Controls\TTimer

Description:

Steps:

TTimer currently creates a window handle eagerly in its constructor. Each TTimer instance has a window handle dedicated to it.

Optimizations:
#1: Only create a window handle the first time it is needed (when Enabled = True and Interval > 0).

#2: Let all TTimer instances share a single shared window handle. Use the Timer ID as the Self reference (instead of the hard-coded 1 as is used now). (New defect for this one: 272990)

This should reduce resource ussage for applications that use many timers. Note that even Win2k and XP has (articifical) resource limits (max ~10.000 handles).

QC #:

Date Reported:

Area:

77561

9/9/2009

VCL\System Controls\TTrayIcon

Description:

Steps:

[QC Short Description]
TTrayIcon.ShowBalloonHint() does not work correctly on pre-Vista systems

[QC Description]
TTrayIcon.ShowBalloonHint() does not work correctly on pre-Vista systems. This is because the ShellAPI.TNotifyIconData record is larger in D2010 than it is in D2009, and TTrayIcon is setting the TNotifyIconData.cbSize member to the full byte size, which is only appropriate for Vista and later systems. TTrayIcon needs to be updated to check the actual OS version and adjust the cbSize value accordingly, and then not use fields that are outside that size when appropriate.
QC Entry 77561

trunk rev: 24729
updates rev: 24730

QC #:

Date Reported:

Area:

BETA

6/27/2002

VCL\Win 32 Controls\TDateTimePicker

Description:

Steps:

Changing a value (day, month, year ...) by cursor arrow when ShowCheckbox = True causes the checkbox to get focused after each change. This makes using arrow keys nearly impossible for changing values.

Other non-VCL applications using the control (for example Find Message dialog in Outlook Express) does not have the problem.

trunk rev: 24880
update rev: 24881

1. Create New Application
2. Drop TDateTimePicker component on the form
3. Set ShowCheckbox property to True
4. Set the Datemode to dmUpDown
5. Run the application
6. Click on day field
7. Press cursor down key to change the value

This is also a problem for the Kind property set to dtkTime

act: Checkbox gets focused
exp: The day field remain focused

Windows 2000 SP2, COMCTL32.DLL version 5.81.4807.2300

The reason why this is happening is because the control is refreshed and thus the focus shifts away from the field the user just edited.
this happens because VCL sends a DTM_SETSYSTEMTIME message by calling DateTime_SetSystemtime whenever the user changes the time.
This call is redundant because there is no point in telling the window control to update it's time during the processing of a message from it that the time changed.

* Drop a TGestureManager on a form
* Double click, and click Create
* Record a gesture and click the test button
* Try to reproduce the gesture
// Exp: either success or failure reported
// Act: Nothing

QC #:

Date Reported:

Area:

8/3/2009 2:40:23 PM

VCL\Gestures\Recognizer Engine

Description:

Steps:

ChevronUp is recognized as either SemiCircleLeft or SemiCircleRight.

1. Drop gesture manager onto form
2. Hook up gesture manager to form
3. Turn on all gestures for the form and add an OnGesture event handler and add code to check EventInfo.ID
4. Run and try drawing ChevronUp in both directions
//exp: Recognized correctly
//act: Recognized as SemiCircleLeft (or Right) depending on direction.

QC #:

Date Reported:

Area:

8/20/2009 2:31:08 PM

VCL\Gestures\Components\TGestureManager

Description:

Steps:

Executing a standard gesture on a parent control which has a child listening for the gesture results in an AV.

Reported by Eric Gaspard in the VCL newsgroup. Test project is attached.

Reproduced the bug with Weaver RTM on Win XP and Win 7.

Workaround for users who are not using interactive gestures: Set gesture manager property for the form.

TGestureRecorder doesn't block gestures from being passed to it's parent.

If the parent responds to sgiLeft and a left motion is recorded, it will trigger the parent's OnGesture event.

trunk rev: 24918
update rev: 24919

* Run attached application
* Record a "left" motion on the recording surface
// Exp: Caption of form doesn't change
// Act: Caption is changed due to form's OnGesture being called

QC #:

Date Reported:

Area:

9/16/2009 10:55:07 AM

VCL\Touch Controls\TTouchKeyboard

Description:

Steps:

Users cannot overrite keyboard layouts.

1. Open the attached project.
2. It will function because of the two lines:

Layout.KeyboardType := 'Foo';

and

TouchKeyboard.Layout := 'Foo';

if you commented out these two lines then it will fail. A success is there are no Esc and Fn keys.

QC #:

Date Reported:

Area:

7/31/2009 2:21:30 PM

VCL\Touch Controls\TTouchKeyboard

Description:

Steps:

Clicking the right shift key to toggle out of Shift mode is not working right.

1. Drop touch keyboard onto VCL Forms app and run
2. Click Left Shift
//exp & act: Toggled into shift mode i.e. all key captions are in shifted state
3. Click Right Shift
//exp: Both shift keys are shown as released. Toggled out of shift mode i.e. key captions in normal state
//act: Left and right shift keys are shown as clicked. Key captions are in shifted state. I have to click the left shift key to get out of Shift.

QC #:

Date Reported:

Area:

8/4/2009 2:08:32 PM

VCL\Touch Controls\TTouchKeyboard

Description:

Steps:

Memory footprint of touch keyboard layouts needs to be optimized. Currently they are large. They can be cut in half!

QC #:

Date Reported:

Area:

10/14/2009 10:20:48 AM

Debugger

Description:

Steps:

Several AIR reports are showing crashes in the inspector code (used by the Locals view) when either double-clicking call stack frames or shutting down the IDE.

Seems to be related to using Undocked Layout and debugging multi-threaded apps

See 78615, 78499 and 78464

Steps using the work/tp build:

Start the work build
Switch fo Classic undocked layout
Set Debug Desktop to None
Load GalileoGroup.groupproj
Open tp\app\coreide\ParserThread.pas
Set a breakpoint on the "Parse;" call on/near line 180
Run
In debugged IDE, create a new Delphi VCL app
The breakpoint will be hit
Open the call stack view
Double click the second item in the call stack (if asked, give the path to tp\rtl\common\Classes.pas)
Double click the second item in the call stack (if asked, give the path to tp\rtl\sys\System.pas)
File | Exit to close the work (debugger) IDE
Click OK on Terminate Debugging prompt
IDE will crash on exit

============
Impossibility to use the visualizers with generic classes.

Envision this situation: I have a new class called TBox<T> which can contain a value of any other type.

TBox<T> is derived from TBox and TBox exposes non-generic properties I can read in a debug visualizer (e.g. TBox.ToString());

If I register TBox for visualizing and set AllDescendants to true, still, nothing changes. If I register TBox<string> directly then it works.

If I typecast TBox<string> to a TBox then I can see th value in the visualizer.

see description

QC #:

Date Reported:

Area:

9/14/2009 2:46:42 PM

Debugger\Execution

Description:

Steps:

Debugger generates millions of stack entries while debugging with the steps.

Comments from Andreas:

A call stack with over 2 million items looks suspicious to me. And the 3 access violations in browdbug.c that were raised before I spotted the huge call stack doesn't make things better.

What was I doing:
I'm trying to nail down the undo bug (garbage characters in the editor) for which I now have 100% reproducible steps (thanks to Arno Garrels
[weaver.ide.general: How to crash the IDE in a few steps]. During debugging I came to the ek_ins.c:EditKernel::EditableRange() method which calls EditKernel::QueryNotifyEvent() what brings us to EditorBuffer.pas:QueryEventHandler(). And in the moment I enter the last method the debugger throws 3 access violations in browdbug.c. After that the call stack tree wants to allocate more than 2 million nodes.

Start Work IDE (W1)
Start TP IDE in Work IDE (active project: bds.exe) (T1)
Start another Work IDE and attach it to the first Work IDE. (W2)
In TP IDE: Create a new Delphi VCL application
Drop a TButton on the form
Double click the Button
Type Space Space "asdf"
Double click "asdf" (select it)
Switch to W1 and open tp\editkernel\ek_util.cpp
Set a breakpoint in EditKernel::QueryNotifyEvent() at the "pEvent->EventProc(..." line.
Switch to T1
Press DEL to delete the selected text
IDE stops at the break point
Press F7 (Step into)
W2 shows an access violation in browdbug.c
"if (ce->varLoc->h.frameFlags == FF_NONE)"
because "ce->varLoc == NULL" => AV

QC #:

Date Reported:

Area:

78575

9/16/2009 9:28:36 AM

Debugger\Execution

Description:

Steps:

On Windows 7, running under the debugger often causes the debugee to crash on shutdown.

This manifests when debugging the IDE in the IDE and in the simple DB application which is attached.

Load the attached project and run it.
Wait about 30 seconds and then shutdown.
Repeat if necessary.
Usually after 2 or 3 runs it crashes on shutdown.

QC #:

Date Reported:

Area:

8/24/2009 4:50:05 PM

Debugger\Remote Debugging

Description:

Steps:

loading remote symbol file on delphi side is failing. No debug info is found for executable even when the .rsm file is in the same directory.

Open up attached project in Rad Studio.
In project options, under Delphi Compiler | Linking set Debug Information to True and Include Remote Debug Symbols to true.
Hit OK.
Build project and save.
Copy the .rsm and the .exe file to a directory called c:\temp\remote
Open up a cmd window.
Navigate to the Rad Studio\7.0\bin directory
Launch the remote debugger using the following command:
rmtdbg140.exe -listen
In the IDE, select Run | Load Process.
Select Remote.
For Remote path, set it to: c:\temp\remote\RemoteDebugTest.exe
for Remote host, set it to: localhost
Click Load
Open up Modules view and notice the symbol file never got loaded.

QC #:

Date Reported:

Area:

11/2/2009 5:09:28 PM

Debugger\Inspector

Description:

Steps:

Unable to terminate an app if there is an inspector open

Create a new Delphi VCL app
F8 to step past the "Application.Initialize" call
Create a debug inspector for "Application"
Ctrl-F2 to try to terminate the app

Having duplicate external viewer visualizers where both return "AllDescendants=True" causes duplicate menu items to appear when showing the visualizer menu

Uninstall the samplevisualizers140.bpl package
Take the attached source, add it to a package and install the package
Open attached Project1
F8 4 times to step the "end."
Add a watch on "SL"
In the watch view. click the Visualizer glyph

EXP: The menu has three items in it (two "TStrings" items and one "TStringList" item)
ACT: The menu has five items in it -- the two "TStrings" items are each shown twice

QC #:

Date Reported:

Area:

10/23/2009 1:51:04 PM

Debugger\Debugger UI

Description:

Steps:

If a TStringList instance gets freed while you have the string list visualizer open for it, the visualizer will start throwing "List index out of bounds" errors.

Set a BP on the "SL.Free" line
Run to hit the BP
Watch "SL"
Click the visualizer glyph to open the string list visualizer
F8 to step over the "SL.Free" line
Click in the visualizer to refresh it

List index out of bounds!

QC #:

Date Reported:

Area:

9/14/2009 2:09:46 PM

Debugger\Debugger UI

Description:

Steps:

For Local Variables View, Watch List View, Evaluator Tooltips and the Evaluate\Modify dialog, if there is only one external viewer visualizer installed for a given variable, clicking the visualizer glyph should show that visualizer without having to select a menu item. The menu should only be shown if there is more than one visualizer installed for the variable

Look at a TStringList in the Watch, Locals, Eval/Modify dialog and Eval tooltip. Click the visualizer glyph

EXP: The default TStringList visualizer should be shown
ACT: A menu with one item is shown

QC #:

Date Reported:

Area:

8/31/2009 1:33:36 PM

Debugger\Evaluator ToolTips

Description:

Steps:

The visualizer glyph in the evaluator tooltip is cut off at the top

Create an app that uses a TStringList instance
Debug it, and hover the mouse over the TStringList instance
Note that the glyph that indicates the presence on an external visualizer is cut off ot the top
See attached screenshot

QC #:

Date Reported:

Area:

77226

8/31/2009

AddOn\Interbase components

Description:

Steps:

[QC Short Description]
IBX Not reporting correct Interbase Error Number

[QC Description]
I think I have run into a bug in the latest version of IBX that came
with Delphi 2010. IBX is returning a different error code under a
specific situation than it used to in D2009

Basic details; I was creating a trigger, and the trigger purposely was
referencing an invalid column in the database. Under D2009, IBX
properly reported a -206 error (column not found error). Now under
D2010 it reports 66 (Use Open for Select Statement).

I think I have found the change in IBX that caused this. It may have
other side effects on other IB errors as well..(not sure how bad this
actually is - for me its bad though)

As you can see, the call to isc_dsql_prepare, which generates the
proper interbase error (-206), when it raises this exception, it gets
gobbled up by the try/except which sets the length of the bt buffer to
0. I really think this should also re-raise the exception generated by
isc_dsql_prepare. The older IBX code does not have this try/except, so
the interbase exception -206, makes it out to the outside callers.

If I am correct here, then I have a problem that I am going to have to
figure out a workaround for until a fix is made.
QC Entry 77226

Create an interbase table to a database: CREATE TABLE TESTTABLE ( FIELD1 INTEGER NOT NULL, FIELD2 INTEGER NOT NULL); Now, Using IBX components, IBDatabase, IBTransaction, IBQuery, attempt to execute the following DDL query: CREATE TRIGGER TESTTRIGGER FOR TESTTABLE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF ((NEW.SEQ IS NULL) OR (NEW.SEQ = 0)) THEN begin /* Do something dumb just for illustation*/ new.seq = 100; end; END When executing this DDL query, IBX should report a -206 column not found error. But it just generates a 66 (use Open for a Select Statement)

QC #:

Date Reported:

Area:

77524

9/8/2009

AddOn\Interbase components

Description:

Steps:

[QC Short Description]
IBX Not handling new data types in D2010

[QC Description]
I have ran into an area where IBX is reporting a "Unsupported Feature". This bug is similar to bug #77478, but just in a different area

In IBQuery.pas -
procedure TIBQuery.SetParams;

There is a case statement to deal with all the different Param Datatypes. It fails to check for ftShortInt and raises an Unsupported feature exception.

It appears that the IBx code should be checked everywhere it is looking at field data types to ensure that they account for any new types in D2010.

[QC Short Description]
IBX: TIBStoredProc not working with WideString-Param in D2010

[QC Description]
Hello,
I just installed Delphi 2010. In my projects I am using TIBStoredProc with ExecProc. The IB-Database uses "UNICODE_FSS".
When a Param is "WideString" an exception comes up (ibxeNotSupported).

I think it is a problem of "TIBStoredProc.SetParams". WideString is missing in the case block.

1. intall VCL for the Web Verion 10.0.6 http://downloads.atozed.com/intraweb/iw10.0.6.exe 2. create VCL for the Web application with Standalone mode 3. add a IWEdit, a IWLabel and a IWButton on the form 4. add OnClick event handler of IWButton as below procedure TIWForm1.IWButton1Click(Sender: TObject); begin IWLabel1.Caption := IWEdit1.Text; end; 5. build and run it 6. input Japanese Kanji characters as attached screenshot, 'before.jpg' 7. click Button 8. the Japanese Kanji characters are corrupted as attached screenshot, 'after.jpg'

QC #:

Date Reported:

Area:

76849

8/19/2009

Internet\CGI Application

Description:

Steps:

[QC Short Description]
Raw POST data not available in TWebRequest

[QC Description]
When a POST request is set to a WebBroker-based CGI application, the raw submitted content is not present in the TWebRequest.RawContent property.

The data is available at the ContentFields property.
QC Entry 76849

1. Extract the attached project. 2. Open and build the project. 3. Configure IIS to execute the project as a CGI application 4. Using a web browser, navigate to the CGI application. 5. Click the Submit button on the shown form. Expected: The form to be submitted, and the submitted data to be shown next to the Raw data submitted label. Actual: The form submits, but the data only shows at the Parsed data submitted section.

QC #:

Date Reported:

Area:

9/10/2009 2:42:30 PM

Internet\XML\Data Binding

Description:

Steps:

When Schemas contain a cycle, our Schema handling goes into an endless loop of opening the files [well, eventually - after 49 mins on my machine - it comes back].

NOTE: This was reported against SOAP for a WSDL that used the schema mentioned.

Looks like somebody forgot to send the -fo option with quotes to the rc.exe.

This bug also affects Delphi/C++Builder 2009
QC Entry 75913

1. Open the attached project 2. Verify that the resource compiler is set to "Windows SDK Resource compiler" in the project options dialog 3. Build the project Expected: The project compiles Actual: cgrc.exe fails with [BRCC32 Fehler] My Test.rc(1): invalid usage; use RC /? for Help

QC #:

Date Reported:

Area:

9/9/2009 9:57:12 AM

ActiveX\IDE\Import ActiveX Control/Type Library

Description:

Steps:

Keyboard shortcuts do not work in the Import type library wzard.

Missing FocusControl for various labels

Start IDE
Component | Import Component
Choose Delphi, Next
Choose Import a Type Library, Next
Choose any type libaray, Next
On this page, try to use any of the keyboard shortcuts for any of the labels

Expected: data should get filtered and only 1 record should be visible.
Actual: Type mismatch in expression.

- Press Test2

Expected: data should get filtered and 2 records should remain visible.
Actual: sometimes "Type mismatch in expression". Other times "Access violation at address 4DB1E8D1 in module 'midas.dll'. Read of address 00FC00BF."

- Press Test3

Expected: data should get filtered and 2 records should remain visible.
Actual: no records are visible.

Of course, all these worked with normal strings.

QC #:

Date Reported:

Area:

77733

9/15/2009

Midas\TClientDataSet

Description:

Steps:

[QC Short Description]
TClientDataSet does not stream out "empty" TWideStringField values properly

The procflag (not the paramflag) set to message means that this procedure is involved with the
messaging process and must be exposed to external resources. That is why it's Delphi compiler
output looks like this:

Now, I can use the procflag="message" to treat these messaging procedures as private. Allen
says that there is no reason to document any of these procedures. This would eliminate
empty method pages and links in the class methods pages. Unfortunately the procflags
attribute is not in the ancestor infomation for these procs. So I can't remove them from the
"Inherited members" pages.

1. Build ComComctrls.pas with --doc

2. Look for the <methodref name="CMColorChanged" ... > element

exp: Expect the procflags="message" attribute
act: It's missing. It only appears in the <method ...> element.

QC #:

Date Reported:

Area:

8/13/2009 3:54:55 PM

Compiler

Description:

Steps:

Visibility information in the compiler output is wrong.

Many class members, like:

ComCtrls.TCustomListView.CMColorChanged

have a visibility attribute in the comiler output of public. This method is listed in the private section of the TCustomListView declaration in ComCtrls.pas.

Visibility is used by the documentation scripts to decide what class members should appear in the RAD Studio Help, populating the Help with thousands of empty pages for private members.

The problems are seen by just listing these units in a uses clause, even if the generic types are not used.

This was originally reported against D2009 and D2010 by Alex at AutomatedQA. It is preventing them from properly supporting both D2009 and D2010 with AQTime.

Attached are three projects all set to produce TD Debug info. No problems are seen in standardexe.exe

If you build and then tdump either controlexe.exe or problemexe.exe, you'll see problems.

See email thread copied into comments for more thorough description and discussion.

QC #:

Date Reported:

Area:

9/10/2009 3:01:54 PM

Compiler\Delphi\Code Generation/Optimization

Description:

Steps:

The copiler generates wrong code if a package containing generic classes is mixed with code from normal RTL units.

CLARIFICATION:
- Using the trunk build (debug).
- No problmes on an older Weaver build (integration)
- No problems in any Tiburon version.

The attached archive contains a portion of a library (trimmed down a big) plus an test executable in the same groupproj.
The executable uses the package from the same group and imports a class: TList<T>. The written TList<T> is used in paralel with Delphi's GC.TList<T>.

Generates an AV because in the call chain a virtual call fails (code-gen problem). If the suggested line is commented out (List: Generics.Collections.TList<Integer>; // << COMMENT ME) everything
works fine.

There are several places in which this effect produces problems - most notable in the original's code DUnit tests.

QC #:

Date Reported:

Area:

76667

8/13/2009

Compiler\Delphi\Execution

Description:

Steps:

[QC Short Description]
Internal Compiler Error when generating header definition for a subset of an enumeration

[QC Description]
TComponent Interface functions like _AddRef or _Release are "redirected" to TInterfacedObject when a class helper for TComponent or a TComponent descendant exists.
This is regression from D2007, but it happened already in D2009. This issue can lead to unexpected behavior, because components are destroyed when the interfaces are released.

-> see steps

Original short description: Corrupted component interfaces
Original description:
I am running into a very strange bug with interfaces. Unfortunately it seems that i can only reproduce this on my product which is about 200000 lines of codes making impossible to supply a code for reproducing. I'll try to describe what happens in pseudo code bellow

Type
a = class(tcomponent)
b = class(a, IAnyInterface)

var
myobject: b;

implementation
in my code i a getinterface call on objects eg
myobject.getInterface(IAnyInterface, ivar)

The problem is that in function TObject.GetInterface(const IID: TGUID; out Obj): Boolean;

the statement
if Pointer(Obj) <> nil then IInterface(Obj)._AddRef;
Results to a call to TInterfacedObject._AddRef insteand of TComponent._AddRef. This behavior occurs only with 2010 while 2007 and 2009 work as expected.
This causes the object to be freed and crash the app.
My application dosen't work with d2010 while worked as expected with d2007 and d2009
QC Entry 77285

[QC Description]
If i define a generic class with two generic types like TClass<A,R> and i define a function GetSomething(const I: R):A this function will destroy loose the stack frame of the previous call.

See the example that is a console application.
QC Entry 78433

(JJS: Changing the calling convention for TGenClass<>.GetItemByReference to stdcall, pascal, or cdecl seems to workaround the problem.)

[QC Description]
Update DirectX headers to the latest version from http://tib.s.songbeamer.eu/downloads/DSPack.zip

Changes include an update to the latest DirectX version, some bugfixes and some unicode bugfixes.

Care should be taken because of bugfixes that are in the codegear version of the units, but not in the dspack DirectX units. Also the dspack DirectX units are using a newer version of the d3dx9_33.dll dll.
QC Entry 78157

It just worries me that a simple API suddenly takes about 0.5 millisecond to execute and am wondering if other APIs are effected by this as well.

In the mean-time someone else found out that this is apperently caused by a SetThreadUILanguage call in D2010 which sets some flag in Windows Vista which makes GetTimeZoneInformation call tzres.dll on every call instead of only a few times in all the loops. On XP, only 0 is allowed, so there, LOCALE_INVARIANT is not used anyway.
Note: this will not happen when you remove SysUtils from the above code.

Also see attached projects: 1) Open Project1 in D2009 and compile and run it. 2) note execution time 3) Open Project1 in D2010 and compile and run it. 4) note execution time When running on Vista (x32 or x64) you'll see a huge difference between the two execution times. 1) Open Project2 and compile and run in D2010 2) note execution time 3) Open Project2 and activate the $define USE_LOCALE_INVARIANT and compile using D2010. 4) note execution time Again when running on Vista (x32 or x64) you'll see a huge difference between the two execution times.

QC #:

Date Reported:

Area:

78497

10/8/2009

RTL\Delphi\RTL Exceptions

Description:

Steps:

[QC Short Description]
REGRESSION

If simple program raises exception during initialization then program will consume all stack in _ExceptionHandler until it crashes

QC Entry 78497

Steps by USc: - save the attached files from dir "simplified" - dcc32 InitializationTestProject.dpr - execute InitializationTestProject.exe expected: output is Exception Exception in module InitializationTestProject.exe at ... Just an exception. actual: with Tiburon or Weaver till FT build 3494 (revision 23552): as expected with Weaver since FT build 3505 (revision 23995): "InitializationTestProject.exe has stopped working" in Vista (free translation of DE message) Original steps (uses the project from dir "original"): Firstly it is not special project. Just project with couple of units and last one raises exception in initialization. So I basically added only one line which produces code : raise Exception.Create("Bla") 1. Open attached project 2. Run it under debugger 3. When program raises exception press Continue 4. Then program crashes because stack I believe overlaps code. Anyway you can compile it with debug dcus and put breakpoint at first line in _ExceptionHandler in system.pas you will see that it calls itself indefinatelly. 5. If you run application without debugger it will display that dialog that program ecountered problem indefinatelly until you kill it in task manager. This happend in RTL and Beta Update 2 In D2009 the same code works fine.

QC #:

Date Reported:

Area:

9/8/2009 2:36:39 PM

RTL\Delphi\File Management\TFile

Description:

Steps:

TFile.ReadAllLines()
TFile.ReadAllText()

Both return the file BOM bytes in the result.

(JJS: Test case fails in 14.0.3553.24818)
(JJS: SVN Log indicates fix will not be seen until rev. 24822 is delivered)

It would seem to me that in the else branch, the first condition of the if will never be true (LEncoding=nil there and can thus never be TEncoding.Default) and therefore the Encoding will never default to UTF8...

Notice: an error saying -SOAP11 is not a correct commandline option
Exp: It actually imports the wsdl (also the created pas file should have "// Codegen : [wfForceSOAP11+]" near the top saying we forced SOAP 1.1)

QC #:

Date Reported:

Area:

9/30/2009 7:39:00 PM

SOAP\WSDL Importer

Description:

Steps:

Importing WSDL's with circular imports causes infinite loop in several places in the WSDLItems.pas . Eventually an "Out of memory" error is thrown.

This also occurs when you use the object inspectors drop down menus on a THTTPRio

3) In the Object Insp for the THTTPRio, assign "https://testwebservices.qualifood.de/Klassifizierer/SchlachtdatenUploadSW.svc?wsdl" to the WSDLocation field

4) Click on Service's Property drop down menu

3) Notice Out of memory exception and infinite looping

[NOTE: FROM BRUNEAU:
Using Case#2 above is AV'ing for me currently. I've created a new RAID for that: 273169]

QC #:

Date Reported:

Area:

8/18/2009 2:11:09 PM

Modeling

Description:

Steps:

Relate to 272520? or build problem? or missing file delivery?

Edit hyperlinks for diagram dialolg is missing translation (and one truncation for DE) though resources are translated in database, see attached screen shots and confirm translation for the follows example using resource Editor 2.0.

[vk] Text truncation in the German dialog fixed in svn rev.24566-24567. All other - is request to the localization team: TgNET\InternalAPI\UI\Choosers\AdvancedChooserDialog.resx is not translated. Messahe to [marray ]written.

1.create a VCL delphi application
2.select modeling support
3.Open diagram by Right Click on projects name
4.Add Namespace
5.add class to this namespace. double click on it
6.add two classes to the namespace and a aggregation link betweeen them.
7. Select the association and check the properties window, type. aggregation should be translated (agr�gation)

Create ModelSupport folder in correct place on adding modeling after to second and next project in a project group.

1. create a project
2. save it to non-default place
3. add modeling support - it's added ok
4. add another project to this group
5. perform Save All command -> save the second project and the project group in some non-default places.
6. add modeling support for the second project - ModelSupport folder is created in Document and Settings/current user/My Documents/RAD Studio/Projects folder, but it should be created in the same folder where the project file is saved.

The case when this bug is not repeatable:
1. create 2 projects
2. save all - in non-default places, exactly as it was done in first scenario.
3. add modeling at once to both projects - ModelSupport folders are created ok in both projects.

Note: this bug is critical for multi-project automated tests.

QC #:

Date Reported:

Area:

10/19/2008 1:07:43 PM

Modeling

Description:

Steps:

Modeling create a spurious user property when adding a typedef

1. Create a new Delphi win32 VCL forms
2. Save as Project1 / Unit1
3. Add a new unit, save as Unit2
4. Click on modelview, accept modeling
5. In model view, expand project1 and right click unit2, select open diagram
6. Right click on the diagram and select add typedef
7. Change default value to TMyInt:System.Integer
8. Show to object inspector having your just created typedef selected
9. Enter MyInteger in the Alias property
10. Click again in diagram to reselect your typedef
11. Look at the Object Inspector: you have now TWO alias properties. One with an uppercase "A" and one with a lower case "a". One is in
"General" catagory, the other is in "User properties" category (you see or not categories when right click on OI and selecting sort order.
Expected: No user property created.

Lack of sections can result to erroneous audit messages.
For example: FNI
The same concerns to metrics, e.g. MNOB and others.

Note:The same concerns to 'Search for Usages' functionality, search usages of global functions in initialization part, for example

QC #:

Date Reported:

Area:

9/18/2007

Modeling\Class Diagram

Description:

Steps:

Delphi Win32 and .Net: show on interface icon parent interface name if the latter is absent in the diagram.
Expected behavior works ok on class icon.

In both cases below parent interface name (N1.I2 or S.I2) should be shown in the source interface icon (I1), if target interface is not shown in the same diagram with source interface (I1).
case 1:
I1 = interface(N1.I2) {target interface is located in another namespace}
end;
case 2:
S = record
type I2 = interface
end;
end;
I1 = interface(S.I2) {target interface is inner interface}
end;

QC #:

Date Reported:

Area:

9/11/2009 10:51:22 AM

Modeling\Class Diagram

Description:

Steps:

Nested namespaces. When user d&d element from nested namespace to current diagram place, element must be placed at the point where mouse click executed. At that time element is placed at the top of diagram independently of point where we click.

[QC Description]
QA audits warns me about one global variable in a unit which is uninitialized. It's a integer and in the initialization section of this unit it gets initialized.

The only thing I could think about is if another unit uses this one and could have access to the var before the initialization section of the unit is run. Can this be? If not this check isn't yet intelligent enough in my eyes.
QC Entry 73047

Delphi Metric CC should count accordingly to definition:
A less formal definition is:

CC = D + 1

where D is the number of binary decisions in the control flow graph, if it has only one entry and exit. In other words, the number of if, for and while statements and number of logical and and or operators.

Create an empty unit
run for it NOM metric with Count Ancestors = True

result: 29
but 0 is expected.
@unitclass has no parent and so has no inherited members.

ordinar class has an implicit parent TObject, but @unitclass has no it.

QC #:

Date Reported:

Area:

9/17/2009

Modeling\Metrics

Description:

Steps:

Delphi Metrics: IUR should not count
1. strict private virtual methods as inheritance-specific always
2. private virtual methods as inheritance-specific if a child and parent classes are located in different units.

Delphi .Net and Win32: NOAM and NOOM metrics should have the same value for case when they are not applicable. Now for a class without a parent NOAM returns -1 and NOOM - 0. It should be better to have -1 in both cases.

QC #:

Date Reported:

Area:

9/28/2009

Modeling\Metrics

Description:

Steps:

Delphi Audits and Metrics: second and next runs should show some values. Now only empty window in shown.

1. run bds, create a project
2. run metrics first time
3. Metrics window is shown with some results. Ok.
4. close the window with the command "Close All" from tab context menu in Metrics window - this is critical point
5. now run the same metrics again - Metrics window is shown empty.

Now close the project, create a new one, open a pas file and run metrics - Metrics window is empty again.
Only restart BDS helps.

The same happens with Audits.

[vk] This is side effect of "fix" rev.24786 (bug #272184). Changes rolled back in the trunk rev.24900, in the branch rev.24901

QC #:

Date Reported:

Area:

10/3/2007

Modeling\Metrics

Description:

Steps:

Delphi .Net and Win32: NOA (Number Of Attributes) Metric: no constant should be counted if "Count constants" option is false. Now they are counted always.