D2007 Update 1 - List of QC reports

By: Chris Pattinson

Abstract: List of QC reports fixed in Delphi 2007 Update 1 (101)

A major update to Delphi 2007 is coming soon to an online update near you.

Over 300 fixes made to Delphi as part of the Cogswell release, which includes 102 reports from Quality Central. It's been about three months, and we made several major improvements in Vista support (the forms.pas fixes we've had under test for quite some time) and major improvements in the documentation system (take a look at the index and try searching by using the new filters).

There have also been additional fixes to memory leaks and IDE stability. It's a mixed bag, with some goodness for everyone.

This update is expected to be made available using the 'Check for updates' mechanism included as part of the new installer, as well as available for download online. More details to be announced soon.

Document updated June 14, 2007 – Moved Documentation to the bottom per community request and changed RAID identifiers to QC identifiers CP

    43477

QC#

Area

43477

IDE

Description:

[QC Short Description]
editor or welcome page has incorrect size after maximize, minimize and restore

[QC Description]
*Vista Only*: after maximizing, then minimizing and finally restoring the IDE, the editor area has the wrong size and empty space is left

See attached screen shot.
QC Entry 43477

    43092

QC#

Area

43092

IDE

Description:

[QC Short Description]
BDS does not show on Task Manager applications list

SB: XP only

QC Entry 43092

    32650

QC#

Area

32650

IDE

Description:

[QC Short Description]
IDE Exception dialog: Call stack should be included with copy to clipboard

[QC Description]
The IDE Exception dialog supports Ctrl+C to copy the error message to the clipboard.

Unfortunately the clipboard copy does not include the call stack which is shown in the details.

When manually posting QC reports (and not using AIR) the call stack has to be copied manually which is cumbersome.

See Steps.
QC Entry 32650

NOTE: if you highlight the call stack, you can get it. it just takes a second step.

    43097

QC#

Area

43097

IDE\Dialogs

Description:

[QC Short Description]
Text display problems on Tools->Options

QC Entry 43097

    40821

QC#

Area

40821

IDE\Dialogs

Description:

[QC Short Description]
Confirmation dialog to add BPL path to the PATH environment variable is wrongly translated

[QC Description]
After installing build Spacely 2603, the first dialog that popups when the IDE is launched is badly translated.

It contains:

"Votre destination package Delphi pour win32 actuel ne fait pas partie de votre chemin syst me.
Pour utiliser les packages d' x cution construits dans ce r pertoire,
il faut que ce r pertoire soit dans votre chemin . Voulez vous l'ajouter maintenant"

It should rather be:

"Votre r pertoire contenant les paquets Delphi pour Win32 n'est pas pr sent dans votre chemin syst me. Pour utiliser ces paquets d' x cution il faut que ce r pertoire soit pr sent dans votre chemin syst me. Voulez vous l'ajouter maintenant ?"

screenshot attached
QC Entry 40821

// Francois Piette
This report is a duplicate of 244531 which is NOT resolved !

    44770

QC#

Area

44770

IDE\Dialogs\Project Options

Description:

[QC Short Description]
"Linker output" option resets after closing & reopening project

[QC Description]
When a project's "Linker output" option is changed, it resets to "Generate DCUs" after the project is closed and reopened. See Steps.

Delphi 2006 does not have this problem.
QC Entry 44770

    42948

QC#

Area

42948

IDE\Dialogs\Project Options

Description:

[QC Short Description]
Record Field Alignment Option not saved

[QC Description]
The Project Option "Record Field Alignment" (see Compiler page in Project, Options) is not saved properly. When opening a previously saved project it always reverts to 8. See Steps.
QC Entry 42948


Support Case 668452

http://caseviewer.borland.com/CaseViewer/CaseDetails.jsp?caseNumber=668452

    40074

QC#

Area

40074

IDE\Dialogs\Project Options

Description:

should remove "Windows Forms designer" from the Tools | Options dialog

    43475

QC#

Area

43475

IDE\Project Management

Description:

[QC Short Description]
Automatic conversion of .bdsproj to .dproj fails to convert $Z (DCC_MinimumEnumSize)

[QC Description]
When upgrading an BDS2006 .bdsproj file to the new-style .dproj file, the value in DCC_MinimumEnumSize is set to True, which cannot be interpreted later on during compilation.

This happens whenever the original .bdsproj file mentions the compiler option Z, with a value of 2 or 4 (the default value, 1, doesn't result in a DCC_MinimumEnumSize value in the .dproj file).
Note that compiler option A (which also needs a value of 1, 2 or 4) maps correctly to DCC_Alignment.
QC Entry 43475

    44777

QC#

Area

44777

IDE\Project Management

Description:

Child forms are not recreated together with the main form when MainFormOnTaskbar is True. Instead of being recrated the handle is destroyed, bypassing the DestroyWnd method which allows components to persist properties.


** Original description **

[QC Short Description]
ComboBox looses Items

[QC Description]
A TComboBox may loose all its Items. This is happening for all forms of the project which is automatically loaded when the IDE starts (so AutoSave Desktop needs to be enabled) and these forms had been in Code View when the desktop was saved.
QC Entry 44777

    43569

QC#

Area

43569

IDE\Project Management

Description:

[QC Short Description]
Environment variables not expanded/recognized at compile time.

[QC Description]
Setting an environment variable, such as NX, and using the environment variable in the library path, such as $(NX), is not recognized at compile time.
QC Entry 43569

[Additional Note: This is a MSBuild regression]

    43052

QC#

Area

43052

IDE\Project Management

Description:

[QC Short Description]
Switching between Debug and Release doesn't cause a recompile when project is run

[QC Description]
When you change a freshly compiled project from Debug to Release configuration, running it does not cause a recompile which would be necessary for the release settings to take effect.
QC Entry 43052

    40744

QC#

Area

40744

IDE\Code Editor

Description:

[QC Short Description]
Caret positioned one character further left of compiler error position

[QC Description]
If you compile a program with an error, the caret normally is positioned at the beginning of the faulty identifier.
With Spacely 11.0.2593.4239 the caret is positioned one character further left.
QC Entry 40744


[Additonal Note: This is an MSBUILD specific problem]

    44894

QC#

Area

44894

IDE\Code Editor\Error Insight

Description:

[QC Short Description]
Delphi 2007 IDE suddenly disappears while typing

[QC Description]
While typing "Row.LineB := #" the IDE disappears when the #-key is pressed. (Row: TStrings)
QC Entry 44894

    43597

QC#

Area

43597

IDE\Code Editor\Help Insight

Description:

[QC Short Description]
Help insight 'Object reference not set' errors with dotted filenames on search path

[QC Description]
If the uses clause contains a dotted filename that is on a project's search path but not added to the project, moving the mouse over the filename before the dot causes an 'Object reference not set to an instance of an object' error.
QC Entry 43597

    42529

QC#

Area

42529

IDE\Tool Palette

Description:

[QC Short Description]
Icon scrambling and unpredictible error messages in palette.

[QC Description]
By activating and deactivating component packages, while moving their sections up and down in the palette, I can get the icons to get scrambled (icons from a turned off set of components replacing those in the section that was below it). I can also get access violations, invalid pointer operations, priveleged instruction errors, and other random errors that often cause Delphi to crash.


SYSOP (transferred from comment)
=====================
The steps window keeps letting me add more text than it actually saves. Here's the second error dialog that produced the second data dump.


Error
---------------------------
Access violation at address 20006A04 in module 'rtl100.bpl'. Read of address FFFFFFDC.
QC Entry 42529

    41681

QC#

Area

41681

IDE\Form Designer

Description:

[QC Short Description]
Minimising D2007 whilst in undocked mode leaves forms visible

[QC Description]
Running on Vista Ultimate with the IDE in undocked mode and the vcl designer NOT embedded. Installed on a machine with BDS2006 already present and functioning correctly.

When minimising D2007 everything 'disappears' to the task bar with the exception of any open forms which remain on screen.

On about a 50/50 spilit, D2007 will restore correctly or restore without the Object inspection/Project manager/Tool Palette etc. If it fails to restore these windows a restart of the IDE is required.
QC Entry 41681

    42338

QC#

Area

42338

IDE\File Handling

Description:

When using Ctrl+Enter in the code editor to open a file, the IDE is not able to open an INC file because that extension is not found in the default filetype field in the open file dialog box. You have to manually select the inc file type to have the IDE "see" the inc file. Annoying !

It is expected to have the IDE be able to open anyfile is can find, whatever the extension is. This is specially true for inc files which are frequently used.

// Francois Piette
See also QC42338 which is probably the same issue.

// Francois Piette
Fixed in 2671

    42808

QC#

Area

42808

IDE\Code Templates

Description:

[QC Short Description]
Automated Incident Report

[QC Description]
List index out of bounds (15)

In a fresh RTM install of D2007, invoking certain code templates lead to a List Index Out of Bounds error.
QC Entry 42808

    33315

QC#

Area

33315

IDE\Code Browsing

Description:

[QC Short Description]
ctrl+shift+up/down command doesn't work in some classes with nested types.

[QC Description]
When I use nested types in classes then in special cases (really I cannot understand the causes) ctrl+shift+up/down doesn't work.
Some times catastrofic failure happens and IDE closes. This is the error stack

+ $A[20CB0BA6]{coreide100.bpl} StructureView.StructureView.TStructureViewServices.EditorViewChanged (Line 468, "StructureView.pas" + 18) + $A
+ $0[51F2A2A5]{rtl100.bpl } System.System.@CheckAutoResult (Line 18061, "system.pas" + 6) + $0
+ $19[20BF6FF3]{coreide100.bpl} EditorForm.EditorForm.TEditorViewsChangedEvent.Send (Line 4408, "EditorForm.pas" + 3) + $19

See steps.
QC Entry 33315

    43130

QC#

Area

43130

IDE\Desktop Layouts

Description:

[QC Short Description]
Under undocked mode the main Delphi window is improperly sized after a minimize/restore

[QC Description]
In undocked mode, the main Delphi window (where the main menu and toolbar live) will have its height improperly set after minimizing and restoring Delphi.

For this problem to occur, the Classic Undocked desktop must be selected, and the main Delphi window must be maximized.
QC Entry 43130

    32108

QC#

Area

32108

IDE\Desktop Layouts

Description:

[QC Short Description]
Resizing maximized editor window causes erratic behaviour

[QC Description]
When using the size grip on the bottom right corner of the editor window while it is maximized, apparently a panel is resized causing the status bar to become unusable and showing the text 'Panel2'

QC Entry 32108

    21953

QC#

Area

21953

IDE\ToDoList

Description:

[QC Short Description]
Priority information in To-Do List is lost

[QC Description]
When editing an existing ToDoList item, the priority shown in the edit dialog is incorrect. If you apply changes with this dialog, the original priority is overwritten.
QC Entry 21953

    41917

QC#

Area

41917

IDE\Help

Description:

[QC Short Description]
DEXPLORE.EXE not closed upon exit

[QC Description]
DEXPLORE.EXE reside in a memory after closing Delphi,


Merging new content help into Delphi help system will not succeed unless DEXPLORE.EXE will be restarted. Without restarting DEXPLORE.EXE help will look corrupted (no content). It could be a problem for component vendors because closing Delphi will just not be enough.
QC Entry 41917


RAID248730

    42640

QC#

Area

42640

IDE\Help

Description:

[QC Short Description]
Garbled characters within a help topics selection dialog

[QC Description]
In a help topics selection dialog, the Japanese string of a title column is garbled.
For example, when F1 key is pushed on 'ShowMessage' in an editor, the 'routine' of a 'ShowMessage routine' is garbled.
QC Entry 42640

[See #247168 - TArisawa]

    42237

QC#

Area

42237

IDE\Help

Description:

Help by F1 Doesn't work at all in object inspector for Modelling projects!!!


[QC Short Description]
Rapport d'incident automatis

[QC Description]
Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Borland.Studio.Interop.IManagedHelpTrait'. Cette op ration a chou , car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{46C3FC48-A04A-369C-B79E-93C74BDE67D3}' a chou en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE))

Hit F1 when in the object inspector for property "since" when in model view mode.
QC Entry 42237

[SpUpdMF]

// Francois Piette
I still see this in Cogswell 2664

// Francois Piette
I still see this in Cogswell 2671

    45149

QC#

Area

45149

IDE\Unit Testing\Test Case Wizard

Description:

[QC Short Description]
No task bar entity for test case app

[QC Description]
Severity 1 - but actually highly INvisible problem!
QC Entry 45149

    43021

QC#

Area

43021

IDE\Unit Testing\Test Case Wizard

Description:

[QC Short Description]
Catastrophic failure when creating unit test

[QC Description]
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
QC Entry 43021

    41079

QC#

Area

41079

IDE\Memory Issues

Description:

[QC Short Description]
using safemm, changing selected unit in the ide causes a read-AV

[QC Description]
see steps

this one doesn't have a guaranteed-to-fail set of steps, but is relatively easy to cause. it seems to be timing-specific, so will probably change visibility depending on the speed of the pc etc. on my 1Ghz p3m i can cause this to fail within 10 seconds.

this requires the safemm memory-manager
QC Entry 41079

    42602

QC#

Area

42602

Install

Description:

[QC Short Description]
EPackageRegistrationException in module sanctuarylib.dll

[QC Description]
- See steps for complete description (only a windows 2000 problem)
QC Entry 42602

    40818

QC#

Area

40818

Install

Description:

[QC Short Description]
Delphi does not work without installing Database Features

[QC Description]
If you install Delphi and mark the "Database Features" tree as "feature will be unavailable," Delphi does not initialize properly and presents various errors on startup.
QC Entry 40818

    42247

QC#

Area

42247

Install\Registry settings

Description:

[QC Short Description]
Package load errors on startup when de-selecting some internet packages

[QC Description]
Deselecting these installer components:
BDE Components
Interbase Express
Indy
Internet Controls
Intraweb
ITE
Office Controls
Samples
Everything under Shared Files
XML Mapper

Results in these IDE load errors:
Can't load package dclwebsnap100.bpl and then the same for dclsoap100.bpl

[Maybe a good test for the automated test suite would be to deselect all of the installer components, and then start the IDE?]
QC Entry 42247

    44514

QC#

Area

44514

Install\Files

Description:

[QC Short Description]
Enterprise instead of Professional in field ProductName in the version info resource of bds.exe of the Professional edition

[QC Description]
The ProductName in the version info resource of the bds.exe in the Professional Edition is "Enterprise" and not "Professional".

Additional information:
AFAIK this was correct in the prior versions - this means the ProductName was "Personal" for a Personal Edition.
Has this something to do with the new deployment method and you have simply forgotten to put different bds.exe's into the installation files because the executables are simply the same and just the version info is different?
QC Entry 44514

    44662

QC#

Area

44662

Install\Files

Description:

[QC Short Description]
TeePrevi.dfm is missing in \lib

[QC Description]
The TeePrevi.dfm file is missing in the \lib directory. The TeePrevi.dcu is there, but not the form file.

Found in the german Delphi 2007 for Win32 Professional Version, but happens also when I install the english version.
QC Entry 44662

    22878

QC#

Area

22878

Database

Description:

[QC Short Description]
InterBase Blob output params of StoredProcs truncated in D2006

[QC Description]
The Stored Procs blob output params are truncated in D2006 to 18 characters.

18 is the default value in Param.Size property, but even if I change it to a enough greater value, Delphi 2006 truncs the returned value to 18 characters.

In Delphi 2005, the returned value are not truncated if the Param.Size is enough greater.

The same result occurs (in Delphi 2006) using dbxint30.dll or the old dbexpint.dll
QC Entry 22878

    42673

QC#

Area

42673

Database\DBExpress\TSQLConnection

Description:

[QC Short Description]
Memory leak in TSQLConnection.Open

[QC Description]
Using TSQLConnection to connect to Interbase server will cause TWideStringList memory leak.
QC Entry 42673

    42824

QC#

Area

42824

Database\DBExpress\TSQLConnection

Description:

[QA Note]
The memory leak seems to be set at a fixed amount. I can create and open several TSQLConnections and the number of widestrings reported as being created remains the same.
[/QA Note]

[QC Short Description]
DBX4 TSQLConnection Memory Leak and Debugger Fault Notification

[QC Description]
FastMM4 detect TWideStringList memory leak in TSQLConnection

when try to compile with Full debug mode get a Debugger Fault Notification
QC Entry 42824

    43141

QC#

Area

43141

Database\dbExpressCore

Description:

[QC Short Description]
mixing DBX3 and DBX4 drivers leads to crash in IDE and code

QC Entry 43141

    45565

QC#

Area

45565

Database\dbExpressCore

Description:

[QC Short Description]
Create constructor of DBXDynalink.DBXDriverLoader or of third party driver never called

QC Entry 45565

    42403

QC#

Area

42403

International\Truncation

Description:

[STRING CORRUPTION]

[QC Short Description]
First phrase in installer is too long in French

[QC Description]
When run in a French OS, the sentence on the very first screen is too long and gets truncated.
See attached screenshot for details
QC Entry 42403

    43331

QC#

Area

43331

VCL

Description:

[QC Short Description]
Taskbar button is duplicated when restarting Explorer.exe

[QC Description]
If you restart the Explorer.exe (taskbar) the taskbar button will be duplicated, so you have the TApplication.Handle and the MainForm on the taskbar.
QC Entry 43331

    37537

QC#

Area

37537

VCL

Description:

[QC Short Description]
Form.ScreenSnap handling is wrong if Windows Taskbar is docked to left or top of the screen

[QC Description]
If Taskbar is docked to the left side of the screen, Delphi forms still snap to the edge of screen, instead of to the edge of Taskbar. Similarly for when Taskbar is docked to top.

This is the method which contains the error (comments are mine):

procedure TCustomForm.WMWindowPosChanging(var Message: TWMWindowPosChanging);
...
HandleEdge(x, Left, Monitor.WorkareaRect.Left); // last param should be 0!
HandleEdge(y, Top, Monitor.WorkareaRect.Top); // last param should be 0!
...
end;
QC Entry 37537

    45745

QC#

Area

45745

VCL

Description:

[QC Short Description]
Vista Modal Dialog flashing broken in Update Patch

[QC Description]
The update breaks the modal dialog behaviour in that it no longer flashes when clicking outside a modal dialog.

Since XP if a modal dialog is open and you click outside the modal dialog on the application form, the dialog flashes and a sound is played to indicate there is a modal dialog open.

The update patch breaks this behaviour.

The RTM version does not exhibit this problem, is was introduced in the update patch.
QC Entry 45745

    36283

QC#

Area

36283

VCL\Additional Controls\Action Bar Controls

Description:

[QC Short Description]
TCustomizeDlg is not localized

[QC Description]
TCustomizeDlg is not localized in Japanese edition Delphi2006. However, it was localized in Delphi6.
QC Entry 36283

    43334

QC#

Area

43334

VCL\Core VCL Classes

Description:

[QC Short Description]
IDE keeps focus if project MainFormOnTaskBar is False

[QC Description]
I am seeing a strange new behavior with the new forms and vcl posted to binaries on 3/22 if MainFormOnTaskBar is set to False.

When a project is run from the IDE, after the application displays for a moment the IDE pops in front of it. This is caused by the fact that the IDE has focus -- not the project app -- and if anything under the mouse pointer causes the IDE to display a tooltip.

If I revert back to the RTM forms and vcl, this behavior does not occur because the project app gets focus when run.

Some notes:

- The first time I run an app after starting the IDE, it stays in front even though it does not have the focus. Thereafter all runs, even when opening and running a different app, the IDE will come to front if triggered by a tooltip.

- A simple new project with no controls does not exhibit this behavior because MainFormOnTaskBar is set True. If I change this to False, then it does exhibit.
QC Entry 43334

    43984

QC#

Area

43984

VCL\Core VCL Classes\TForm

Description:

[QC Short Description]
Application set to start minimized will behave erratically if MainFormOnTaskbar := True for non-Vista Windows

[QC Description]
When an application is set to start up in the wsMinimized state, it will have some very strange behaviors:

1) It will start like if it were running in Windows 3.1, i.e., instead of showing in the taskbar it will show a minimal window;
2) After restoring that window, it cannot be properly minimized to the taskbar: clicking the minimize button has no effect.

As shown in the steps, this can be seen on a simple blank VCL forms application.

Notes:
1) This only happens on Non-Vista (e.g.: XP, 2003);

2) This only happens when the default "Application.MainFormOnTaskbar := True;" is used; changing it to "False" will no longer exhibit the problem;

3) This happens regardless of using themes or not: tested in both configurations.
QC Entry 43984

    44910

QC#

Area

44910

VCL\Core VCL Classes\TApplication

Description:

[QC Short Description]
BDS 2006 compiled applications do not get their taskbar button selected on startup with the latest vcl bpl files for Delphi 2007

[QC Description]
BDS 2006 compiled applications do not get their taskbar button selected on startup with the latest vcl bpl files for Delphi 2007
QC Entry 44910

    42374

QC#

Area

42374

VCL\Core VCL Classes\TApplication

Description:

[QC Short Description]
Hiding main form changes the caption of the task bar icon

[QC Description]
If you hide the main form and show another form, the caption of the task bar
icon changes. See attached example.
QC Entry 42374

    46202

QC#

Area

46202

VCL\Core VCL Classes\TApplication

Description:

[QC Short Description]
Application.BringToFront not working as expected

[QC Description]
I have an application that controls another applicationusing SendKeys in order to get data from some dialogs. During this process of course this other application must be brought to front. At the end of the process my app calls Application.BringToFront to bring my app back.

BringToFront is not working in build 2686, and frankly I'm not sure when it was broken. The setting for MainFormOnTaskBar makes no difference. (edit: Actually, on the test app, MainFormOnTaskBar DOES make a difference -- the bug only exhibits when it is set to TRUE. However, the setting makes no difference in my production app.).


I also tried Application.MainForm.BringToFront, which didn't fix it either.

I get the same problem on both XP and Vista.

I have included a simple test application that exhibits the problem.
QC Entry 46202

    43007

QC#

Area

43007

VCL\Core VCL Classes\TApplication

Description:

[QC Short Description]
Wrong taskbar focus behaviour in IDE

[QC Description]
The IDE has a bad behavour toward it's taskbar button. Other applications have taskbar focus even when the IDE is in front and you are working within one of the IDE windows.

Testing has been done in Windows XP with themes off, and classic look.

Problem is also there in applications developed with Delphi 2007 using the new MainFormOnTaskbar for Vista.

There is also another problem with the mainform not showing in front, related to the same changes. Both are described and demonstrated in the example. These come from the same adjustments in VCL, so I did not create a separate report for this problem. Both should be fixed when adjusting this.
QC Entry 43007

    43333

QC#

Area

43333

VCL\Core VCL Classes\TWinControl

Description:

[QC Short Description]
A control whose parent's FShowing is false will not hide

[QC Description]
Trying to set "Visible := False" on a visual control while its parent is not showing will not hide said control but only set its Showing property to false. Once the parent is visible again the control will be visible.

This is a breaking change with BDS 2006 which will correctly hide the control wether or not its parent is showing. Is this a bug or the intended behavior?

See sample project attached.

I've traced the problem to TWinControl.UpdateControlState which is called when assigning a value to Visible. Here's the offending part:

Control := Control.Parent;
if not Control.Showing then
begin
FShowing := False;
Exit;
end;

The "FShowing := False" is what is causing this problem, and it's also the only change in this method since BDS 2006.

I assume that since Showing is false for the control, other methods along the call stack decide that the it should not have its Visible property set to false since it's not showing.

QC Entry 43333

    42610

QC#

Area

42610

VCL\Graphics

Description:

[QC Short Description]
gifimg unit might display modal error dialog in initialization

[QC Description]
If another TGIFImage class has already been registered for the GIF format, when the gifimg initialization is executed, then the gifimg unit will display a modal error dialog.

This behaviour is unacceptable if gifimg is being used in a server application (e.g. an ISAPI filter) and since it's an internal error, it probably isn't too great an idea in end-user applications either...

The following change to gifimg.pas fixes the problem:

initialization
// Check for conflicting registration
{-} // TODO -oborland : How should a conflict be handled? It's probably not a good idea to display a modal box here.
{-} if (GraphicExtension(TGIFImage) <> '') then
{-} MessageBox(0, PChar(sTPictureConflict), PChar(SMsgDlgError),
{-} MB_ICONERROR or MB_OK or MB_TASKMODAL);
TPicture.RegisterFileFormat('GIF', sGIFImageFile, TGIFImage); // Do not localize
CF_GIF := RegisterClipboardFormat(PChar(sGIFImageFile));
TPicture.RegisterClipboardFormat(CF_GIF, TGIFImage);
QC Entry 42610

    44401

QC#

Area

44401

VCL\Dialog Controls

Description:

[QC Short Description]
Open and Save dialogs don't return FilterIndex under Vista

[QC Description]
With Vista and UseLatestCommonDialogs=True the various open and save dialogs fail to return the correct FilterIndex.

This is breaking existing apps which rely on the correct FilterIndex! It also breaks TSavePictureDialog which relies on FilterIndex as well!

Here's why this is failing: internally these dialog use TFileOpenDialog and TFileSaveDialog under Vista. These in turn use TFileDialogEvents to react to the various events. TFileDialogEvents.OnTypeChange calls FFileDialog.TypeChange *only* if OnTypeChange is assigned. But TCustomFileDialog.TypeChange has to be called *always* since this is updating the internal FFileTypeIndex!
QC Entry 44401

    46134

QC#

Area

46134

VCL\Dialog Controls\TOpenDialog

Description:

[QC Short Description]
TOpenDialog under Vista Breaks doShareAware

[QC Description]
If you are running Vista, and use the TOpenDialog, and rely on the ofShareAware option, this is broken with Delphi 2007.

If you try to open a file that is in use, under Vista, with ofShareAware set to true, you get a dialog showing "Not implemented".

This can be tracked down to the code in Dialogs.pas:

1 - At the beginning of TOpenDialog.DoExecute, if Vista is being used, wrappers around the new FileDialogs are used
2 - These wrappers are created, and there properties assigned from the standard TOpenDialog (which skips OnShareViolation)
3 - The code in TFileDialogEvents.OnShareViolation checks to see if OnShareViolation is assigned and, if not, results in E_NOTIMPL

The sum of these parts is that, if you use a TOpenDialog, even with ofShareAware set, you will be completely unable to select in-use files.
QC Entry 46134

    42867

QC#

Area

42867

VCL\Win 32 Controls\TImageList

Description:

[QC Short Description]
Image list never grows its internal bitmap

[QC Description]
When adding images to an existing imagelist that has been filled at design time, the internal bitmap is never grown. When later retrieving the images from the list, those that are above the existing capacity are returned blank.
This did not happen with BDS2006.
QC Entry 42867

    38658

QC#

Area

38658

Debugger\Stepping

Description:

[QC Short Description]
using f7 to step into a method causes bds to lockup with 100% cpu use

[QC Description]
see steps

this is using a clean install of highlander.

this is running on a p3-m 1GHz notebook,512megs ram, windows xp sp2. it is possible that it may be harder to reproduce on a faster or dualcore pc.

this may also affect earlier versions of bds (eg 2006)
QC Entry 38658

    43125

QC#

Area

43125

Debugger\Evaluator\Delphi

Description:

[QC Short Description]
Default display for PChars is "Character"

[QC Description]
If you add a PChar-Variable to the Watch window or evaluate it in the Evaluation dialog or look at the local variables window, the PChar variable is not displayed as string but as charactor.

It seems that the default display type for PChars has switched from string to character.
QC Entry 43125

    34555

QC#

Area

34555

Debugger\Multi-process

Description:

[QC Short Description]
cannot switch the active project when a process is being debugged

[QC Description]
in a project group with several projects, the active project cannot be changed if one project is being debugged (whenever its state is running or stopped).
This issue prevents multiple projects to be simultanly debugged.
Tested with build 2459
QC Entry 34555

    43114

QC#

Area

43114

Internet\Indy

Description:

[QC Short Description]
Default browsing path for Indy is incorrect

[QC Description]
The BDS default browsing path includes:

$(BDS)\source\Indy10

but this folder doesn't contain any source files.

Instead the Indy source code can be found here:

$(BDS)\source\Indy10\Core
$(BDS)\source\Indy10\System
$(BDS)\source\Indy10\Protocols
QC Entry 43114

    40156

QC#

Area

40156

Compatibility\Previous -> Current

Description:

[QC Short Description]
Custom Action developed in Delphi 7 blocks BDS2006 when form viewed

[QC Description]
I have serious problem with a component developed (and used many times) in Delphi 7 and now used in Delphi 2006.
The component itself is based on TWebBrowser, it is a HTML editor, but the problem is not with this component, then with Action associated with it.
Just to be fast in developing I create custom actions like cut, copy, paste, format_bold etc.
I made basic class

TDsHtmlEditAction = class(TAction)
private
FControl : TDSWebEditor;
procedure SetControl(Value: TDSWebEditor);
protected
function GetControl(Target: TObject): TDSWebEditor; virtual;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
destructor Destroy; override;
function HandlesTarget(Target: TObject): Boolean; override;
procedure UpdateTarget(Target: TObject); override;
published
property Control: TDSWebEditor read FControl write SetControl;
end;

where TDSWebEditor is the mentioned component based on TWebBrowser.

the procedure UpdateTarget is very simple:

procedure TDsHtmlEditAction.UpdateTarget(Target: TObject);
begin
if (Self is TDsHeEditCut) or (Self is TDsHeEditCopy) then
Enabled := GetControl(Target).SelLength > 0;
end;

from this class i made specific classes, for example

TDsHeEditCut = class(TDsHtmlEditAction)
public
procedure ExecuteTarget(Target: TObject); override;
end;

where proceudre ExecuteTarget is again very simple:

procedure TDsHeEditCut.ExecuteTarget(Target: TObject);
begin
GetControl(Target).Cut;
end;

GetControl is just FControl.

This action is registered, and there is no problem with adding it to the ActionList.

The problem arrives when I associate this action to a button on the TToolBar and when the form is seen in the desing mode!!!!!

I get access violation.

When the form is not viewed in the BDE, the application can be compiled without problem and it runs correct.

All of this is working perfectly in the old Delphi 7 and i have developed many applications using this component and this actions.

It's a big problem for me because it stops development of many projects where I'm using this component.
QC Entry 40156

    42627

QC#

Area

42627

ActiveX\IDE\Implementation file management

Description:

[QC Short Description]
TLB is not renamed if project that contains a TLB is renamed using save as.

[QC Description]
If you use "Save project as" on an existing project that contains a _TLB.pas file, the associated _TLB file is not renamed.

Also all the units uses clauses should be changed - a global find replace accross units would achieve the desired result.

QC Entry 42627

    43986

QC#

Area

43986

Midas\TClientDataSet

Description:

[QC Short Description]
Blob fields truncated in TClientDataSet

[QC Description]
When loading a file previously saved with the "SaveToFile" method, Blobfields of a TClientdataset are truncated.

An example program demonstrating the bug is provided
QC Entry 43986

// HF: added screenshots

    44731

QC#

Area

44731

Compiler

Description:

[QC Short Description]
dcc32.exe reports E2029 error incorrectly

[QC Description]
When performing a build using dcc32.exe the following errors are reported:

Error: E2029 ',' or ';' expected but ',' found
Fatal: F2084 Internal Error: D21153

This happens with code that compiled OK with dcc32.exe from Delphi 2005.

It seems to be related to the path length of items in a uses clause.

This problem is preventing us porting from D2005 to D2007 and is quite an urgent problem. I have already posted this problem under Delphi-BCB (Report #44591) but thought perhaps this was a better place for the report.

I have attached a zip file containing code that illustrates the problem (see steps to produce section).
QC Entry 44731

    34298

QC#

Area

34298

Compiler\Delphi

Description:

[QC Short Description]
Compiler allows *static* class methods to be passed as value of method pointer variable.

[QC Description]
Delphi complier has *undocumented* feature: it allows class methods to be passed as value of method pointer variable.

See this code (pay attention on F := TMyClass.Get)

{$o-}
program Project1;
uses
SysUtils;
type
TIntFunc = function(S: String): Integer of object;
TMyClass = class
public class function Get(S: String): Integer;
end;
class function TMyClass.Get(S: String): Integer;
begin
Result := StrToInt(S)+1;
end;
var
F: TIntFunc;
N: Integer;
begin
F := TMyClass.Get;
N := F('1');
end.

This code works OK.

But if you change
public class function Get(S: String): Integer
to
public class function Get(S: String): Integer; static;
then Access Violation exception is raised.

See steps to reproduce error

=================================
Here is a discussion about this feature on borland.public.delphi.language.delphi.general newsgroup.

http://groups.google.com/group/borland.public.delphi.language.delphi.general/browse_frm/thread/957ff83c85025113/c7ca6e132da14a8c?#c7ca6e132da14a8c
QC Entry 34298

    45896

QC#

Area

45896

Compiler\Delphi

Description:

[QC Short Description]
Compiler generates internal error on compiling attached project

[QC Description]
Compiler generates internal error on compiling attached project
QC Entry 45896

    41751

QC#

Area

41751

Compiler\Delphi\Code Generation/Optimization

Description:

[QC Short Description]
Property with inlined function and Data type conversion produces wrong code

[QC Description]
It seems that the combination of
a) inlining
b) record field variable
c) data type conversion (int/int64 --> double/single)

creates wrong code (the function returns 0.00 in my tests)

Please see steps for sample source code
QC Entry 41751

    41285

QC#

Area

41285

Compiler\Delphi\Code Generation/Optimization

Description:

[QC Short Description]
using self in a class method of a class helper causes an av

[QC Description]
see steps
QC Entry 41285

(JJS: See also RAID 243117)

    32154

QC#

Area

32154

Compiler\Delphi\Errors - Warnings

Description:

BT[QC Short Description]
Inner class cannot get access to strict protected virtual method of outer class

[QC Description]
Try to compile this simple project

program Project1;
type
TOuterClass = class
strict private type TInnerClass = class
public procedure InnerProcedure();
strict private var fOuter: TOuterClass;
end;
strict protected procedure OuterProcedure(); virtual;
end;
procedure TOuterClass.TInnerClass.InnerProcedure();
begin
fOuter.OuterProcedure(); // error here
end;
procedure TOuterClass.OuterProcedure();
begin
end;
begin
end.

Method TOuterClass.TInnerClass.InnerProcedure cannot call OuterProcedure.
Error occured - [Pascal Error] Project1.dpr(12): E2362 Cannot access protected symbol TOuterClass.OuterProcedure
QC Entry 32154

    32786

QC#

Area

32786

Compiler\Delphi\Errors - Warnings

Description:

[QC Short Description]
Inner class cannot get access to strict protected overloaded method of outer class

[QC Description]
Try to compile this simple project

program Project1;
type
TOuterClass = class
strict private procedure SomeProc(); overload;
strict private procedure SomeProc(I: Integer); overload;
strict private type TInnerClass = class
strict private var fOuter: TOuterClass;
strict private procedure Proc();
end;
end;
procedure TOuterClass.SomeProc();
begin
end;
procedure TOuterClass.SomeProc(I: Integer);
begin
end;
procedure TOuterClass.TInnerClass.Proc();
begin
fOuter.SomeProc(1);
end;
begin
end.

Method TOuterClass.TInnerClass.Proc cannot call SomeProc.
Error occured - [Pascal Error] Project1.dpr(22): E2389 Protected member 'TOuterClass.SomeProc' is inaccessible here
QC Entry 32786

    45336

QC#

Area

45336

Compiler\Delphi\Language\Overloading

Description:

[QC Short Description]
cannot implicitly cast records to Float type

[QC Description]
with overloading Implicit operator, one cannot assign the record directly to a float variable
eg:

var
D: Double;
R: TMyRec;

begin
D := 1.1;
R := D;
D := R; << will not compile
however, doing:
D := Double(R); << will compile just fine and work correctly
QC Entry 45336

    43943

QC#

Area

43943

Compiler\Delphi\Interaction with UI

Description:

[QC Short Description]
IDE disappears when opening D7 forms.pas

[QC Description]
When opening the forms.pas source file from Delphi 7, the IDE opens the file but shortly afterwards just disappears without any message. See steps for more details.

Debugging the IDE with itself revealed that this is most probably a stack overflow. While debugging the debugger showed

"Project C:\BORLAND\BDS\5.0\bin\bds.exe faulted with message: 'access
violation at 0x7c91eddc: write of address 0x01650ecc'. Process Stopped. Use
Step or Run to continue."

The call stack looked like this:

:7c91eddc ntdll.strchr + 0xdb
:7c937e78 ; C:\WINDOWS\system32\ntdll.dll
:7c922c99 ntdll.LdrFindResource_U + 0x18
:7c80aceb kernel32.FindResourceExW + 0x63
:7e369dbb user32.LoadCursorW + 0x52
:7e369e4e user32.LoadStringW + 0x18
:04b8868f ; C:\BORLAND\BDS\5.0\bin\DCC100.dll
:04b88e27 ; C:\BORLAND\BDS\5.0\bin\DCC100.dll
:04b88af6 ; C:\BORLAND\BDS\5.0\bin\DCC100.dll
:04b88e27 ; C:\BORLAND\BDS\5.0\bin\DCC100.dll
:04b88af6 ; C:\BORLAND\BDS\5.0\bin\DCC100.dll
:04b88e27 ; C:\BORLAND\BDS\5.0\bin\DCC100.dll

and then the f6/27 pair follows for about another 1500 times indicating a stack overflow

QC Entry 43943

    43199

QC#

Area

43199

RTL\Delphi\WinAPI

Description:

[QC Short Description]
HelpShowTableOfContents gives error 'Unable to find a Table of Contents.'

[QC Description]
OS: Windows XP
IDE: Delphi 2007

My application calls Application.HelpShowTableOfContents to show the help file. This worked in Delphi 2006.

Exp: Help file is shown, without error.
Act: Help file is shown, but also an error message 'Unable to find a Table of Contents.'

In the attachment, the problem is shown with an HTMLHelpfile (chm), but the problem also occurs with a WinHelpFile (hlp).
QC Entry 43199

    45532

QC#

Area

45532

RTL\Delphi\Other RTL

Description:

[QC Short Description]
Bug in ObjAuto.pas affects CreateMethodPointer functionality

[QC Description]
The unit "Win32\rtl\common\ObjAuto.pas" contains a bug where an incorrect amount of memory is allocated.

QC Entry 45532

    3910

QC#

Area

3910

RTL\Delphi\Other RTL

Description:

[QC Short Description]
AccessViolation in TBucketList and TObjectBucketList DeleteItem

[QC Description]
I have been getting access violations when freeing TCustomBucketList subclasses:

EXCEPTION: Access violation at address 40003447 in module 'rtl60.bpl'. Read of address 05254000
$40003445 rtl60.bpl System Move
$40010C3D rtl60.bpl SysUtils AppendChars
$40010CAD rtl60.bpl SysUtils AppendNumber
$40040B6A rtl60.bpl Contnrs TCustomBucketList.Clear
$40040C01 rtl60.bpl Contnrs TCustomBucketList.Destroy

Looking at the code for TCustomBucketList, I think I've found the problem:

function TCustomBucketList.DeleteItem(ABucket, AIndex: Integer): Pointer;
begin
with Buckets[ABucket] do
begin
Result := Items[AIndex].Data;
if Count = 1 then
SetLength(Items, 0)
else
System.Move(Items[AIndex + 1], Items[AIndex],
(Count - AIndex) * SizeOf(TBucketItem));
Dec(Count);
end;
end;

When Count = Length(Items) and AIndex = High(Items), the System.Move call attempts to move 1 record from past the end of the array (Items[AIndex + 1]) into the array.

When Count = Length(Items) and AIndex < High(Items), the System.Move call attempts to move Count - AIndex items from AIndex + 1 up. There are only Count - AIndex - 1 items from AIndex + 1 up though. For example:

Count = 7
Length(Items) = 7
AIndex = 4
Count - AIndex = 3
Moving 3 Items from AIndex + 1 to AIndex (items 5, 6 and 7 despite their being no item 7).

I have added Contnrs to my own test project with range checking switched on. When a bucket list has a full bucket (Count = Length(Items)) and is freed, I get a RangeCheckError from the System.Move call.
QC Entry 3910

    38342

QC#

Area

38342

SOAP\WSDL Importer

Description:

[QC Short Description]
WSDL Importer renames "name" to "name_"

[QC Description]
Importing a WSDL in Delphi 2006 that has an element name of "name" renames it to "name_". For example:
It did not do this in Delphi 7 and fail to correctly populate the resulting "name_" properties from SOAP messages. Doing a global rename of all "name_" occurances back to "name" works as expected.
QC Entry 38342

    22253

QC#

Area

22253

Modeling\IDE Integration

Description:

[QC Short Description]
Added units do not show up in model view

[QC Description]
If you add a unit to your project, it will not show up in the model view.

After following the steps below, you could try some of this to make it show up:

- right-click on model view and choose "reload" (does not work)

- "synchronize model view" from a diagram (does not work)

- save the unit to disk (does not work).

- close the entire project and then open it up again (does work, but should not be needed).
QC Entry 22253

[SpUpd]

    21228

QC#

Area

21228

Modeling\Printing

Description:

[QC Short Description]
Overview in documentation generation is just a black box

[QC Description]
The overview feature is not working for generated documentation.
QC Entry 21228

    21202

QC#

Area

21202

Documentation

Description:

[QC Short Description]
Missing Help for AlignWithMargin

[QC Description]
See Steps.
QC Entry 21202

Please fix this. there are so many reports on this in QC/RAID.
237935
240781
243514
244241

[NOD7HELP]

5/3/07: Documented TControl.AlignWithMargin property.
--Gary Staas

    42423

QC#

Area

42423

Documentation

Description:

[QC Short Description]
Help for TStream.Seek is incorrect

[QC Description]
See help of TStream.Seek:

------
The Origin parameter indicates how to interpret the Offset parameter. Origin should be one of the following values:
Value Meaning
***soFromBeginning**
Offset is from the beginning of the resource. Seek moves to the position Offset. Offset must be >= 0.
....
------

This is wrong list of Origin possible values, because soFrom* constants are integer
soFromBeginning = 0;
soFromCurrent = 1;
soFromEnd = 2;

so this gives 32-bit Seek call instead of 64-bit Seek variant call. The correct list of Origin possible values are

TSeekOrigin = (soBeginning, soCurrent, soEnd);

So I had a problem trying to Seek 6GB file using
FStream.Seek(Size-Offset, soFromBeginning).

This doesn't work. I need to use
FStream.Seek(Size-Offset, soBeginning)
instead.

You should list correct TSeekOrigin values in the help.
QC Entry 42423

    44320

QC#

Area

44320

Documentation

Description:

[QC Short Description]
Unable to overload shift operators

[QC Description]
Try to overload shift operators:

type
TmyInteger = record
<..>
class operator ShiftLeft(A: TmyInteger; B: LongWord): TmyInteger;
class operator ShiftRight(A: TmyInteger; B: LongWord): TmyInteger;
end;

The result is compiler error:

[Pascal Error] <..> : E2393 Invalid operator declaration

Seems like compiler just don't know ShiftLeft and ShiftRight operators described in Reference.pdf

QC Entry 44320

SB: The correct names are LeftShift and RightShift. Doc needs to be updated.

    31928

QC#

Area

31928

Documentation\Online Help

Description:

[QC Short Description]
Clipped Help re: dynamic arrays

[QC Description]
In the on-line help, page ms-help://borland.bds4/bds4ref/html/StructuredTypes.htm#ArryTyendAignmen, there is a sample code block that looks like this:

var
Int1: array[1..10] of Integer;
array[1..10] of Integer;
...
Int1 := Int2;

I believe it's supposed to look like this:

var
Int1: array[1..10] of Integer;
Int2: array[1..10] of Integer;
...
Int1 := Int2;

QC Entry 31928

5/2/07: Fix code sample as indicated. Fix couple of schema errors in StructuredTypes.xml file.
--Gary Staas

    9957

QC#

Area

9957

Documentation\Online Help

Description:

[QC Short Description]
Many VCL indexed properties documented incorrect

[QC Description]
The online help for vcl-win32 help does not correctly document the index part of indexed properties. This seems to be a systematic conversion problem.

10/26/05 - This is still an issue for DeXter. It will have to be deferred to the next release, since the doc is locked. -- Janet


QC Entry 9957

5/3/07: The current help shows the indexing properly for all the examples cited here, so I assume the correct code is copied to the docs now.
--Gary Staas

    20522

QC#

Area

20522

Documentation\Online Help

Description:

[QC Short Description]
TControl.Margins help topic not helpful

[QC Description]
ms-help://borland.bds4/bds4win32api_win32/html/DelphiWin32_ControlsTControlMarginsProperty.htm says:

"Use the Margins property to set the margins for the control."

This is not informative at all. Of course the Margins property sets the margins, just like the Thingamabob property sets the thingamabob.

Please explain the effect of setting the margins. I dropped a bunch of controls on a form, with some aligned to the sides, but setting the form's Margins property did nothing. Obviously I'm missing something that should've been explained in the help.
QC Entry 20522

    36354

QC#

Area

36354

Documentation\Online Help\Object Pascal

Description:

[QC Short Description]
Delphi help doesn't say about Iterators for interfaces, but feature is implemented.

[QC Description]
Delphi Help says about Iterators for classes (see ms-help://borland.bds4/bds4ref/html/DeclarationsAndStatements.htm, and search by string "Iteration Over Containers Using For statements").

I mean this text

<>

There are no words that for-in loop construct also works on a interfaces.

SUGGESTION:
Please describe in Delphi Help that for-in loop construct also works on a interfaces like so, <>

For details see "Steps" tabsheet.

------------
There is another my report http://qc.borland.com/wc/qcmain.aspx?d=34676
But it says about same documentation probleb but for _record_.
QC Entry 36354

    34676

QC#

Area

34676

Documentation\Online Help\Object Pascal

Description:

[QC Short Description]
Delphi help doesn't say about Iterators for records, but feature is implemented.

[QC Description]
Delphi Help says about Iterators for classes (see ms-help://borland.bds4/bds4ref/html/DeclarationsAndStatements.htm, and search by string "Iteration Over Containers Using For statements").

I mean this text

<>

There are no words that for-in loop construct also works on a record.

SUGGESTION:
Please describe in Delphi Help that for-in loop construct also works on a record.

QC Entry 34676

5/3/07: Added statement under "Iteration Over Containers Using For statements":

for Element in Record do Stmt;

to indicate this works for records.
--Gary Staas

    39761

QC#

Area

39761

Documentation\Online Help\Object Pascal

Description:

[QC Short Description]
Links in Ceil, Floor, and Trunc help don't work.

[QC Description]
In the BDS 2006 help files, the topics on the Ceil, Floor, and Trunc routines all have links to each other. However, in the Ceil and Floor topics, those links don't work.
QC Entry 39761

    34061

QC#

Area

34061

Documentation\Online Help\Object Pascal

Description:

[short description]
incomplete list of fundamental types

[full description]
"Simple Types" page is missing the definition for UInt64.

5/3/07: Added table entry
Largeuint 0..2^64-1 unsigned 64-bit UInt64

to Fundamental integer types table.
--Gary Staas

    42767

QC#

Area

42767

Documentation\Online Help\Object Pascal

Description:

[QC Short Description]
Warning/error confusion in FOR and FOR IN documentation

[QC Description]
The report is about bugs in the Object Pascal for loop documentation. I'm talking about this page: ms-help://borland.bds5/devcommon/declarationsandstatements_xml.html

1) The FOR IN statement is documented like this:
"The iteration variable cannot be modified within the loop. This includes assignment, and passing the variable to a var parameter of a procedure. Doing so will result in a compile-time error."
The bugs:
a) Passing the iterator variable as a VAR parameter results not in a compile-time error, but in a warning "W1015 FOR-Loop variable 'C' cannot be passed as var parameter".
b) Passing the iterator variable as a OUT parameter causes the same warning, but "W1015 FOR-Loop variable 'C' cannot be passed as OUT parameter" should be

2) There is no similar text about classic FOR statement - I mean that documentation doesn't say that iterator variable can not be changed. But in fact beheaviour of compiler is just the same as for FOR IN statement.

The documentation should be stricter about the restrictions on the for loop variables.

Also see "Steps"
QC Entry 42767

    38801

QC#

Area

38801

Documentation\Online Help\VCL

Description:

[QC Short Description]
THandleObject.WaitFor is not documented

[QC Description]
The same is true for C++ THandleObject::WaitFor.
QC Entry 38801

    42285

QC#

Area

42285

Documentation\Online Help\VCL

Description:

[QC Short Description]
The documentation for TMenuItem.Hint Property is incorrect.

[QC Description]
The documentation for TMenuItem.Hint Property states "The hint text appears in a Help Hint window when the user pauses with the mouse over the menu item if Help Hints are enabled (that is, if the Form's and the Application's ShowHint properties are true)." This is incorrect. The Hint will be available in the Application.Hint property during the event handler for Application.OnHint but no hint window will appear. See http://delphi.about.com/od/vclusing/a/menuitemhints.htm for more information.
QC Entry 42285

    33417

QC#

Area

33417

Documentation\Online Help\VCL

Description:

[QC Short Description]
TCollectionItem.Create is not described as virtual

[QC Description]
In the source code TCollectionItem.Create is a virtual function but it isn't shown as virtual in the help for Win32


In the source code, we see:
TCollectionItem = class(TPersistent)
....
public
constructor Create(Collection: TCollection); virtual;

In the Win32 help for TCollectionItem.Create we see:

Syntax
[Delphi] constructor Create(Collection: TCollection);

Note that "virtual" is not included in the declaration

The help for Delphi for .Net is the same but I haven't checked the .Net source code to see whether that is an error or not.
QC Entry 33417

5/3/07: The virtual keyword now appears in the C++ prototype for this function.
--Gary Staas

    38647

QC#

Area

38647

Documentation\Online Help\VCL

Description:

[QC Short Description]
TCheckBox does not fire OnKeyDown for arrow keys, as help suggests

[QC Description]
The help for TWinControl.OnKeyDown Event says:

"Use the OnKeyDown event handler to specify special processing to occur when a key is pressed. The OnKeyDown handler can respond to all keyboard keys, including function keys and keys combined with the Shift, Alt, and Ctrl keys, and pressed mouse buttons."

There is nothing specific to checkboxes and there is no specific help entry for TCheckBox.OnKeyDown event.

This suggests that a TCheckBox must fire the OnKeyDown event for *all* keyboard keys. However it does not fire for the arrow keys. OnKeyDown can only forward keys that the control is actually processing and since a CheckBox (the OS window class) doesn't include DLGC_WANTARROWS (see wm_GetDlgCode) by default, it doesn't receive arrow keys.

Seems this is a documentation problem.
QC Entry 38647

    39569

QC#

Area

39569

Documentation\Online Help\Main help

Description:

[QC Short Description]
"AllocMem" function is not present in Online Help

[QC Description]
"AllocMem" function is not present in Online Help
QC Entry 39569

    30552

QC#

Area

30552

Documentation\Online Help\Main help

Description:

[QC Short Description]
Help for the TEventStatus Enum Has Duplicated Text

[QC Description]
The help for the TEventStatus Enum has this text at the bottom:

Related Information
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
ADOdb.TADOConnection
QC Entry 30552

    39856

QC#

Area

39856

Documentation\IDE Help Contexts

Description:

[QC Short Description]
Help topic missing for the following TDBGrid.Style properties

[QC Description]
TDBGrid.Style
No help for "TPersistent.Style"
No help for "TPersistent.fsBold"
No help for "TPersistent.fsItalic"
No help for "TPersistent.fsUnderline"
No help for "TPersistent.fsStrikeOut"
QC Entry 39856


5/3/07: F1 works for all these TDBGrid.TFont properties now.
--Gary Staas

    39857

QC#

Area

39857

Documentation\IDE Help Contexts

Description:

[QC Short Description]
QC# 39517 - Help missing for the following TDBGrid.TitleFont properties

[QC Description]
TDBGrid.TitleFont
No help for "TPersistent.Charset"
No help for "TPersistent.Orientation"
No help for "TPersistent.Pitch"
No help for "TPersistent.Size"
QC Entry 39857


5/3/07: F1 works for all 4 properties now.
--Gary Staas

    27348

QC#

Area

27348

Documentation\IDE Help Contexts

Description:

[QC Short Description]
TCustomListView.TopItem Property help file has conflicting instructions

[QC Description]
Helpfile for TCustomListView.TopItem Property (Win 32 reference) states:

"You can also scroll the view by setting TopItem"

However, this is not possible as the property is read only, which is also stated in the help file.

QC Entry 27348

    16261

QC#

Area

16261

Documentation\IDE Help Contexts

Description:

[QC Short Description]
Component | Import Type Library missing

[QC Description]
( Delphi 2005 W32 )
Component | Import Type Library is missing as described in the help file:

ms-help://borland.bds3/bds3win32devguide/html/cacusingtheimporttypelibrarydialog.htm
QC Entry 16261

    39517

QC#

Area

39517

Documentation\IDE Help Contexts

Description:

[QC Short Description]
Help missing for TDBGrid.Constraints

[QC Description]
Help topics missing for the following TDBGrid.Constraints properties
No help for "TPersistent.MaxHeight"
No help for "TPersistent.MaxWidth"
No help for "TPersistent.MinHeight"
No help for "TPersistent.MinWidth"
QC Entry 39517

5/3/07: F1 works for all 4 properties now.
--Gary Staas

    39516

QC#

Area

39516

Documentation\IDE Help Contexts

Description:

[QC Short Description]
Help missing for TDBGrid.Anchor properties

[QC Description]
Help topic missing for the following TDBGrid.Anchor properties
No help for "TPersistent.akLeft"
No help for "TPersistent.akTop"
No help for "TPersistent.akRight"
No help for "TPersistent.akBottom"
QC Entry 39516

5/3/07: F1 help works for all 4 now.
--Gary Staas

    13801

QC#

Area

13801

Documentation\IDE Help Contexts

Description:

[QC Short Description]
There is no context sensitive help for the EllipsisPosition property on a TLabel

[QC Description]
There is no context sensitive help for the EllipsisPosistion property on a TLabel.
Further more it is not even listed on the properties page for TLabel.

ms-help://borland.bds3/bds3win32api_win32/html/StdCtrlsTLabelProperties.htm
QC Entry 13801

Server Response from: ETNASC04