[All]
RAD Studio 2007 December Update List of Core Bug Fixes
By: Chris Pattinson
Abstract: 284 core bug fixes (84 from Quality Central) sorted by area addressed in the December 2007 Update
Below is a list sorted by product area for all the fixes included in the RADStudio 2007 December Update. These fixes apply to Delphi 2007 and C++Builder 2007 where applicable.
A Delphi specific list of fixes can be found here:
A C++Builder specific list of fixes can be found here:
A Delphi.NET specific list of fixes can be found here:
Quality Central references numbers can be found on the left side of this document. This document has been sorted by product area. We hope you all enjoy this December update to the RAD Studio 2007 line of products, and enjoy a happy holiday season.
- CodeGear RADStudio Development Team
|
QC# |
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
An AV occurs on run when you attempt to drop a component from the shell Controls onto a form. Deleting the component from the form results in an AV in the vcl100.bpl
<details in attachment>
WORKAROUND: Turn off build with Runtime packages. Deleting though still returns an AV in vcl100.bpl |
+ Go to: C:\Documents and Settings\All Users\Documents\RAD Studio\5.0\Demos\CPP\Apps\ShellControls + open the bcbshlctrls.bpk (it will be converted) + Project | Build + File | Close All (you can save if you want) + Open dclshlctrls.bpk( it will be converted) + Project | Build + Right click on the project in the PM + Select Install //exp & act: successful install of the component into the tool palette
+ File | New | VCL Forms Application - C++ Builder + Drop TShellTreeView (or any of the shell controls found under the Samples section + Project | Build + Run | Run //exp: Project runs with the components on the form //act: Stops at CPU window and pressing run again results in AV: Debugger Fault Notification --------------------------- Project C:\Documents and Settings\testuser\My Documents\RAD Studio\Projects\test1\Debug\Project1.exe faulted with message: 'access violation at 0x00008ecf: access of address 0x00008ecf'. Process Stopped. Use Step or Run to continue. --------------------------- OK ---------------------------
+ click OK + Reset the IDE + Go to the Form Designer + Delete the component //exp: no error //act: --------------------------- Error --------------------------- Access violation at address 2018B9A7 in module 'vcl100.bpl'. Read of address 00000008. --------------------------- OK Details >> --------------------------- <details attached in .txt file>
Workaround: Turn off build with Runtime Packages on the VCL Form application before dropping the component. Deleting the component still returns the AV though.
|
| QC# |
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
Missing ShellControls source code that ships with Delphi. If you install RAD Studio or Delphi 2007, the following directory gets installed:
C:\Documents and Settings\All Users\Documents\RAD Studio\5.0\Demos\DelphiWin32\VCLWin32\ShellControls
If you just install C++ 2007, the ShellControl demo doesn't get installed.
See also: RAID 253367. |
Customers upgrading from C++ Builder 6 who used the shell controls require the source to build and install the components into the IDE.
http://caseviewer.borland.com/CaseViewer/CaseDetails.jsp?caseNumber=672380
File List:
dclshlctrls.dcr dclshlctrls.dpk dclshlctrls.dproj dclshlctrls.rc dclshlctrls.res RootEdit.dfm RootEdit.pas ShellConsts.hpp ShellConsts.pas ShellCtrls.hpp ShellCtrls.pas ShellReg.pas vclshlctrls.dpk vclshlctrls.dproj vclshlctrls.res
UPDATE: These files should be placed in <DemoDirInstall Path>\CPP\Apps\ShellControls directory.
|
| QC# |
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
| Missing C++ specific Shell Control demo and package from the C++ personality delivery. |
Please add bcbshlctrls.cbproj dclshlctrls.cbproj
these should be checked in already but need to get into the build. |
| QC# |
Project |
Area |
|
C++Builder |
Documentation |
| Description: |
Steps: |
The index is missing entries in various cases. I'm not sure how widespread this is, but it might be quite common. I noticed it for new files I added in the Borland.Data.AdoDbxClientProvider namespace. In particular, the following entries are missing:
TAdoDbxCommandBuilder.Create TAdoDbxConnection.DataSource TAdoDbxDataAdapter.RowUpdated TAdoDbxDataAdapter.RowUpdating TAdoDbxDataAdapter.Create TAdoDbxDataAdapter.HasRows TAdoDbxParameter.SourceColumnNullMapping
|
1. Run help viewer. 2. Click Index tab at bottom right. 3. Enter "Borland.Data.AdoDbxClientProvider" in "Look for:" field to see entries for this namespace.
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Help Update
Running 'Rad Studio Documentation' stand alone I see 'No table of contents has been defined for current Help collection' |
Run Update install From Windows Start menu CodeGear Rad| Rad Studio Documention
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
[Function Issue] Help button of "Add Source Breakpoint" window and the document screen do not support.
Please see attach.
[MSeki on 16/10/07 (After HelpUpdate/1013/)] This issue has been resolved. |
1. Watch "Add Breakpoint" of "Breakpoint List".pane. 2. Select "Source Breakpoint..." => "Add Source Breakpoint" window appears 3. Push "Help" Button 4. "Add Address Breakpoint or Add Data Breakpoint" is displayed in DocumentExplorer.
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Start IDE without click anything, press F1 got error.
--------------------------- Error --------------------------- No help found for context. --------------------------- OK Details >> ---------------------------
|
1. Start IDE 2. press F1
//exp: Help's default page //act : error
--------------------------- Error --------------------------- No help found for context. --------------------------- OK Details >> ---------------------------
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
//This are the remaining issues from 254976
Bad links in default.htm file.
There are other links that don't work Backfish SQL documentation http://dn.codegear.com/article/36770 is incorrect : page not found
Eco documentation http://dn.codegear.com/article/36853/ is incorrect: page not found |
Run BDS. In the default page, click on the Help button. Check the different options. Some links don't work. |
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Help on Help returns
Unable to get navigation object [!DefaultDynamicLinkIndex]
URL:ms-help://borland.bds5/MS.NETFramework.v20.en/MS.Dexplore.v80.en/dv_dexplore/html/92b51076-8841-45a2-8e2b- |
bmp attached Run help Help|help on Help |
| QC# |
Project |
Area |
|
Delphi |
IDE |
| Description: |
Steps: |
When F1 is pushed on TObject, it is necessary to display help.
[HelpUpdate] |
1. Run "Delphi for Microsoft Win32" or "C++Builder". 2. Create New VCL Form Application. 3. Drop New TObject(ex.TButton) 4. Click TButton1. ->TButton1 is active. 5. Push F1. ->Help is not displayed.
|
| QC# |
Project |
Area |
|
Delphi |
IDE |
| Description: |
Steps: |
Contains and Requires are not able to translate in the tree of Project Manager.
[mt - also in French D2005] same in Japanese Update2 and German Update2.
Are "Contains" and "Requires" hard corded? |
1. File /New/ Package - Delphi pour Win32 2. check Project Manager // Contains and Requires are not translated in the tree. |
52642
| QC# |
Project |
Area |
| 52642 |
C++Builder |
IDE |
| Description: |
Steps: |
[QC Short Description] New Forms App does not autocreate main form if autocreate forms is turned off
[QC Description] After installing patch 3 to CB2007, a new C++ forms app no longer includes the code to autocreate the main form if autocreate forms is turned off. App will run, but main form is not displayed.
The main .cpp file that is created looks like this:
//---------------------------------------------------------------------------
#include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); SetApplicationMainFormOnTaskBar(Application, true); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } //---------------------------------------------------------------------------
Note that there is no Application->CreateForm() call. QC Entry 52642
|
Install Update 3 to CB2007 or install RAD Studio 2007 Tools | Options | Environment Options | VCL Designer | Module Creation Options | Auto create forms and data modules - uncheck this option OK File | New | VCL Forms app - C++ Run | Run Exp: Project will compile, run and display a blank main form Act: Project compiles, runs, and exits without ever showing the main form. Look at Project1.cpp file in editor Exp: File will create the main form with a line like this: Application->CreateForm(__classid(TForm1), &Form1); Act: Line to creat the main form is missing Tested in both CB 2007 + update 3 and RAD Studio 2007 |
43860
| QC# |
Project |
Area |
| 43860 |
Delphi |
IDE |
| Description: |
Steps: |
[QC Short Description] Vista problems with XML Data Binding Wizard
[QC Description] The Delphi 2007 XML Data binding wizard tries to write to the program files folder (C:\Program Files\CodeGear\RAD Studio\5.0\bin\xmldbwizard.ini.). In Vista this only works if the user has launched Delphi as admin.. QC Entry 43860
|
1. Start Delphi 2007 in Vista 1.5 New Delphi Win32 VCL App 2. From the File menu select New -> Other 3. In the new item dialog, select Delphi Projects -> XML -> XML Data Binding 4. Click OK 5. You get the following error dialog:
--------------------------- Error --------------------------- Unable to write to C:\Program Files\CodeGear\RAD Studio\5.0\bin\xmldbwizard.ini. --------------------------- OK Details >> ---------------------------
|
43305
| QC# |
Project |
Area |
| 43305 |
Delphi |
IDE\Dialogs\Project Options |
| Description: |
Steps: |
[QC Short Description] Duplicate DEBUG/RELEASE defines
[QC Description]
After using the "Default" checkbox on "Project Options", whenever a new project is created it has a duplicate define DEBUG that stays even when switching to RELEASE options. QC Entry 43305
|
1) New project 2) Project Options, Directories/Conditionals, Check the "Default" check box and click OK 3) Close all 4) New project 5) Project Options, Directories/Conditionals: duplicate DEBUG appears in "Debug" options; DEBUG;RELEASE show in "Release" options. |
44669
| QC# |
Project |
Area |
| 44669 |
Delphi |
IDE\Dialogs\Project Options |
| Description: |
Steps: |
[QC Short Description] Image base setting is not persisted
QC Entry 44669
|
---added - TG ---- 1. After saving image base to another value, save project and close. 2. Open the dproj in a text editor to verify the ImageBase was added to the project 3. Reopen the project 4. In the Project Manager, right click Project1, and Save. 5. Re open the dproj in text editor, notice the ImageBase was removed.
----ORIGINAL--------------- Situation A:
1. Set an image base other than $0040000 in Project Options / Linker 2. Save and Close the project 3. Open the same project
Expected: Image base remains as set Found: Image base has reverted to $0040000
Situation B:
1. Set an Image base other than $0040000 for Release Build in Project Options / Linker 2. Select Debug build 3. Select Release build
Expected: Release build Image base remains as set Found: Release build Image base has reverted to $0040000
Situation C:
1. Set an image base other than $0040000 in Project Options / Linker 2. Save and Close the project 3. Verify that the correct image base is saved in the DPROJ file 4. Open the same project 5. Open the Project Options Dialog, then click OK 6. Build the Project
Expected: The built DLL should have the specified image base Found: The built DLL has image base $0040000
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Project Management\Project Options |
| Description: |
Steps: |
| The -B switch (compile via assembly), when placed in "Other Options" is not passed to the compiler correctly |
-Open the attached project and build //exp and act: [BCC32 Error] AsmUnit.cpp(28): E2329 Invalid combination of opcode and operands [BCC32 Error] AsmUnit.cpp(38): E2329 Invalid combination of opcode and operands (these errors are due to limitations in BASM) -Project | Options | C++ Compiler | Advanced Compilation | Other Options and add: -B -Build //exp: -B is passed to the compiler and there are no errors (TASM, not BASM is used) //act: It appears that .asm is generated in one step, then assembled in a separate call to TASM, This results in many linker errors because tasm32.exe was not invoked with /ml
Also, adding #pragma inline to a file with inline asm has the same affect of explicitly invoking tasm32.exe, e.g. -Create a new VCL Application -Double-click the form and add some inline assembly,e.g. void __fastcall TForm1::FormCreate(TObject *Sender) { asm test eax,0 } -Add #pragma inline at the top of the unit and build
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor |
| Description: |
Steps: |
Popup menu in code editor for an XML file contains non grayed items which do nothing. "Refactoring" doesn't do anything, should be grayed. "Rechercher" has an arrow, indicating there is a submenu, but there isn't. "Compléter la classe sous le curseur" not grayed but doesn't do anything and so should be grayed. See screen dump. "Basculer le point d'arrêt" is a non-sense in this context. Should be grayed. Same popup is shown for HTML, JavaScript, ...
|
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Code Editor |
| Description: |
Steps: |
[Erreur fatale] F1009 Impossible d'ouvrir le fichier d'entrée ''
I get this error when I move the mouse cursor above code into the editor window when I have code giving the error "[BCC32 Erreur] Httpcontcod.hpp(88): E2347 Mauvaise correspondance de paramètre dans le spécificateur d'accès read de la propriété Coding" as reported in report 251066.
Attached: Screen dump and code causing that trouble.
// Francois Piette Still in 2709.7128.2
|
1. unzip ics.zip in any folder. Be sure to restore directory structure. 2. open delphi\vc32\IcsBcb110.cbproj, compile and install 3. add delphi\vc32 to the path so that the components are found 4. open Cpp\Internet\Bcb2007\Bcb110Sam.groupproj 5. select and build HttpTst.exe project => You get the error reported in report 251066 6. In the code editor where the IDE has opened HttpContCod.hpp, let the mouse fly all over the code, you'll quickly get the error => [Erreur fatale] F1009 Impossible d'ouvrir le fichier d'entrée ''
|
51136
| QC# |
Project |
Area |
| 51136 |
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
[QC Short Description] REPRODUCABLE Error Insight Eats All Memory
[QC Description] I finally found something reproducable that shows Error Insight consuming memory to the point that the IDE slows to a crawl (or worse). See steps.. QC Entry 51136
[ref. 244356, looks like similar issue.] |
1) I bring up an out of the box (well, as downloaded) copy of the Delphi personality on a freshly booted machine. 2) Open a new VCL Forms Application. 3) Open the Windows Unit and the Classes Unit 4) Have Task Manager running so you can follow the Mem Usage of bds.exe. The CPU Time is interesting to watch as well. 5) When looking at the Windows Unit, you should see three Error Insight messages (QC51111). 6) Go down to the TYPE directive at line 109 and put a couple of // in front of it to comment it out. Wait patiently for about 7-10 seconds while the Error Insight list gets built in the Structure window. Get used to seeing how long this takes... 7) Switch to the Classes unit and comment out the TYPE directive on line 72 (it isn't the first TYPE) 8) You'll now see a few Error Insight messages from Classes. Leave classes with these errors. 9) Switch back to the Windows unit where the TYPE is commented out. 10) Position the cursor right after the two // you added. 11) Now comes the fun... While watching the list of Errors in the Structure box, backspace twice to delete the two // characters. As soon as big bunch of Error Insight error messages disappear (three will remain), type the two // characters again and wait for all of the Error Insight Messages to reappear (7-10 seconds). 12) Repeat step 11, alternating between having the errrors and not having the errors. Remember to delete the // as soon as the error messages finally appear and add the // back after the error messages quickly disappear. 13) Follow the Mem Usage while doing this -- things bog down when you get up to about 1.2 GIG of memory usage. (Don't forget to fix the source files when you are done) Choice of files isn't significant -- just something to generate lots of errors... Up-to-date XP 2 Gigs Memory 3.4 Gig Pentium D (so two processors) |
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
Error Insight has shows an error for code involving calling convention directives.
(JJS: See related compiler issue 238688)
// Francois Piette 2007.09.18 Still in build 2804.9245 (RAD Studio 2007) Still in build 2825.9366_VCL_Update.8
|
Load the attached program into the IDE as a Win32 app.
See that error squiggles are indicated for the code on the line marked with #1.
Nevertheless, the program compiles as expected.
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
type TMyFuncPtr = procedure (const Msg : String); cdecl; procedure MyFct(const Msg : String); cdecl; forward; const MyFctPtr1 : procedure (const Msg : String); cdecl = MyFct; //#1 MyFctPtr2 : TMyFuncPtr = MyFct; procedure MyFct(const Msg : String); cdecl; begin WriteLn(Msg); end; begin MyFctPtr1('Test1'); MyFctPtr1('Test2'); end.
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
| stdcall causes error insight errors. |
New VCL App add the following type decl;
type TTestRecord = record E1: procedure stdcall of object; E2: procedure of object stdcall; E3: procedure of object; stdcall; end;
//error insight is flagging 6 different errors. the code compiles fine. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
When the Editor options "error insigth" is enabled, Adding comments, new lines and deliting lines within a class definition is causing performance issue.
After dding few blank lines between class fields definition, the "private bytes" of the bds process increase of 1K. Removing those makes this number to increase of 1 more K per line removed.
The "Private Bytes" number will not decrease unless even when those comments or blank lines are removed. BDS needs to be re-started to see "privates bytes" number change.
[ref. 254984 for other steps.] |
1. Open a pas file with class definition
2. start process explorer and open the properties window for it - [Private bytes during at this point of this test is 139 484 K]
3. add blank lines between fields of a class definition. -[ "private bytes" = 140 828 K"]
4. remove the same lines [ "private bytes" = 144 284K"]
5. wait ....10 minutes. [ "private bytes" = 144 284K"]
will update this raid with the automated tests once it is ready
|
51428
| QC# |
Project |
Area |
| 51428 |
Delphi |
IDE\Code Editor\Help Insight |
| Description: |
Steps: |
[QC Short Description] REPRODUCIBLE Help Insight "Object Reference Not Set To An Instance of an Object"
[QC Description] I put together a relatively simple case that will give an Object Refererence Not Set To An Instance of an Object" error dialog box every time you hover over an identifier.
The same thing happens with many other symbols defined in the D3DX9 unit.
Code compiiles without error.
This has been around for a long time... QC Entry 51428
STACK TRACE IN COMMMENT. |
This uses DirectX code from the Clootie/Jedi library. Load the project title Bug in the attached files. In the main program, hover the mouse cursor over D3DXMatrixIdentity and you'll get an error dialog. D3DXMatrixIdentity is an inline procedure declared in the D3DX9 unit. |
22343
| QC# |
Project |
Area |
| 22343 |
Delphi |
IDE\Form Designer |
| Description: |
Steps: |
[QC Short Description] F1 not working from embedded form-designer
[QC Description] Selecting a control on the embedded VCL Form designer and pressing the F1 button fails to display help for the selected control.
Applies only to the embedded designer! With the floating designer F1 still works as in previous versions QC Entry 22343
[10.0.2237.38180 ( 2/16/2006) : true ] [HelpUpdate] |
!. Start a Delphi with just the Win32 personality (with the default docked layout and the embedded designer). 1. Start a Win32 project. 2. Place a TButton on the main form. 3. Click on TButton so that it is selected. 4. Press F1. In previous versions of Delphi (e.g. Delphi 5), help on TButton would be displayed. In Delphi 2006, nothing happens. |
| QC# |
Project |
Area |
|
C++Builder |
IDE\File Handling |
| Description: |
Steps: |
_GetCppExplorerController is called on multiple threads, but it is clearly not a thread safe routine. FastMM reports double free attempts on a global data module variable when working with C++ modules.
|
Run the IDESmokeTest on a machine with dual core processor. Observe FastMM error reports when reopening a C++ project (consistently, but not 100%). |
44578
| QC# |
Project |
Area |
| 44578 |
Delphi |
IDE\Open Tools API |
| Description: |
Steps: |
[Windows Vista] [QC Short Description] IDE Crashes on shutdown with DLL expert loaded
[QC Description] When this very DLL export (attached) is loaded the IDE crashes on shutdown (the Windows Vista "Blabla has stopped working" dialog shows up). QC Entry 44578
|
Install on Windows Vista (note from QA: does not occur on Windows XP)
1) Compile the attached expert project or use the included DLL 1) Add DLL expert to the registry path HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Experts using an string key such as TestExpert with a value of C:\<PathTo>\IDECodeFind2007CrashTest.dll 2) Start Delphi 2007 3) When completely started up, close the IDE using the main window caption bar X
-> EXP: IDE shuts down normally -> ACT: IDE crashes with this type of error (seen under the Delphi 2007 debugger):
--------------------------- Debugger Fault Notification --------------------------- Project D:\Borland\Delphi2007\bin\bds.exe faulted with message: 'access violation at 0x05ac6c0c: access of address 0x05ac6c0c'. Process Stopped. Use Step or Run to continue. --------------------------- OK ---------------------------
The crash happens after FinalizeWizard completes and the DLL is unloaded. The call stack at the time is like this with the top frames repeated many times: :77dcee57 ntdll.KiUserExceptionDispatcher + 0xf :77deb6a3 ; ntdll.dll :77dcee57 ntdll.KiUserExceptionDispatcher + 0xf :77deb6a3 ; ntdll.dll :77dcee57 ntdll.KiUserExceptionDispatcher + 0xf :77deb6a3 ; ntdll.dll :77dcee57 ntdll.KiUserExceptionDispatcher + 0xf :77deb6a3 ; ntdll.dll :77dcee57 ntdll.KiUserExceptionDispatcher + 0xf :2000a204 UnregisterModule + $20 :2000ac6e ; C:\Windows\SysWOW64\rtl100.bpl :77dfa664 ntdll.RtlDestroyQueryDebugBuffer + 0x100 :77deb8f2 ; ntdll.dll :77deb915 ; ntdll.dll :76a292c7 kernel32.ExitProcess + 0x15 :200078c9 @Halt0 + $C5 :00400000 ; C:\<IdePath>\bin\bds.exe |
| QC# |
Project |
Area |
|
Delphi |
IDE\VersionInfo |
| Description: |
Steps: |
IDE doesn't save version info for the localized project when the localized project for a project is present.
Clarify 672774 |
****UPDATED**** 1. I create a simple sample project (VCL forms application - Delphi for Win32) 2. I then choose Project | Languages | Add. I then choose to add French Canada. 3. I save when prompted. 4. I recompile the project when prompted. 5. I now have my project.frc in the project manager, and it compiles / works properly. 6. I then choose Project | Options and select 'Include version information in project.' 7. I can now modify the version information, such as set Major = 3. Then, File, Save all. 8. When I build the project.frc and go to view the properties on the built frc, I do not get the version info. 9. I set the same version informations on project.frc using the right-click context menu -> options. 10. If I save the project group, close it, re-open it (reopen the Project group, then activate Project.frc) and choose Project | Options, the 'Include version information in project' does appear, however, the right-click context menu of project.frc does not display the correct version information...
****ORIGINAL**** 1. I create a simple sample project (VCL forms application - Delphi for Win32) 2. I then choose Project | Languages | Add. I then choose to add French Canada. 3. I now have my project.frc in the project manager, and it compiles / works properly. 4. I then choose Project | Options and select 'Include version information in project.' 5. I can now modify the version information, such as set Major = 3. Then, File, Save all. 6. When I build the project.frc and go to view the properties on the built frc, I do not get the version info. 7. If I save the project group, close it, re-open it (reopen the Project group, then activate Project.frc) and choose Project | Options, the 'Include version information in project' is once again de-selected and all my changes are gone.
|
48947
| QC# |
Project |
Area |
| 48947 |
Delphi |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description] Class completion duplicates code when invoked on certain classes
[QC Description] When invoked on some classes, class completion will duplicate code; usually what is located in the topmost private section.
This problem is present in build 2738, but not in 2728. QC Entry 48947
|
1. Start Delphi build 2738. 2. Open the attached dupunit.pas. No need to create a project first. 3. Move the cursor somewhere in the class and invoke Class Completion (Ctrl+Shift+C). 4. The expected behavior is that nothing should change, but everything in the private section is duplicated and class completion produces code that doesn't compile. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Packages |
| Description: |
Steps: |
When a file is added to a package project and there is a .dcr with the same base name as the file, it leads to duplicate .dcr's in the project causing duplicate resource errors. [this problem was introduced to Spacely post-RTM] |
0. Install Spacely and Cogswell [an important step, the latest Spacely only does not show the problem] 1. Unzip attachment to a directory 2. File | New Delphi Package 3. Project | Add To Project and select the Unit1.pas you unzipped in step 1 4. Go to Project | Remove From Project notice the list contains:
Unit1.dcr rtl Unit1 Unit1
5. Remove one of the Unit1s 6. Go to Project | Remove From Project and notice that the list is the same or there might now be two Unit1.dcr's
alternate steps to see the duplicate dcr's 1. Unzip attachment to a directory 2. File | New Delphi Package 3. Project | Add To Project and select the Unit1.pas you unzipped in step 1 4. Go to Project Manager and remove Unit1.pas from the project 5. Go to Project | View Source and notice two entries for Unit1.dcr,e.g. package Package1;
{$R *.res} {$R '..\test\Unit1.dcr'} {$R '..\test\Unit1.dcr'}
|
50146
| QC# |
Project |
Area |
| 50146 |
Delphi |
IDE\Packages |
| Description: |
Steps: |
[QC Short Description] Project options dialog corrupts the list of DCR files in package DPK file.
[QC Description] The list of DCR files in the package DPK file gets "corrupted" to include duplicate entries, which in turn prevent the project from building. Manual editing of the DPK file can resolve the problem.
QC Entry 50146
|
0: First, copy the attached UNIT1.PAS and UNIT1.DCR to a folder on your system. (or use any other PAS/DCR pair that you have) 1: Launch RAD Studio 2: File/New Package - Delphi Win32 3: Right-click on package1.bpl in project manager, and "View Source". You'll see this at the head of the file. package Package1; {$R *.res} {$ALIGN 8} ... 4: Project/Build Package 1 - this works just fine. 5: Project/Add to Project "Unit1.pas" (from step #0) Note that the package "view source" (the DPK file) now looks like this:- package Package1; {$R *.res} {$R 'dcrbug\Unit1.dcr'} {$ALIGN 8} ... 6: Again, Project/Build Package 1 - this works just fine. 7: Open Project/Options dialog, and click "OK" to close: DPK file now looks like this package Package1; {$R *.res} {$R 'dcrbug\Unit1.dcr'} {$R 'dcrbug\Unit1.dcr'} {$ALIGN 8} ... Note: an additional line will be added each time you repeat this step!! 8: Again, Project/Build Package 1 EXPECTED: Builds ok. ACTUAL: Build fails, with error:- [DCC Error] E2161 Warning: Duplicate resource: Type 2 (BITMAP), ID 1; File C:\Users\Roddy\Documents\RAD Studio\Projects\dcrbug\Unit1.dcr resource kept; file C:\Users\Roddy\Documents\RAD Studio\Projects\dcrbug\Unit1.dcr resource discarded. *NOTE* This should be a warning, but it's being treated like a fatal error. Your package has *not* built. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Packages\Installing Components |
| Description: |
Steps: |
[ACCESS VIOLATION]
[QC Short Description] Rapport d'incident automatisé
[QC Description] Violation d'accès à l'adresse 216D53B0 dans le module 'delphicoreide100.bpl'. Lecture de l'adresse 00000004.
I was trying to compile and install a component set designed for BDS2006. There are two packages. One runtime and one design time. The runtime package compiled OK. The design time complained about a component already in the design time package and proposed to remove the unit. I asked to see the details in the remove dialog box, then clicked OK to accept removing. The access violation occured when I clicked OK. QC Entry 42271 and also 42274
It looks like it is not related at all to the attached code. I reproduced with another project. I built a sample project. See attached file PackageCrash2622.zip.
Note: DO NOT DISTRIBUTE ATTACHED CODE !
QC 42271 - removed from Ref No so field testers cannot see the attached code
// Francois Piette Still there in 2671 Still in 2798, see QC51434 Still in 2825.9366_VCL_Update.8, see QC53376
|
Steps with the simple projects attached:
1. Launch the IDE 2. Close All 3. Unzip PackageCrash2622.zip in any folder 4. Open ProjectGroup1 from PackageCrash2622.zip 5. Build Package1 6. Install Package1 7. Build package2 => The IDE pops a dialog box up to let you remove Component1 Click OK to remove Component1 => ACCESS VIOLATION 8. Shutdown the IDE => Send report to Microsoft :-)
NOTE 7/17/07 - This no longer results in an AV. It causes an duplicate resource to be added to the project Source file. if you remove this duplicate, the file now builds fine. Note by F. Piette 05/08/2007 - Build 2770.8305 still experience duplicate resource added in the package
Step to reproduce with project mentionned in QC42271:
1. Unzip/Untar the attached source code 2. Open GrizzlyBaseD10.bdsproj 3. Build GrizzlyBaseD10.bpl first => It complains about GrizzlyBaseR10.bpl not found (normal !) 4. Build GrizzlyBaseR10.bpl (Should be OK) 5. Build GrizzlyBaseD10.bpl again => Complain about HotKeyMgr 6. Check "Show details" 7. Click OK => ACCESS VIOLATION
Note: DO NOT DISTRIBUTE GRIZZLYPACK ATTACHED CODE ! Note by F. Piette 05/08/2007 - Cannot reproduce this one with build 2770.8305
|
42177
| QC# |
Project |
Area |
| 42177 |
Delphi |
IDE\Desktop Layouts |
| Description: |
Steps: |
[QC Short Description] In classic undocked mode after you close last unit you will see gray window and if you try to close it using Ctrl+F4 you will get Access violation
[QC Description] Still exists in 2625. In classic undocked mode after you close last unit you will see gray window and if you try to close it using Ctrl+F4 you will get Access violation QC Entry 42177
|
1. Open IDE. 2. Switch IDE to Classic Undocked layout. 3. Create New VCL application. 4. Close every open unit unit you will gray window. 5. Press Ctrl+F4 and see access violation Expected: After closing of last unit this window should disapear. Actual : This gray window stay in screen and it looks quite bad. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Translation Tools\Resource DLL Wizard |
| Description: |
Steps: |
[Nov 2007 Update] Resource DLL wizard does not work.
Error dialog with "There are no options" show up.
After error message, the RD wizard still active, but the project file does not contain any source files.
Note: BDS 2007 RTM (D2007 Update3) worked fine.
|
1. Create new VCL form / W32 application. save it. 2. Select "Project | Languages | Add.... 3. Error dialog with the following message.
=============== [Window Title] Error
[Content] There are no options for C:\Users\tarisawa\Documents\RAD Studio\Projects\Test\Project1.dproj ===============
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
Build Events shows up No help found for context.
Additional enabling Help Debug results in the following message in the Help Viewer:
[Help2] CanShowALinkEx ALink = BDS5:13751 ANameSpace = borland.bds5 AIndex = 2 Result = 0 |
+ Install RTM product + Create a VCL Project + Click Project | Options | Build Events + Click the Help button //exp: Information on Build Events worked //act:
--------------------------- Error --------------------------- No help found for context. --------------------------- OK Details >> ---------------------------
<details are attached> ---- ADDITIONAL ---- Used Chris B's help tool. The following information was found:
No help found for "hcBuildEventPropSheet"
No help found for "hcBuildEventEditor"
No help found for "bds5:13751"
Interestingly enough, putting in: bds5:13752 results in getting back a help page of: ms-help://borland.bds5/devcommon/buildconfigurationmanager_xml.html
[Help2] CanShowALinkEx ALink = BDS5:13751 ANameSpace = borland.bds5 AIndex = 2 Result = 0
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Help |
| Description: |
Steps: |
error message when pressing help button in project options for c++ app: No help found for context |
1. create new c++ console application 2. open project options 3. press help button
//exp: help shows up //act: error msg: no help found for context |
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
No help found when clicking button in Project Page Options dialog |
New VCL app Project|Project page Options Click Help button |
43181
| QC# |
Project |
Area |
| 43181 |
Delphi |
IDE\Help |
| Description: |
Steps: |
[QC Short Description] Pressing F1 after creating a new project doesn't work
[QC Description] Pressing F1 after creating a new project gives the error "No help found for context" QC Entry 43181
|
1. Start IDE. 2. Using the mouse, select File, New, VCL Forms Application - Delphi for Win32. Do not do anything using the mouse after that. 3. Wait until a new VCL Forms app has been created, press F1. EXP: Proper help on how to design a VCL Forms app. ACT: No help found for context |
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
| Help button for Pre-Build Event dialog brings up error: No help found for context. |
1. new VCL app for win32 2. Project | Options 3. Click on page build events 4. Click on Edit... 5. in Pre-Build Event dialog click help button
//exp: help shows up //act. error message |
21257
| QC# |
Project |
Area |
| 21257 |
Delphi |
IDE\Help |
| Description: |
Steps: |
[QC Short Description] Help needs to use Personality for Search Filter
[QC Description] Help is supposed to be helpful, I should not have to scroll massive lists of unrelated help just because the IDE doesn't bother to pass what personality should be used for the filter.
QC Entry 21257 [HelpUpdate] |
(Simple Example) 1, Open up any personality 2. Type some keyword like TObject 3. Hit F1 ---- Expected Behavior I see TObject only for that Personality (Annoying Example) 1. Open up any Personality 2. Type keyword like "Handle" 3. Hit F1. --- I shouldn't have to scroll through 40 items that don't relate to my personality to find the "open" call I want. |
47408
| QC# |
Project |
Area |
| 47408 |
Delphi |
IDE\Refactoring\Rename |
| Description: |
Steps: |
[QC Short Description] Rename refactoring does not work for non-class function parameters
[QC Description] Renaming of a Parameter that is not part of a class only renames the parameter in the implementation section but does not rename it in the declaration of the procedure/function. QC Entry 47408
|
1. start Delphi for Win 32. 2. create a new VCL application. 3. in the interface section of the form's unit (and outside of the class), declare this function (just above the Implementation keyword):
procedure DoThat( Param1: Integer );
4. in the implementation of the unit, create the following function:
procedure DoThat( Param1: Integer ); begin end;
5. right-click on the Param1 parameter from the declaration in the interface section. 6. invoke the Rename refactoring and change the name to Param2. 7. the name of the parameter is changed in the implementation section, but not in the interface. 8. invoking Rename on Param1 from the implementation for the procedure will also not rename the parameter in the declaration of the procedure.
|
48365
| QC# |
Project |
Area |
| 48365 |
Delphi |
IDE\Start Page |
| Description: |
Steps: |
[QC Short Description] When selecting a Newsfeed, the displayed dates of items are about a month in the future
Example: CodeGear Developer Days June 2007 - The Replays C++Builder, Delphi 2007 for Win32, Delphi for PHP and InterBase technical sessions Posted on: Sunday, 29 July 2007
CodeGear - Delphi for Win32 - TRY IT NOW! eDM for Delphi 2007 for Win32 Posted on: Sunday, 29 July 2007 QC Entry 48365
|
Open the IDE. Click on 'Select Newsfeed' in the top right Select 'Delphi' //note the dates displayed on the items reference the dates on the public website using regular browser //note the date difference
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
[STRING CORRUPTION] Message characters when I canceled Install were corruption. (InstallAware Wizard) |
1. Run Setup.exe 2. Click Cancel Button At once (InstallAware Wizard) |
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
| When choosing View, Data Explorer from a fresh installation of RAD Studio 2007 R2 Architect, Data Explorer shows Object not set to an instance of an object. And there's no Ado.Net data providers shown in Data Explorer. |
1. Install RAD Studio 2007 R2 Architect with all features on Windows XP 2. Start IDE. 3. Choose View, Data Explorer
EXP: No errors ACT: Object not set to an instance of an object. And there's no Ado.Net data providers shown in Data Explorer.
Alternative steps
RAD Studio 2007 RTM Arch on Windows XP 1. Select Modify, Repair or Uninstall from RAD Studio menu on Windows XP (assumes existing installation) and that all features are installed. 2. Select Repair, and click Next and complete the process. 3. Start IDE. 4. Choose View, Data Explorer
EXP: No errors ACT: Object not set to an instance of an object. And there's no Ado.Net data providers shown in Data Explorer.
|
51030
| QC# |
Project |
Area |
| 51030 |
Delphi |
Install |
| Description: |
Steps: |
[QC Short Description] ESD Help installer & 7zip files installed to bad location - prevents network install
[QC Description] When the ESD installer stub is used to install Highlander, it downloads the instal 7zip files to a location of the user's choice, then unzips them into the Documents and settings\all users directory and continues installation from there.
With the breakout of the help installer into a separate procedure, this is no longer true of the help install - The installer and 7zip files for the help system are downloaded to c:\documents and settings instead.
Because of this, If I use the install image on the network to install to several workstations, each of the workstations must face a lengthy download of the help system files.
There may be a way to make the help install automatically if the files are copied to the network/external hd, but if there is it is not obvious, and really should not be necessary.
Only obvious "solution" is to copy the Help install files from documents and settings to each workstation prior to running install. Install should work without such hacks.
QC Entry 51030
|
Download install.exe to a network or external drive. Run install. Attach a different workstation to the network or external drive Run install from second workstation Exp: Install for second workstation will use data downloaded to the network or external hd and will not need to download any files from the internet. Act: RAD Studio is installed without downloading additional files from the internet, but the Help install files are not available to the second workstation, so it spends an additional 3.5 hours downloading them (actual time from my workstation at work). |
| QC# |
Project |
Area |
|
C++Builder |
Install |
| Description: |
Steps: |
REGRESSION If Rave is installed, prior to Nov 2007 update, path is removed when you do the Nov 2007 update. Be sure to keep the path: $(BDS)\RaveReports\Lib If Rave is installed ------------ ORIGINAL ----------------- Build a basic C++ application with RAVE installed results in: Unable to find package import: Rave75VCL.bpi
If you remove the reference then it builds fine.
|
+ Have a highlander RTM with Rave installed + Click Tools | options | Library - Win32 + Examine library path //exp & act: You will see $(BDS)\RaveReports\Lib in the list.
+ Install the Nov 2007 patch + Click Tools | options | Library - Win32 + Examine library path //exp You will continue to see $(BDS)\RaveReports\Lib in the list. //act: Path is gone
+ File | New | VCL forms Application - C++ Builder + Project | Build //exp: no errors: // act: Find Package Import ------------------------------- Unable to find package import: Rave75VCL.bpi Package Import: <edit box> Remove this Ref? (checkbox) ------------- Don't ask again OK Cancel Help |
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
Help Update Install AND Uninstall
It closes without any notification. Shouldnt we get a dialog with 'Finish' or Install Completed' for instance ?
Uninstall also do not notify when is completed. |
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
missing Intraweb_90_100.bpl and IntrawebDB_90_100.bpl under System32
[Please check #255286] |
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
| Check for Update 3 shows up on a Highlander RTM build and should not. |
+ Bring up a Highalnder RTM build + Change to swintern to get "akami" like install + click through the install //exp: no notification that the Help could not be found and that users should make sure that they are installing over an Update 3 version //act: notifiction occurs.
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
Help Update
Add ability to detect and only install teh Update if machine has Update 3 or Highlander installation.
|
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
[Spacely+Highlander Update] - regression
Exception when dropping objects (connection or table) to the form.
System.IO.FileNotFoundException: Could not load file or assembly 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' or one of its dependencies. The system cannot find the file specified. File name: 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' at Borland.Data.Explorer.DataExplorerIDEImpl.CreateDBXConnection(TreeNode aNode) at Borland.Data.Explorer.DataExplorerIDEImpl.DragDrop(Object Sender, ItemDragEventArgs Event) at Borland.Data.Explorer.DataExplorerControl.a(Object , ItemDragEventArgs ) at System.Windows.Forms.TreeView.OnItemDrag(ItemDragEventArgs e) |
Install Spacely + Highlander - using 'old keys' ---Update3 Run DE drag and drop any table from DE to the form
Borland.VclDbExpress should have been included in the update for dataexplorer functionality to work. |
| QC# |
Project |
Area |
|
Delphi |
Install\Install Execution |
| Description: |
Steps: |
| [VCL Patch] The patch install (not injection) hangs on Vista at the "validating install" phase. |
Run the setup for the VCL patch. At "validating install", the setup will not progress; the dialog is responsive, but the status message will not update, and if logging is enabled, logging will stop. |
| QC# |
Project |
Area |
|
Delphi |
Install\Registry settings |
| Description: |
Steps: |
About box show incorrect update version: It says "october" instead of "november". See screen dump.
|
|
| QC# |
Project |
Area |
|
Delphi |
Database |
| Description: |
Steps: |
| [November Patch] An application with a SQLConnection fails to build with an error File not found: 'DBXClentDataSetStorage.dcu'. |
Install November patch. New VCL Win32 app. Drop a TSQLConnection, build. Compiler error results. |
| QC# |
Project |
Area |
|
Delphi |
Database |
| Description: |
Steps: |
According to documents and datasheets, only 1 User / 4 Connections are available on Blackfish SQL Desktop Edition, which comes with RAD Studio 2007 Professional Edition.
But, in fact, we can make 8 connections using client application. Then, if we try to create 1 more connection, AV occurs.
This is As Designed?
sshaughnessy: I looked at this and was able to launch 8 DataExplorer before getting the proper error message. The code is giving 4 more connections than it should. 1 user gets 4 connections. I don't know what the AV is from. Need a reproducable test case.
Tomohiro Takahashi: sorry, AV means error dialog box. |
TDBXHighlanderBugsSuite.Managed.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255287 (see comment on this testcase)
-OR-
1) Install RAD Sutdio 2007 Professional Edition
2) start Blackfish SQL
3) build client application which creates one connection
4) shutdown IDE
5) run 9 applications at the same time |
26179
| QC# |
Project |
Area |
| 26179 |
Delphi |
Database\Fields Editor |
| Description: |
Steps: |
[QC Short Description] SortFields Editor failure (on move one-by-one field)
[QC Description] On click over the button to move one field from one side to another side ... the field disappear on the editor form.... QC Entry 26179
[Nov Update] |
Steps: New Project (VCL Forms Application) ... Place one SQLConnection on form .... Configure the connetion (in my case for oracle) ... connect to database ... place one SQLDataSet ... link the SqlDataSet.SQLConnection To SQLConnection ... set commandType to clTable ... in CommandText select the table .... in SortFieldNames, click in button to call the editor ... in the editor, try to add one field to "Order by fields:" .... |
49558
| QC# |
Project |
Area |
| 49558 |
Delphi |
Database\Decision Cube Controls |
| Description: |
Steps: |
[QC Short Description] Applications that use Decision Cube do not compile in D2007
[QC Description] It is a discusion in the newsgroups.borland.com borland.public.install.delphi:18804 QC Entry 49558
|
Import and compile application that uses decision cube |
| QC# |
Project |
Area |
|
Delphi |
Database\Drivers\InterBase |
| Description: |
Steps: |
The DBX4 InterBase driver is unable to cope with the following query:
SELECT * from test
where * represents 206 integer columns
When the Active property is set to true, an error message "unassigned code" is returned. Normally InterBase returns this when some buffer has overflowed. The dbx driver would need to increase the size of this buffer in order for the query to execute successfully. IBConsole can successfully run this query.
Also DBX3 appears to be able to successfully run this query |
TDBXHighlanderBugsSuite.Managed.exe connection=ibconnection -s:oTestRaid_255708
or
TDBXHighlanderBugsSuite.Native.exe connection=ibconnection -s:oTestRaid_255708
or
1. Connect a TSQLConnection to an InterBase database of your choice. 2. Create the following table from the create statement attached.
3. Connect up a TSQLQuery component to the TSQLConnection and set the SQL property to:
SELECT * from test
The unassigned code error is returned. |
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
CLOB field does not use UNICODE enabled field type. TDBXValu.GetWideString method cause error at truntime.
Under Oracle server with Intl. setting, All character type filed (include CLOB, CHAR and VARCHAR) are able to contain any character.
We have to provide GetWideString method for these field avoiding lose Intl. characters. |
TDBXBugsSuite.Native.exe connection=oracleintlconnection -s:oTestRaid_255910
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
DBXReader.Size does not match with field's size.
For example, DBXReader.Size should return 11 for Char(10) field, but the shipping driver return 22.
--------------------------- Project TDBXBugsSuite.Native.exe raised exception class ETestFailure with message 'Size: exp: 11. act: 22'.
|
TDBXBugsSuite.Native.exe connection=oracleintlconnection -s:oTestRaid_255911
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
Where clause is not able to use parameterized value if a target field is "Char" type.
VarChar works fine.
--------------------------- Project TDBXBugsSuite.Native.exe raised exception class ETestFailure with message 'No affect'.
|
TDBXBugsSuite.Native.exe connection=oracleintlconnection -s:oTestRaid_255913 |
659
| QC# |
Project |
Area |
| 659 |
Delphi |
Database\DBExpress |
| Description: |
Steps: |
[QC Short Description] Interbase driver issuing isc_commit_retaining for select statements
[QC Description] Even with CommitRetain set to false, the driver is issuing isc_commit_retaining for select statements. I have a simple project that opens a parameterized query and then does an insert, with an SQLMonitor to show the statements, as well as dumping the values of the connection params right after connection. Here is the debugging output:
ODS: sql: INTERBASE - isc_attach_database ODS: SQLConnection1.Params (13 elements) ODS: ...<DriverName=Interbase> ODS: ...<BlobSize=-1> ODS: ...<CommitRetain=False> ODS: ...<Database=copland:\interbasedata\maestrocfs.gdb> ODS: ...<ErrorResourceFile=> ODS: ...<LocaleCode=0000> ODS: ...<Password=maestro> ODS: ...<RoleName=RoleName> ODS: ...<ServerCharSet=> ODS: ...<SQLDialect=3> ODS: ...<Interbase TransIsolation=ReadCommited> ODS: ...<User_Name=maestro> ODS: ...<WaitOnLocks=True> ODS: sql: INTERBASE - isc_dsql_allocate_statement ODS: sql: INTERBASE - isc_start_transaction ODS: sql: select * from TRADES where TRADE_ID = ? ODS: sql: INTERBASE - isc_dsql_prepare ODS: sql: INTERBASE - isc_dsql_describe_bind ODS: sql: INTERBASE - isc_dsql_execute ODS: sql: INTERBASE - isc_dsql_fetch ODS: sql: INTERBASE - isc_commit_retaining ODS: sql: INTERBASE - isc_dsql_free_statement ODS: sql: INTERBASE - isc_start_transaction ODS: sql: INTERBASE - c_dsql_allocate_statement ODS: sql: insert into "TRADES" ("TRADE_ID", "CLIENT_ID", "PRODUCT_ID", "ORG_ID", "PERS_ID", "USER_ID", "TRADED_ON", "ENTERED_ON", "PRINCIPAL", EVENUE_GROSS", "TRADE_STAT_ID") values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ODS: sql: INTERBASE - isc_dsql_prepare ODS: sql: INTERBASE - isc_dsql_sql_info ODS: sql: INTERBASE - isc_vax_integer ODS: sql: INTERBASE - isc_dsql_describe_bind ODS: sql: INTERBASE - isc_dsql_execute ODS: sql: INTERBASE - isc_dsql_free_statement ODS: sql: INTERBASE - isc_dsql_free_statement ODS: sql: INTERBASE - isc_commit_transaction [Nov Update] |
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW driver.
GetIndexColumns metadata function of DBX cause AV if dbxoraW30 driver.
Error message is: Project TDBXBugsSuite.Native.exe raised exception class EAccessViolation with message 'Access violation at address 02AB0000 in module 'dbxoraW30.dll'. Write of address 02AB0000'.
|
TDBXBugsSuite.Native.exe -s:oTestRaid_255728
Project TDBXBugsSuite.Native.exe raised exception class EAccessViolation with message 'Access violation at address 02AB0000 in module 'dbxoraW30.dll'. Write of address 02AB0000'.
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress\TSQLConnection |
| Description: |
Steps: |
Customer is reporting that the TSQLConnection component seems to have a memory leak. if dbxdrivers.ini and dbxconnections.ini files are not available.
In TSQLConnection.DoConnect TDBXConnection.GetConnectionFactory raises exception when ini files are not there, TDBXMemoryConnectionFactory is then created but never freed.
This seems to be similar to QC 42824 and also RAID:248340
|
1. Create a new app. 2. Setup a SQLConnection to a interbase table 3. Add a Open and Close on FormCreate and FormClose 4. Set ReportMemoryLeaksOnShutDown to true.
procedure TForm7.FormClose(Sender: TObject; var Action: TCloseAction); begin SQLConnection1.Close; end;
procedure TForm7.FormCreate(Sender: TObject); begin SQLConnection1.Open; end;
initialization ReportMemoryLeaksOnShutdown := true;
Results:
1 - 12 bytes TDbxClosedByteReader x1 13 - 20 bytes TdbxMemoryConnectionFactory x1 37 - 44 bytes TdbxContext x 1 61 - 68 bytes TWideStringList x2 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
Cannot write Oracle NChar, or NVarchar to database.
Trying to write NChar or NVarchar produces the following exception: TDBXError with message 'ORA-01036: illegal variable name/number
|
Please open the TDBXBugs suite and look at test method for this RAID entry. TDBXBugs suite is located: http://dtg-svn.borland.com/svn/bdstests/trunk/UnitTest/projects/database/dbexpress/Bugs
TDBXBugsSuite.Native.exe connection=oracleconnection -s:TestRaid_245660 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
Cannot write Oracle NClob to database.
Trying to write NClob produces: TDBXError with message 'ORA-22275: invalid LOB locator specified
This was busted out per request from Raid 245660. |
See TDBXBugsSuite.Native.exe connection=oracleconnection -soRaid_253754 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
| When a timestamp is inserted in a native application into a blackfish database using the data generator, hours does not always match when read back through a Reader. |
DataAccess.Native.exe connection=blackfishsqlconnection -s:TestReadWriteAll
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
#6 - For SqlConnection.GetTableNames the tablescope property is not being respected for either dbxmss30.dll when you include tsSysTable in addition to tsTable.
For MsSql you are calling sp_table_rowset which only accepts 1 table type, and not a set of table types. If you specify just tsSysTable then it works.
|
|
| QC# |
Project |
Area |
|
Delphi |
Database\Data Explorer |
| Description: |
Steps: |
Database|Modify Database menu off the database node has trouble finding resources
[Nov Update] |
Open a Blackfish SQL employee database select the Database|Modify Database menu Error occurs:
System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "Borland.Data.Explorer.ModifyDatabaseDialog.resources" was correctly embedded or linked into assembly "Borland.Data.Explorer" at compile time, or that all the satellite assemblies required are loadable and fully signed. at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) at System.Resources.ResourceManager.GetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) at System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo culture, ResourceSet& resourceSet) at System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo culture, ResourceSet& resourceSet) at System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo culture, ResourceSet& resourceSet) at System.ComponentModel.ComponentResourceManager.ApplyResources(Object value, String objectName, CultureInfo culture) at System.ComponentModel.ComponentResourceManager.ApplyResources(Object value, String objectName) at Borland.Data.Explorer.ModifyDatabaseDialog.InitializeComponent() in c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DatabasePropertiesDialog.cs:line 59 at Borland.Data.Explorer.ModifyDatabaseDialog..ctor(ConnWrapper conn) in c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DatabasePropertiesDialog.cs:line 25 at Borland.Data.Explorer.DataExplorerControl.miModifyDatabase_Click(Object sender, EventArgs e) in c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DataExplorerControl.cs:line 2324 at System.Windows.Forms.MenuItem.OnClick(EventArgs e) at System.Windows.Forms.MenuItem.MenuItemData.Execute() at System.Windows.Forms.Command.Invoke() at System.Window |
| QC# |
Project |
Area |
|
Delphi |
Database\Data Explorer |
| Description: |
Steps: |
"Confirm Password:" lable of Database|Change Password dialog is not alligned properly.
[Nov Update] |
Open a Blackfish SQL employee database select the Database|Change password
"Confirm Password:" overlaps the field to the right.
|
| QC# |
Project |
Area |
|
Delphi |
Database\Data Explorer |
| Description: |
Steps: |
Change password encounters exception.
[Nov Update] |
Open a Blackfish SQL employee database select the Database|Change password Change password and hit ok. Exception occurs:
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text ************** System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.Collections.ArrayList.get_Item(Int32 index) at Borland.Data.DataStore.DataStoreParameterCollection.get_Item(Int32 index) at Borland.Data.DataStore.DataStoreParameterCollection.GetParameter(Int32 index) at System.Data.Common.DbParameterCollection.get_Item(Int32 index) at Borland.Data.Explorer.ChangePasswordDialog.btnOK_Click(Object sender, EventArgs e) in c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\ChangePasswordDialog.cs:line 128 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
From Daniel Magin:
there is a bug in GET_INDEX_COLUMNS(string catalogPattern, string schemaPattern, string tablePattern, string indexPattern)
thee indexPattern Parameter did not work. only fyi |
Run the nunit test: NDataStore.JdsTestSuite_NDSCONNECTION.dll SqlBugs.bug255455
or in Java: SqlBugs.bug255455 |
| QC# |
Project |
Area |
|
Delphi |
VCL |
| Description: |
Steps: |
(Patch3)
After apply Patch on Spacely RTM, Running application will cause IDE shrink size even thought IDE still in Maximize mode. Try to resize IDE, the mosue cursor behave strange, please see steps |
1. Install Spacely RTM 2. Start IDE 3. File | New | VCL Application 4. Run // notice: when IDE switch to debug mode, IDE size do not change 5. Close IDE 6. Install Patch3 7. Start IDE 8. File | New | VCL Application 9. Run // notice this time, IDE change the size, even window still show "Maximize" button 10. Use mouse to resize IDE // mouse cursor position JUMP to Form Designer
note: without running application, just change IDE layout will reproduce this problem |
| QC# |
Project |
Area |
|
Delphi |
VCL |
| Description: |
Steps: |
| Shown dialog will show in TaskManager in Application tab on Vista |
1. File | New | VCL Application 2. drop a TButton and TColorDialog 3. double click Button1 for OnClick event 4. add code as: ColorDialog1.Execute;
5. Run, click the Button // ColorDialog show 6. run TaskMan 7. click Application tab // there is an item name "color", you can max/min/kill it.
|
52256
| QC# |
Project |
Area |
| 52256 |
Delphi |
VCL\Core VCL Classes\TApplication |
| Description: |
Steps: |
Taskbar button is not hidden when the MainForm is hidden and MainFormOnTaskbar is False.
Regression. |
* File New VCL Application * Drop a button on the form * In the OnClick handler, enter "Hide;" * View | Project Source * Set Application.MainFormOnTaskbar := False; * Run, click on the button // Exp: The taskbar button is hidden // Act: The taskbar button is still visible |
51831
| QC# |
Project |
Area |
| 51831 |
Delphi |
VCL\Core VCL Classes\TWinControl |
| Description: |
Steps: |
[QC Short Description] Edit, Memo, ComboBox, ... context menus are not displayed anymore
[QC Description] The fix for QC 42752 broke the default context menus for TEdit, TMemo, TComboBox and all other windows controls with a default popup menu. QC Entry 51831
|
1. Create a new VCL application 2. Drop a TEdit on the form 3. Start the application 4. Right click on the edit Expected: The Cut/Copy/Paste/Delete popup menu appears Actual: Nothing happens because the "Exit" in the TWinControl.DefaultHandler stops the processing of WM_CONTEXTMENU |
46134
| QC# |
Project |
Area |
| 46134 |
Delphi |
VCL\Dialog Controls\TOpenDialog |
| Description: |
Steps: |
[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
|
Create an application with a TOpenDialog and a TButton. Set TOpenDialog.Options.foShareAware to True In the button's click handler, call OpenDialog.Execute Run the program Click the Button Try to select a file that would normally raise a share violation Expected: Select the file, ignoring the share violation Actual: A warning dialog is displayed with the file name followed by "Not implemented" |
| QC# |
Project |
Area |
|
Delphi |
VCL\Standard Controls\TLabel |
| Description: |
Steps: |
Vista / Aero / DBCS
Under Vista / Aero Tlabel on GlassFrame does not draw correctly if a caption contains DBCS character.
See attached screen shot.
TSpeedButton has a same problem. |
See attached project and screen shot on Vista/Aero |
51845
| QC# |
Project |
Area |
| 51845 |
Delphi |
VCL\Standard Controls\TMainMenu |
| Description: |
Steps: |
[QC Short Description] TMainMenu not painted in form designer on Vista with Standard or Classic scheme
[QC Description] On Vista (x64) the TMainMenu is not painted in the form designer if the scheme is Standard of Classic. Not Painted means the space for the menu is reserved, but you see at the position where the menu should appear what was at this position before you switched to the form designer. The same issue exists for VCL.NET projects.
With the Aero or Vista Basic scheme or with D2007 Update 1 on W2k everything is okay.
I've attached an example project and two images. QC Entry 51845
|
- on Vista (x64) select the color scheme "Standard" or "Classic" - start Highlander - open the example project (or create a new VCL Forms Application, add a TMainMenu and add some items) expected: - the main menu with the items is visible actual: - the main menu is not visible -> see image QC*MainMenuInDesignerWithVistaStandard.png - close Highlander (otherwise QC 49128 (RAID: 252631) "Switching Windows designs may destroy the IDE layout" would occur) - switch the color scheme to "Vista Basic" or "Aero" - start Highlander - open the example project (or create a new VCL Forms Application, add a TMainMenu and add some items) expected: - the main menu with the items is visible actual: - the main menu with the items is visible (as expected) -> see image QC*MainMenuInDesignerWithVistaAero.png |
52671
| QC# |
Project |
Area |
| 52671 |
Delphi |
VCL\Standard Controls\TMainMenu |
| Description: |
Steps: |
Under Vista with Theme, if TMenuItem has DBCS character in caption, and the menu item has a bitmap, Unexpected garbage characters are displayed.
Spacely/Cogswell works fine.
See attached bitmap.
255408-XPCompatible-mode is what I expected. 255408-Vista is actual result.
Some rare case, The application cause AV.
[See. 255411] |
|
| QC# |
Project |
Area |
|
C++Builder |
VCL\Emulation Classes |
| Description: |
Steps: |
From: "Daryl" <devaccount@hotmail.com> Newsgroups: borland.public.cppbuilder.non-technical Sent: Thursday, July 05, 2007 12:41 AM Subject: Linker error after applying HOTFIX13
I have just applied HOTFIX13 and an application that automates EXCEL now has a linker error - can anyone please help with how to get rid of it.
thanks daryl
[Linker Error] Error: Unresolved external '__fastcall System::Variant::operator =(wchar_t *)' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\BCBOFFICE2K.LIB|Excel_2K_SRVR.cpp
We need to pull the office package files from the HF 13 build tree. |
|
| QC# |
Project |
Area |
|
Delphi |
Debugger\Stepping |
| Description: |
Steps: |
If you have "minimize on run" selected in Tools | Options | Environment Options and try to debug a program with two breakpoints set, the IDE stops on first breakpoint but when you press F9 to stop on the next breakpoint the IDE does not maximize but remains down on the taskbar.
You must then click on the taskbar icon in order to bring up the IDE.
|
1. Extract attached files and open up the project in Rad Studio. 2. In Rad Studio, select Tools | Options | Environment Options and select "Minimize On Run". 3. In MinimizeU.pas, place a breakpoint on line 31 and line 37. 4. Hit F9 to launch the app from within the IDE. 5. Click the button. 6. First breakpoint is hit so hit F9 again to run the app to the next breakpoint.
exp: IDE should maximize and cursor should be at line 37. act: IDE remains minimized. |
| QC# |
Project |
Area |
|
Delphi |
Debugger\CPU |
| Description: |
Steps: |
| After closing and reopening the CPU view, attempting to use the main IDE window to search in either the disassembly or dump panes causes an access violation |
Create a delphi win32 console app F8 to step View | Debug Windows | CPU Windows | Entire CPU Focus either the dump pane or the disassembly pane Seelct Search | Find from the main IDE menu Close the CPU Search bytes dialog
Close the CPU view View | Debug Windows | CPU Windows | Entire CPU to reopen it Focus either the dump pane or the disassembly pane Seelct Search | Find from the main IDE menu
Exp: the Enter Search Bytes dialog comes up Act: Access violation |
42695
| QC# |
Project |
Area |
| 42695 |
Delphi |
Internet |
| Description: |
Steps: |
[QC Short Description] CGI WebService on Windows Vista / IIS 7.0 Fails
[QC Description] I tried to register a CGI WebService on Windows Vista / IIS 7.0 and the fowlling error appears :
HTTP 502.2 - Bad Gateway
If this WebService is converted into ISAPI WebService, it works fine. QC Entry 42695 |
One hack to workaround this is to turn off IO checks here:
TCGIApplication.Run; begin ... + {$I-} Reset(Input); {$I+} + IOResult; ... end
I've verified this hack at least lets the CGI startup and run without the mentioned 502 error, but this probably isn't the best fix. For more discussion/steps see: http://qc.borland.com/wc/qcmain.aspx?d=42695
---- cwchua's workaround: Add VistaCGIApp.pas to a CGI application and it would work on Vista. I've attached VistaCGIApp.pas to this RAID.
Note that one web action item needs to have it's default property enabled. Otherwise, if there are no PathInfo matches, the CGI would still return 502.2 on Vista.
|
15265
| QC# |
Project |
Area |
| 15265 |
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
[QC Short Description] IXMLNode converts xs:boolean to False where it should be false
[QC Description] I generated an interface from an XML schema. The type type="xs:boolean" creates a boolean property in the interface.
When I create an XML document from this interface the boolan values are set to False where this should be false.
see also http://www.w3.org/TR/xmlschema-2/#boolean QC Entry 15265
|
(see attached project) - Create an XSD with an attribute type="xs:boolean" - Use the databinding wizard to create an interface - create an XML document from the interface |
| QC# |
Project |
Area |
|
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
| Exception when clicking on elements of "Schema Components" |
Create a Delphi project. File | New | Other | Xml | Xml Data Binding Find a schema file. Next Click on any schema component (complex or simple type) -- exception (something about 'has no single text node') |
| QC# |
Project |
Area |
|
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
| Duplicate property getters and declarations in binding produced from Microsoft.Build.Core.xsd |
Create a new Delphi app. File | New | Other | Xml | Xml Data binding Point at c:\windows\microsoft.net\framework\v2.0.50727\MSBuild\Microsoft.Build.Core.xsd Finish the wizard so you get Microsoft.Build.Core.pas Project | Compile. -- errors because of duplicate getters and prop decls. |
47225
| QC# |
Project |
Area |
| 47225 |
Delphi |
Compiler |
| Description: |
Steps: |
[QC Short Description] Compilation 7 times slower after installing update 1!
[QC Description] After installing update 1 there is a significant delay after selecting |compile project".
In Original version everything works fine. After some changes in a large project (3mln lines) compilation starts immediately and completes in about 20 sec.
After installing update 1 it takes 155 second. After selecting "compile project" processor utilization hits 100% and IDE hangs for 1 minute before anything in compile window happens.
I run Vista on 2 dual core Xeon processors and 4GB RAM. QC Entry 47225
|
Load large project. Change some code and select Compile Project. |
51456
| QC# |
Project |
Area |
| 51456 |
C++Builder |
Compiler\C++ |
| Description: |
Steps: |
[QC Short Description] Internal Compiler error
[QC Description] Compiling file, ClassFileStream.cpp(429) Internal compiler error at 0x609ec22 with base 0x6010000
QC Entry 51456
5.6.1: compiles fine 5.8.3.1 : compiles fine 5.9.1: compiles fine (rev 107) 5.9.2 ICE (cppbinaries rev 118) 5.A ICE
|
VIEW COMMENT for simplify steps
1.bcc32 -D_DEBUG;NO_STRICT;_RTLDLL -vG -c -v -w- ClassFileStream.cpp
[ if -vG AND __RTLDLL is removed from the command line then there is no ICE ]
CodeGear C++ 5.92 for Win32 Copyright (c) 1993, 2007 CodeGear ..\Common\ClassFileStream.cpp: Fatal F1004 \ClassFileStream.cpp 429: Internal compiler error at 0x4931 96 with base 0x400000 in function FileStream::Open(const char *,const char *,bool) Fatal F1004 ..\Common\ClassFileStream.cpp 429: Internal compiler error in function FileStream::Open(const char *,const char *,bool)
OLD STEPS Using subversion download the open source project
http://code.google.com/p/crylib/source version 99. (latest as of this time).
Open the classbuilder project (CryLib\crylib\src\Borland) and build it.
The code looks pretty simple to me. But it dies consistantly at this point. |
20137
| QC# |
Project |
Area |
| 20137 |
C++Builder |
Compiler\C++ |
| Description: |
Steps: |
[QC Short Description] [C++ Error] xmemory(53): E2045 Destructor name must match the class name
[QC Description] Fails to compile a very basic code. See the steps for details.
QC Entry 20137
|
bcc32 -c 233254.cpp
//exp : clean compile //res : errors Error E2045 d:\borland\dexter\include\dinkumware\xmemory 53: Destructor name must match the class name in function void _Destroy<complex<float> >(complex<float> *) Error E2045 d:\borland\dexter\include\dinkumware\xmemory 53: Destructor name must match the class name in function void _Destroy<complex<float> >(complex<float> *)
pointing at this template<class _Ty> inline void _Destroy(_Ty *_Ptr) { (_Ptr)->~_Ty(); } |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End |
| Description: |
Steps: |
New Plum Hall test fails 342Y2_13c_s
ADL test fails to compile |
1. bcc32 -c -A 242887.cpp //exp : clean compile //res : Error E2268 242887.cpp 28: Call to undefined function 'f' in function main() |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End |
| Description: |
Steps: |
| we don't detect the presence of a copy constructor that takes a cosnt reference if a copy constructor that takes a nonconst reference is present. |
1. bcc32 -c 230383.cpp
//exp : clean compile //res : error Error E2285 230383.cpp 14: Could not find a match for 'ap::ap(const ap&)' in function main()
2. bcc32 -c -DWORKAROUND 230383.cpp //this works |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
| Attempt to destroy invalid object when an exception is thrown after new'ing an object and creating a stack based object in a constructor. |
1. bcc32 239998.cpp 2. 239998.exe
//exp : constructor and destructor counts and addresses match //res : operator new() returned 008733F8 Class2 at 0012FF08 operator new() returned 00873424 throw ~Class3 at 00873424 (invalid, object does not exist)
Ctor/dtor counts match. Ctor/dtor addresses DO NOT match. |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
Runtime bug in exception handling. Four objects are constructed, only three are destructed. The last object is never destroyed, which could have extremely serious consequences, depending on behavior of object destructor.
Output:
D:\bugs>bug19 Object constructor: 0012FF80 Object constructor: 0012FF58 Copy constructor0012FF50 Copy constructor007D340E destructor: 0012FF58 destructor: 007D340E destructor: 0012FF80 1
The final int in the output is the number of undestroyed objects.
One interesting result I found by experimentation is that if the constructor of Object takes a char const * instead of the std::string reference, the leak is gone!
(What's the parameter got to do with cleanup?)
The worst part about this is that the leak is very subtle, and most people wouldn't notice that it's not destructing the object, but may wonder why their application is behaving oddly.
(Does this belong in "backend" category?) |
bcc32 120869.cpp 120869.exe //res: Object constructor: 1245056 Object constructor: 1244984 Copy constructor1244976 Copy constructor10501574 destructor: 10501574 destructor: 1245056 2 //exp: Object constructor: 0012FF6B Object constructor: 0012FF27 Copy constructor0012FF07 destructor: 0012FF27 destructor: 0012FF07 destructor: 0012FF6B 0 |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
Returning a local object and binding a const reference to the return is this case causes a runtime crash. //#define TRACE_UNWIND_BUG
#ifdef TRACE_UNWIND_BUG #include <iostream> #include <iomanip> using namespace std; #endif
class foo { public: foo(); foo(const foo&); ~foo();
enum { data_size = 10000 };
private: foo& operator=(const foo&);
#ifndef TRACE_UNWIND_BUG private: char* data; #endif };
foo::foo() #ifndef TRACE_UNWIND_BUG : data(new char[data_size]) #endif { #ifdef TRACE_UNWIND_BUG cout << "foo::foo(\"this = 0x" << hex << this << ")" << endl; #endif }
foo::foo(const foo&) #ifndef TRACE_UNWIND_BUG : data(new char[data_size]) #endif { #ifdef TRACE_UNWIND_BUG cout << "foo::foo(const foo&\"this = 0x" << hex << this << ")" << endl;
#endif }
foo::~foo() { #ifdef TRACE_UNWIND_BUG cout << "foo::~foo(\"this = 0x" << hex << this << ")" << endl; #else for(unsigned i = 0; data_size != i; ++i) { data[i] = i % 128; } delete [] data; #endif }
foo get_foo() { return foo(); }
void test_unwind(unsigned i) { foo f1; if(0 == i) { const foo& f2 = get_foo(); #ifdef TRACE_UNWIND_BUG cout << "throw" << endl; #endif throw 1; } foo f3; test_unwind(--i); }
int main() { try { test_unwind(2); } catch(...) { } }
|
bcc32 -DTRACE_UNWIND_BUG 159056.cpp 159.056.exe //act: foo::foo("this = 0x12ff48) foo::foo("this = 0x12ff40) foo::foo("this = 0x12fef8) foo::foo("this = 0x12fef0) foo::foo("this = 0x12fea8) foo::foo("this = 0x12fe98) <==== throw foo::~foo("this = 0x12fea0) <==== foo::~foo("this = 0x12fea8) foo::~foo("this = 0x12fef0) foo::~foo("this = 0x12fef8) foo::~foo("this = 0x12ff40) foo::~foo("this = 0x12ff48) < then may crash with AV > //exp: (from VC6) foo::foo("this = 0x0012FF44) foo::foo("this = 0x0012FF48) foo::foo("this = 0x0012FF18) foo::foo("this = 0x0012FF1C) foo::foo("this = 0x0012FEEC) foo::foo("this = 0x0012FEE4) throw foo::~foo("this = 0x0012FEE4) foo::~foo("this = 0x0012FEEC) foo::~foo("this = 0x0012FF1C) foo::~foo("this = 0x0012FF18) foo::~foo("this = 0x0012FF48) foo::~foo("this = 0x0012FF44) |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
| This code gets an access violation because of invalid stack unwinding. |
bcc32 168852.cpp 168852.exe //act: crashes //exp: runs, returns 0 |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
| attached code incorrectly calls the desctructor of a partially constucted object when an exception is thrown. |
1. bcc32 218689.cpp 2. 218689.exe
//exp : output : BEGIN END
//res : output : BEGIN ERROR CALL !!! END |
18550
| QC# |
Project |
Area |
| 18550 |
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
A continue in a catch block (that is nested inside a for loop), where the catch argument is a class by value, causes that catch argument not to be destructed. Something like: for (int i=0; i<1; i++) { try { throw foo(); } catch( foo bar) { continue; } }
causes "bar" not to be destructed. [QC Entry 18550] |
bcc32 72199.cpp 72199.exe
//act: failed
//exp: passed
|
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
Plumhall c++ _154Y15F
worked fine with svnversion 22005 fails with 22037
|
C:\TESTSCPP\bcc\harness\bcctests>bcc32 -I%PHSRC%;%PHDST%;plumhall/conform plumhall\conform\t15b.dir\_154Y15f.cpp CodeGear C++ 5.A0 for Win32 Copyright (c) 1993, 2007 CodeGear plumhall\conform\t15b.dir\_154Y15f.cpp: Turbo Incremental Link 5.80 Copyright (c) 1997-2007 CodeGear
C:\TESTSCPP\bcc\harness\bcctests>bcc32 -v -I%PHSRC%;%PHDST%;plumhall/conform pl umhall\conform\t15b.dir\_154Y15f.cpp CodeGear C++ 5.A0 for Win32 Copyright (c) 1993, 2007 CodeGear plumhall\conform\t15b.dir\_154Y15f.cpp: Turbo Incremental Link 5.80 Copyright (c) 1997-2007 CodeGear
C:\TESTSCPP\bcc\harness\bcctests>svnversion 22005M |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
| Destructor is never called for a static object constructed before a dynamic object that throws an exception in its constructor. |
bcc32 77585.cpp 77585.exe
//act: MyObject ctor: 1245056 MyThrower dtor: 8074056 Caught const char * MyObject dtor: 1245056
//exp:
MyObject ctor: 1245036 Caught const char * MyObject dtor: 1245036 |
4662
| QC# |
Project |
Area |
| 4662 |
C++Builder |
Compiler\C++\Front End\Exception Handling |
| Description: |
Steps: |
[QC Short Description] exception in loop
[QC Description] Incorrect sequence catch. see Steps QC Entry 4662
void try_test() { try { for(int i = 0; ; i++) { try { break; } catch(exception &e) { // we break to here cout<<"exception in loop"<<endl; if(i > 10) throw; } } ThrowMyException(); } catch(exception &e) { cout<<"to catch a exception"<<endl; } } |
1. bcc32 237281.cpp 2. 237281.exe //exp : to catch a exception
//res : exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop exception in loop to catch a exception
|
20386
| QC# |
Project |
Area |
| 20386 |
C++Builder |
Compiler\C++\Front End\Language |
| Description: |
Steps: |
[QC Short Description] The alternative tokens "and", "or" and "not" etc. are missing.
[QC Description] The alternative tokens "and", "or" and "not" etc. are missing.
According to the C++ standard, section 2.6, they are required. QC Entry 20386
|
python runplumhall -d 25Y22a |
18519
| QC# |
Project |
Area |
| 18519 |
C++Builder |
Compiler\C++\Front End\Language |
| Description: |
Steps: |
| The compiler doesn't allow static_cast<void *>(p) where p is a pointer to an incomplete type. [QC Entry 18519] |
1. bcc32 -c t.cpp exp: compile to succeed act: error in function f2. |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Language |
| Description: |
Steps: |
Note that this is a duplicate of 6564. I take this as a suggestion that this should work even without -A. --- original text --- The current C++ specification indicates that static arrays of char (i.e., string literals) decay to const char*. In Thunder, they're still char*.
|
[ANSI] Original WebBTS #: 6709
void foo(char*) { cout << "char*" << endl; } void foo(const char*) { cout << "const char*" << endl; }
int main(int, char **) { foo("hello"); }
|
18729
| QC# |
Project |
Area |
| 18729 |
C++Builder |
Compiler\C++\Front End\Preprocessor |
| Description: |
Steps: |
| Using -Sd with CPP32 the first few lines of the file (showing builtin defines) are only terminated with a newline while the rest of the file uses carriage return/newline. [QC Entry 18729] |
cpp32 -Sd 62191.c tdump -h 62191.i | grep "2F 0A 2F" //res: { many lines with the pattern "2F 0A 2F" /<LF>/ }
//exp: { no lines matching pattern "2F 0A 2F" } |
18982
| QC# |
Project |
Area |
| 18982 |
C++Builder |
Compiler\C++\Front End\Templates |
| Description: |
Steps: |
| BCB doesn't allow pointers to members to be used as template parameters. [QC Entry 18982] |
new steps:
1. bcc32 61808.cpp
//exp: clean compile //res : Error E2272 61808a.cpp 14: Identifier expected in function main() Error E2188 61808a.cpp 14: Expression syntax in function main() Error E2299 61808a.cpp 14: Cannot generate template specialization from 'Bar<T>' in function main() Error E2379 61808a.cpp 16: Statement missing ; in function main() *** 4 errors in Compile ***
|
18649
| QC# |
Project |
Area |
| 18649 |
C++Builder |
Compiler\C++\Front End\Templates |
| Description: |
Steps: |
| The compiler will not call an explicit specialization of a function template for const char * types. [QC Entry 18649] |
bcc32 76968.cpp 76968.exe //res: Hey, you just called the primary template 15 Hey, you just called the primary template bob failed
//exp: Hey, you just called the primary template 15 Special version for const char * hello passed |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Templates |
| Description: |
Steps: |
Boost library finds that template function type deduction does not omit top-level constness as it should:
template<class T> void f(T x) { x = 1; // works (void) &x; T y = 17; y = 20; // "Cannot modify a const object in function f(int)" (void) &y; }
int main() { const int i = 17; f(i); } |
bcc32 -c 123610.cpp //act: Error E2024 123610.cpp 7: Cannot modify a const object in function f<const int>(int)
//exp: no diagnostics |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End\Initialization |
| Description: |
Steps: |
Ansi C++ 12.8(3) says that " A member function template is never instantiated to perform the copy of a class object to an object of its class type"
While testing this using the given example, compiler reports "no error" where it should.
Note: cl pass bcc fail gcc pass |
bcc32 93260.cpp //res: no error //exp: 93260.cpp(6) : error C2893: Failed to specialize function template '__thiscall S::S(T)' With the following template arguments: 'struct S' |
18784
| QC# |
Project |
Area |
| 18784 |
C++Builder |
Compiler\C++\Front End\Overloading |
| Description: |
Steps: |
BCB doesn't find the conversion sequence Foo -> void (Foo::*)() -> bool in the following code. struct Foo; typedef void (Foo::*FooP)();
struct Foo { operator FooP(){}; };
int main() { Foo foo; foo || true; true || foo; return 0; } [QC Entry 18784] |
bcc32 64564.cpp //res: Error E2094 64564.cpp 12: 'operator||' not implemented in type 'Foo' for arguments of type 'bool' in function main() Error E2096 64564.cpp 13: Illegal structure operation in function main()
//exp: no errors |
18637
| QC# |
Project |
Area |
| 18637 |
C++Builder |
Compiler\C++\Front End\Overloading |
| Description: |
Steps: |
ANSI 13.5.3 section 2. The code in the standard is not correctly executed. Specifically, the statement dobj1 = dobj2; is supposed to call the implicitly generated operator=(const D&) but it incorrectly calls the user-defined operator(const B&).
struct B { virtual int operator= (int) { } virtual B& operator= (const B&) { } }; struct D : B { virtual int operator= (int) { } virtual D& operator= (const B&) { } };
int main (void) { D dobj1; D dobj2; B* bptr = &dobj1; bptr->operator=(99); // calls D::operator=(int) *bptr = 99; // ditto bptr->operator=(dobj2); // calls D::operator=(const B&) *bptr = dobj2; // ditto
// **** BCB doesn't do the following correctly **** dobj1 = dobj2; // calls implicitly declared // D::operator=(const D&) } [QC Entry 18637] |
Paste the following code into a console application. Notice that the final line of main executes the wrong operator=.
struct B { virtual int operator= (int) { } virtual B& operator= (const B&) { } }; struct D : B { virtual int operator= (int) { } virtual D& operator= (const B&) { } };
int main (void) { D dobj1; D dobj2; B* bptr = &dobj1; bptr->operator=(99); // calls D::operator=(int) *bptr = 99; // ditto bptr->operator=(dobj2); // calls D::operator=(const B&) *bptr = dobj2; // ditto
// **** BCB doesn't do the following correctly **** dobj1 = dobj2; // calls implicitly declared // D::operator=(const D&) }
|
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\Other Compiler |
| Description: |
Steps: |
RLINK32 error when building the vclactnband package in the VCL directory.
It seems to be unable to find dfm files (although they exist). |
* Go to <TP>\vcl * Run "msbuild clean debug" //Exp: Build succeeds //Act: Error: E2161 RLINK32: Error opening file "..\clr\vcl\actman\CustomizeDlg.dfm" |
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\Finalization |
| Description: |
Steps: |
| Application does not unload from Memory when terminating, when loading two or more DLLs, using ShareMem (cannot check against SimpleShareMem, see #255157) and run-time packages. |
1. Start a new Win32 VCL Delphi application 2. Add 2 DLL Projects to the Project Group 3. Save all as "AH01.dpr", "AH02.dpr" and "AH03.dpr" respectivly, name the Form "FormMain.pas" 4. For each project go to project options -> Packages Set the tick for using run-time packages Add "vcl;rtl" for the run-time packages to use 5. Go to each projects DPR-Source file and add "ShareMem" as first unit to the uses clause 6. To the Main Form of AH01.DPR add two buttons. 7. In the OnClick Event-Handler of the first button write LoadLibrary('AH02.DLL'); LoadLibrary('AH03.DLL'); 8. In the OnClick Event-Handler of the second button write Close; 9. Compile all projects and run the EXE 10. Click Button 1 - both DLLs are loaded 11. Click Button 2 - application (seems to) terminate
12. Run the Windows Task Manager (CTRL+SHIFT+ESC) and goto "Processes" page. Order processes by name and look for "AH01.EXE", this should not be there, but is.
Note: Example Project attached to report.
Note: Make sure you are NOT using the debug version of the memory manager, as doing so will mask this issue (do a "msbuild nodebugmem" from the tp\rtl directory if you're using the dev build)
|
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\String Resources |
| Description: |
Steps: |
Delphi compiler generates .drc files with bad identifiers. This prevents the .drc files from getting compiled with the resource compiler and consequently breaks the localized builds.
For example:
Highlander RTM: #define Borland_Vcl_Design_MnuConst_SInvalidNumber 65504
Current Highlander trunk: #define Borland.Vcl.Design.MnuConst_SInvalidNumber 65504
This causes the localized build to break with the following errors:
D:\dev\tp\tools\MSNET2.0\rc vclmenudesigner.tran.drc vclmenudesigner.tran.drc(10): error RC2008: '.' : unexpected in macro definition vclmenudesigner.tran.drc(11): error RC2008: '.' : unexpected in macro definition vclmenudesigner.tran.drc(11): warning RC4005: 'Borland' : redefinition . . . vclmenudesigner.tran.drc(38): error RC2008: '.' : unexpected in macro definition vclmenudesigner.tran.drc(38): warning RC4005: 'Borland' : redefinition D:\dev\tp\app\design\i18n\de\RCa02696(78): fatal error RC1116: RC terminating after preprocessor errors
|
|
| QC# |
Project |
Area |
|
C++Builder |
RTL\Delphi |
| Description: |
Steps: |
Adding a Form to a library results in a compiler error
// works in BCB6 |
Create a new C++ library add a form build
[C++ Error] Project1.cpp(1): E2303 Type name expected [C++ Error] Project1.cpp(1): E2034 Cannot convert 'char *' to 'int' [C++ Error] Project1.cpp(1): E2293 ) expected |
51727
| QC# |
Project |
Area |
| 51727 |
Delphi |
RTL\Delphi\RTL Exceptions |
| Description: |
Steps: |
[QC Short Description] Halt in except block causes messagebox at program termination
[QC Description] If you call Halt in an except block, a message box pops up that shows the last exception. Even EAbort exceptions are shown. In a console application it shows the exception in ErrOut.
The _Halt0 function should release the ExceptObject before entering the FinalizeUnits loop. QC Entry 51727
|
1. Create a new VCL application 2. Add the following code to the OnCreate handler try Abort; except On E: Exception do Halt(1); end; 3. Start the application Expected: The application terminates Actual: The application shows "Exception EAbort in module Project4.exe at 00049F63. Operation aborted." |
52905
| QC# |
Project |
Area |
| 52905 |
Delphi |
RTL\Delphi\File Management |
| Description: |
Steps: |
[QC Short Description] FileExists does not work for open files with share_exclusive
[QC Description] The FileExists function does not work for files that are opened in SHARE_EXCLUSIVE mode (like the pagefile.sys).
FileExists('C:\pagefile.sys') always return False instead of True. QC Entry 52905
|
1. Create a new VCL application 2. Write the following into the Form's OnCreate handler:
begin if FileExists('C:\pagefile.sys') then ShowMessage('OK') else ShowMessage('Failed'); end;
Expected: A "OK" dialog is displayed
Actual: A "Failed" dialog is displayed
Andreas included this workaround/new version for the RTL:
function FileExists(const Filename: string): Boolean;
function FailSafe(const Filename: string): Boolean; var FindData: TWin32FindData; h: THandle; begin { Either the file is locked/share_exclusive or we got an access denied } h := FindFirstFile(PChar(Filename), FindData); if h <> 0 then begin Windows.FindClose(h); Result := FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0; end else Result := False; end;
var Code: Integer; LastError: Cardinal; begin Code := Integer(GetFileAttributes(Pointer(FileName))); if Code <> -1 then Result := (FILE_ATTRIBUTE_DIRECTORY and Code = 0) else begin LastError := GetLastError(); Result := (LastError <> ERROR_FILE_NOT_FOUND) and (LastError <> ERROR_PATH_NOT_FOUND) and FailSafe(Filename); end; end; |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
errno is not available in <cerrno>.
C++ 19.3.2 The contents are the same as the Standard C library header <errno.h>, except that errno shall be defined as a macro. |
bcc32 -c 248624.cpp Should compile |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
setjmp() isn't available as a macro
C++ 17.4.1.2.5
Names which are defined as macros in C shall be defined as macros in the C++ Standard Library, even if C grants license for implementation as functions. [ Note: the names defined as macros in C include the following: assert, offsetof,setjmp, va_arg, va_end, and va_start. -- end note ] |
bcc32 -c 248623.cpp Should compile |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
Plum Hall test fails to compile _214Y21db
// snip
#define CSTD std:: #include <cstdio>
int main() { CSTD FILE *tf = CSTD fopen("foo.txt", "w+"); CSTD feof(tf); // error here return 0; }
// QA notes: been busted since BCB6 Comeau doesn't like it VC has deprecated fopen |
1. bcc32 -c -w- 243601.cpp
//exp : clean compile //res :
Error E2272 243601.cpp 12: Identifier expected in function main() Error E2379 243601.cpp 12: Statement missing ; in function main()
//note: erroneous line expands to std:: ((tf)->flags & 0x0020); |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STL |
| Description: |
Steps: |
| Numerous warnings in the dinkumware headers when compiling with -vi- -w. |
//simple case: bcc32 -vi- -w 222801a.cpp
//original case from real world: bcc32 -vi- -w 222801.cpp //res: 222801.cpp: Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 438(3): Possible use of '_Cat' before definition in function std::_Ptr_cat(bool *,bool *) Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 444(3): Possible use of '_Cat' before definition in function std::_Ptr_cat(const bool *,bool *) Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 450(3): Possible use of '_Cat' before definition in function std::_Ptr_cat(char *,char *) Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 456(3): Possible use of '_Cat' before definition in function std::_Ptr_cat(const char *,char *) . . . //exp: no diagnostics |
52778
| QC# |
Project |
Area |
| 52778 |
C++Builder |
RTL\C++\STL |
| Description: |
Steps: |
[QC Short Description] <vector> calls undefined function '_Debug_get_cont'
[QC Description] The Dinkumware vector header calls the undefined function _Debug_get_cont if iterator debugging is enabled.
Compile the following program:
#define _HAS_ITERATOR_DEBUGGING 1 #include <vector>
int main () { std::vector<int> v, v2; v.insert(v.begin(), v2.begin(), v2.end()); }
QC Entry 52778
|
Download attachment bcc32 -c qc52778.cpp Expected: clean compile Actual results: Error E2268 C:\Program Files\CodeGear\RAD Studio\5.0\\Include\dinkumware\vector 805: Call to undefined function '_Debug_get_cont' in function void vector<int,allocator<int> >::_Insert<_Vector_iterator<int,allocator<int> > >(_Vector_iterator<int,allocator<int> >,_Vector_iterator<int,allocator<int> >,_Vector_iterator<int,allocator<int> >,forward_iterator_tag) Error E2034 C:\Program Files\CodeGear\RAD Studio\5.0\\Include\dinkumware\vector 805: Cannot convert 'int' to 'vector<int,allocator<int> > *' in function void vector<int,allocator<int> >::_Insert<_Vector_iterator<int,allocator<int> > >(_Vector_iterator<int,allocator<int> >,_Vector_iterator<int,allocator<int> >,_Vector_iterator<int,allocator<int> >,forward_iterator_tag) |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL] ANSI C++ 27.6.2.5.3 says that " The effect of basic_ostream::operator<< is call pf(*this)"
It seems that while throwing exception, the value which was incremented, does NOTactually get incremented during catch.
While testing this STLPort fails the test.
This error did not occur for RW STL. There is one test which skipped due to this error. |
bcc32 t49.cpp //act: t49.exe
//res: The test failed //exp: The test passed |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL] While testing the effects of basic_filebuf::overflow on codecvt, bcc32 returns error. |
bcc32 t70.cpp //res: The test failed //exp: The test passed |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL] While testing the effects of money_put::do_put with long value, in Ansi C++ Ch22, bcc32 differs in resulted values. |
bcc32 t55.cpp //res: The test passed //exp: The test failed
|
47452
| QC# |
Project |
Area |
| 47452 |
Delphi |
SOAP |
| Description: |
Steps: |
[QC Short Description] Incorrect SOAP parse of variant arrays
[QC Description] SOAP does not parse correctly variant arrays of two or more elements that contain variant arrays.
It can affect SOAP DataSnap servers that use variant arrays in OwnerData parameter to comunicate information between client and server. QC Entry 47452
(NOTE From Bruneau:
Have fix ready to go ) |
1. Compile the attached server and client soap apps with D2007 Upd1. Its a standalone web server. It must be compile with Indy9. 2. Execute the server. 3. Execute the client, and press the button1. The Client pass a variant array in the ownerdata parameter of cds.BeforeGetRecords method: procedure TForm1.ClientDataSet1BeforeGetRecords(Sender: TObject; var OwnerData: OleVariant); var v1, v2: variant; begin v1 := VarArrayCreate([0, 1], varVariant); v1[0] := 1; v1[1] := 'one'; v2 := VarArrayCreate([0, 1], varVariant); v2[0] := 2; v2[1] := 'two'; OwnerData := VarArrayCreate([0, 1], varVariant); OwnerData[0] := v1; OwnerData[1] := v2; end; The Server process the ownerdata parameter in the dsp.BeforeGetRecords method: for i := 0 to VarArrayHighBound(OwnerData, 1) do begin int := OwnerData[i][0]; str := VarToStr(OwnerData[i][1]); end; OwnerData is well dimensioned, but the first element contains the second: OwnerData[0][0] -> 2 OwnerData[0][1] -> 'two' OwnerData[1][0] -> raises and exception EVariantInvalidArgError |
47506
| QC# |
Project |
Area |
| 47506 |
Delphi |
SOAP\WSDL Importer |
| Description: |
Steps: |
[QC Short Description] Wsdl importer do not read files xsd
[QC Description] Hi,
when importin a wsdl, the next comment is add to .pas:
// ************************************************************************ // // The following types, referred to in the WSDL document are not being represented // in this file. They are either aliases[@] of other types represented or were referred // to but never[!] declared in the document. The types from the latter category // typically map to predefined/known XML or Borland types; however, they could also // indicate incorrect WSDL documents that failed to declare or import a schema type. // ************************************************************************ // // !:MessageHeader - "http://www.ebxml.org/namespaces/messageHeader" // !:Security - "http://schemas.xmlsoap.org/ws/2002/12/secext" // !:SessionCreateRQ - "http://www.opentravel.org/OTA/2002/11" // !:SessionCreateRS - "http://www.opentravel.org/OTA/2002/11"
and project has error when compiled. QC Entry 47506
|
See description Attachment fails .......!!!!!!!!!!1 cdsAttachmentsHeader : missing datasetprovider ou datapacked !!!! See files in borlan.public.attachments: XSD files for Sabre |
49636
| QC# |
Project |
Area |
| 49636 |
Delphi |
SOAP\Client Applications |
| Description: |
Steps: |
[QC Short Description] THTTPWebNode Timouts do not work
[QC Description] The timeouts on a THTTPWebNode do not work correctly. It is as if the timeouts are not altered.
Calling InternetSetOption with the hInternet parameter set to nil bypasses the problem.
The MSDN documentation for InternetSetOption on Windows CE indicates that for a synchronous connection the receive timeout can only be set for the default connection. i.e. the hInternet parameter must be NULL when INTERNET_OPTION_RECEIVE_TIMEOUT is set. This also appears to be the case on Win32 for the connect, send, and recieve timeouts. QC Entry 49636
|
1. Create a web service that takes longer than 30 seconds to respond. 2. Create client for the service using THTTPRIO object with the timeouts on the HTTPWebNode set to 60000. 3. Call the web service. It should timeout. |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
| dccil fails to consume the attached assembly resulting in an ILIMP11518 error |
Unzip the attached project or 1) Create a new VCL.NET Forms application and grab the two assemblies from the zip file and save in the same location 2) Add a reference to the assembly SD.LLBLGen.Pro.DQE.Access.NET20.dll
3) Build project
exp: correct dcpil from the assembly reference
act: these errors:
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'SD.LLBLGen.Pro.DQE.Access.NET20' not found
|
51954
| QC# |
Project |
Area |
| 51954 |
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
[QC Short Description] Attempting to use an assembly results in a Internal Error: ILIMP11518
[QC Description] I downloaded and built the source code from this url
http://www.codeplex.com/blogengine
If I then attempt to add a reference to one of the assemblies from this project to a Delphi package I get the following errors
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'BlogEngine.Core' not found
Note:
The assembly that is causing problems is in the lib directory of the attachment QC Entry 51954
|
1) Open the supplied example 2) Build
(JJS: On the command line, the following can be used.)
dccil blackfishblogprovider.dpk
expected:
project should compile without errors
actual:
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'BlogEngine.Core' not found
|
51963
| QC# |
Project |
Area |
| 51963 |
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
[QC Short Description] Attempting to reference ngenerics assembly in an application results in a catastrophic failure in the compiler
[QC Description] I downloaded a generics library from here
http://www.codeplex.com/NGenerics/Release/ProjectReleases.aspx?ReleaseId=2027
and I then added a reference to the assembly in a vcl.net application
Attempting to compile results in an error
[DCC Error] Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
note:
the library is included in the lib directory of the project QC Entry 51963
|
1) Open the supplied example 2) Compile
expected:
compile should be successful
actual:
dcc error occurrs
[DCC Error] Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
(JJS: A simpler test is also attached.)
Compile with the following command line.
dccil bts255366 -luNGenerics
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Errors & Warnings |
| Description: |
Steps: |
ILLK3387 when compiling Delphi.NET project.
|
1. Extract all files (inclusive of Folder nam) in the attached zip to C:\cases\TimJarvis. 2. Open PluginGroup.groupproj. 3. Compile all projects.
ACT: [DCC Error] F2084 Internal Error: ILLK3387 EXP: Compiles successfully.
This is from Tim Jarvis, our evangelist in Australia.
|
52042
| QC# |
Project |
Area |
| 52042 |
Delphi.Net |
Compiler\Language\Classes |
| Description: |
Steps: |
[QC Short Description] In classes with generic methods, generic types are not recognized as returning the constrained type.
[QC Description] If, for instance, I declare a method with a a constraint <T: IComparable<T>> and have a parameter like List<T>, then the items of the List<T> are not recognized as items implementing IComparable<T>. Types declared direclty as T are recognized. QC Entry 52042
|
* Create a new Delphi for .NET console application * Change the code of the .dpr to this: program IndirectGenerics; {$APPTYPE CONSOLE} uses System.Collections.Generic, SysUtils; type TTest = class procedure Confuse<T: IEquatable<T>>(list: IList<T>); procedure Test<T: IComparable<T>>(list: IList<T>); end; procedure TTest.Confuse<T>(list: IList<T>); begin end; procedure TTest.Test<T>(list: IList<T>); begin if list[0].CompareTo(list[1]) < 0 then Exit; end; begin end. * Compile the code exp: code compiles act: [DCC Error] IndirectGenerics.dpr(21): E2003 Undeclared identifier: 'CompareTo' * Change the code of TTest.Test<T> to: procedure TTest.Test<T>(list: IList<T>); var item: T; begin item := list[0]; if item.CompareTo(list[1]) < 0 then Exit; end; exp: same error, plus error at assignment of list[0] to item act: compiles Note that if procedure Confuse<T: IEquatable<T>> is removed, or if its type parameter is constrained as IComparable<T> instead of IEquatable<T>, the original version of Test<T> will compile. |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| Spurious ambiguous overload problem when generic class has overloaded methods taking open arrays, and one of the open array parameters is of a type parameter type |
Code (fails to compile with ambiguous error):
---8<--- {$apptype console}
type C<T> = class class procedure P(const x: array of T); overload; class procedure P(const x: array of string); overload; end;
procedure Go; begin C<Integer>.P([42]); // ##OUTPUT: array of T C<string>.P(['42']); // ##OUTPUT: array of string end;
class procedure C<T>.P(const x: array of T); begin Writeln('array of T'); end;
class procedure C<T>.P(const x: array of string); begin Writeln('array of string'); end;
begin Go; end. --->8--- |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| Overloading generic method with open array method fails with internal error / AV |
Code fails to compile:
---8<--- {$apptype console}
type C2 = class class procedure P<T>(const x: array of T); overload; class procedure P(const x: array of string); overload; end;
procedure Go; begin C2.P([42]); // ##OUTPUT: array of T C2.P(['42']); // ##OUTPUT: array of string end;
class procedure C2.P<T>(const x: array of T); begin Writeln('array of T'); end;
class procedure C2.P(const x: array of string); begin Writeln('array of string'); end;
begin Go; end. --->8--- |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| In .NET 2.0 the CLR introduced new overloaded methods to System.String.Split. One new overload takes a string array which is ambiguous with the char array version. |
Compile the following against .NET 2.0.40607:
procedure OverloadSplitTest(S: System.String); var splits: array of string; begin splits := S.Split([',','.']); end;
It will now fail with an ambiguous overload error.
|
51841
| QC# |
Project |
Area |
| 51841 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Overloads with generics are position-dependent
[QC Description] If one overloaded has an addtional parameter to the other, the one without the additional parameter won't be found if it is declared after the one with the extra parameter. But if changed around, the other is said to have too many parameters.
IOW, only the first of the overloads is recognized. The other isn't.
This does not happen if the overloads are not generic.
See steps.
QC Entry 51841
|
* Start a new Delphi for .NET console application * Change the code to make it look like this: //---------------------------------------------------------------------------------------------------------------------- program BraindeadOverloads; {$APPTYPE CONSOLE} uses System.Collections.Generic, SysUtils; type Algos = class class function MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer; overload; static; class function MinElement<T>(List: IList<T>): Integer; overload; static; end; class function Algos.MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer; begin Result := -1; end; class function Algos.MinElement<T>(List: IList<T>): Integer; begin Result := -1; end; var L: IList<Integer>; C: IComparer<Integer>; begin try Writeln(Algos.MinElement<Integer>(L)); // line 31 Writeln(Algos.MinElement<Integer>(L, C)); // line 32 Readln; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. //---------------------------------------------------------------------------------------------------------------------- * Try to compile it: exp: compiles act: [DCC Error] BraindeadOverloads.dpr(31): E2250 There is no overloaded version of 'Algos.MinElement<System.Int32>' that can be called with these arguments Now change the class declaration to look like this: type Algos = class class function MinElement<T>(List: IList<T>): Integer; overload; static; class function MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer; overload; static; end; * Try to compile now exp: compiles act: [DCC Error] BraindeadOverloads.dpr(32): E2034 Too many actual parameters |
52040
| QC# |
Project |
Area |
| 52040 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Internal Error T776 when defining two methods returning same generic type
[QC Description] The steps describe this best. If I change both result types to IList<T>, the internal error does not occur. QC Entry 52040
|
* Start a new Delphi for .NET console application * Add a new Delphi for .NET unit to it * Change the code of the unit to make it look like:
unit UListTools;
interface
uses System.Collections.Generic;
type ListTools = class function ListFromArray<T>(A: array of T): List<T>; function ListWithCount<T>(Num: Integer): List<T>; end;
implementation
function ListTools.ListFromArray<T>(A: array of T): List<T>; begin Result := nil; end;
function ListTools.ListWithCount<T>(Num: Integer): List<T>; begin Result := nil; end;
end.
* Try to compile the project exp: compiles act: [DCC Error] UListTools.pas(24): F2084 Internal Error: T776
* Change the result type of the first method to IList<T> * Try to compile the project exp: same error act: compiles
Note: you can also change the result type of the second routine to IList<T>, as long as there is only one List<T> result type. Note: making the function body of the second method empty removes the problem.
|
52043
| QC# |
Project |
Area |
| 52043 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Arrays are not recognized as implementing interfaces
[QC Description] Arrays are not recognized as implementing IEnumerable<T>, or IList<T>, when used as parameters:
type Algos = class class function MinElement<T>(list: IList<T>; comparer: IComparer<T>): Integer; end;
You can't simply pass an array of Integer to:
x := Algos.MinElement<Integer>(myIntegerArray);
You'll have to do:
x := Algos.MinElement<Integer>(myIntegerArray as IList<Integer>);
Similarly, this doesn't compile either:
lst := List<Integer>.Create(myIntegerArray);
You must do:
lst := List<Integer>.Create(myIntegerArray as IEnumerable<Integer>); QC Entry 52043
|
* Create a new Delphi for .NET console application * Change its code to: program ArraysAsInterfaces; {$APPTYPE CONSOLE} uses System.Collections.Generic, SysUtils; type Algos = class class procedure First<T>(list: IList<T>); static; end; class procedure Algos.First<T>(list: IList<T>); begin end; var ints: List<Integer>; arr: array[0..1] of Integer = (1, 2); begin ints := List<Integer>.Create(arr); // line 23 Algos.First<Integer>(arr); // line 24 end. exp: compiles act: [DCC Error] ArraysAsInterfaces.dpr(23): E2250 There is no overloaded version of 'Create' that can be called with these arguments [DCC Error] ArraysAsInterfaces.dpr(24): E2010 Incompatible types: 'IList<System.Int32>' and 'Array' * Change the code in the main block to: begin ints := List<Integer>.Create(arr as IEnumerable<Integer>); // line 23 Algos.First<Integer>(arr as IList<Integer>); // line 24 end. Now the errors are gone. |
51660
| QC# |
Project |
Area |
| 51660 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Compiler F2084 Internal Error: T776 when compiling a unit defining a class or record involving a generic type.
[QC Description] Code in Steps produces Internal Error in compiler.
If you move the definition of TResult into the main program, it compiles OK.
Using latest version of DCCIL stuff. QC Entry 51660
|
program IntErr; {$APPTYPE CONSOLE} uses System.Collections.Generic, u2IntErr in 'u2IntErr.pas'; type TMyClass = class public function Load: TResult; end; var MyCats: TResult; MyClass: TMyClass; function TMyClass.Load: TResult; var Cats: List<String>; begin Cats := List<String>.Create; Result.Cats := Cats; end; begin MyClass := TMyClass.Create; MyCats := MyClass.Load; end. ================================================================== unit u2IntErr; interface uses System.Collections.Generic; type TResult = record Cats: List<String>; end; implementation end. |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
The following code will generate incorrect IL and crash the runtime.
|
Compile and run the attached application below.
See the following exception error at runtime.
Unhandled Exception: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at BTS255374.Units.BTS255374.BTS255374()
program BTS255374;
{$APPTYPE CONSOLE}
type
TArray<T> = array[] of T;
TArrayReverser = class private procedure Swap<T>(var A: T; var B: T); public function ReverseIt<T>(const A: TArray<T>): TArray<T>; end;
function TArrayReverser.ReverseIt<T>(const A: TArray<T>): TArray<T>; var I: Integer; begin Result := A; for I := 0 to (Length(Result) - 1) div 2 do Swap<T>(Result[I], Result[Length(Result) - 1 - I]); end;
procedure TArrayReverser.Swap<T>(var A: T; var B: T); var Temp: T; begin Temp := A; A := B; B := Temp; end;
var Reverser: TArrayReverser; IntArray: TArray<Integer>; I: Integer;
begin SetLength(IntArray, 10); for I := Low(IntArray) to High(IntArray) do IntArray[I] := I * 10;
Reverser := TArrayReverser.Create; IntArray := Reverser.ReverseIt<Integer>(IntArray);
for I := Low(IntArray) to High(IntArray) do Writeln('IntArray[', I, '] = ', IntArray[I]);
Readln; end.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
Generic constraint checking fails spuriously for instantiation of a descendant of the constraint, using another type parameter in declaration of descendant (see example code)
More complicated generic solutions need this flexibility to reduce redundant dependent types when declaring descendants, since .NET doesn't have a typedef-in-template equivalent like C++. |
This program doesn't compile:
Error: E2515 Type parameter 'U' is not compatible with type 'TBaseAlpha<TConcreteBeta<T>.T>'
---8<--- {$apptype console}
type TBaseAlpha<T> = class private F: T; public property P: T read F write F; end;
TBaseBeta<T; U: TBaseAlpha<T>> = class public F: U; procedure M(x: T); end;
TConcreteAlpha<T> = class(TBaseAlpha<T>) end;
TConcreteBeta<T> = class(TBaseBeta<T, TConcreteAlpha<T>>) end;
procedure TBaseBeta<T;U>.M(x: T); begin F.P := x; end;
var x: TConcreteBeta<Integer>; begin x := TConcreteBeta<Integer>.Create; x.F := TConcreteAlpha<Integer>.Create; x.M(42); Writeln(x.F.P); end. --->8---
For comparison, here's the same program in C#:
---8<--- using System;
class TBaseAlpha<T> { T F; public T P { get { return F; } set { F = value; } } }
class TBaseBeta<T, U> where U: TBaseAlpha<T> { public U F; public void M(T x) { F.P = x; } }
class TConcreteAlpha<T> : TBaseAlpha<T> { }
class TConcreteBeta<T> : TBaseBeta<T, TConcreteAlpha<T>> { }
class App { static void Main() { TConcreteBeta<int> x;
x = new TConcreteBeta<int>(); x.F = new TConcreteAlpha<int>(); x.M(42); Console.WriteLine(x.F.P); } } --->8---
|
51423
| QC# |
Project |
Area |
| 51423 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Methods with different constraints will not always compile
[QC Description] Depending on which constraints are placed on methods of a class, the code of one of the methods will or will not compile.
This won't compile:
type Tester = class function AreEqual<T: IEquatable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer; end;
function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean; begin Result := List[Index1].Equals(List[Index2]); end;
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; begin Result := List[Index1].CompareTo(List[Index2]); end;
I get the error "undeclared identifier: 'CompareTo'". But the next code will compile, and 'CompareTo' is not undeclared anymore:
type Tester = class function AreEqual<T: IComparable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer; end;
function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean; begin Result := List[Index1].CompareTo(List[Index2]) = 0; end;
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; begin Result := List[Index1].CompareTo(List[Index2]); end;
Note that the following will also compile, so is it perhaps that I am doing something wrong?
type Tester2 = class function AreEqual<T: IEquatable<T>>(Item1, Item2: T): Boolean; function Compare<Z: IComparable<Z>>(Item1, Item2: Z): Integer; end;
function Tester2.AreEqual<T>(Item1, Item2: T): Boolean; begin Result := Item1.Equals(Item2); end;
function Tester2.Compare<Z>(Item1, Item2: Z): Integer; begin Result := Item1.CompareTo(Item2); end;
Hmmm... This also compiles, even with different constraints:
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; var Element: Z; begin Element := List[Index1]; Result := Element.CompareTo(List[Index2]); end;
So how come the compiler can't recognize List[Index1] as implementing IComparable, but it can recognize Element doing that? Actually, even the cast IComparable(List[Index1]) was rejected. Note, if both methods have the same constraint, this seems to be unimportant. QC Entry 51423
|
* Start a new Delphi for .NET console app * Change the code of the app to: program Project13; {$APPTYPE CONSOLE} uses SysUtils, System.Collections.Generic; { $DEFINE SAMECONSTRAINT} type Tester = class {$IFDEF SAMECONSTRAINT} function AreEqual<T: IComparable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; {$ELSE} function AreEqual<T: IEquatable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; {$ENDIF} function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer; end; Tester2 = class function AreEqual<T: IEquatable<T>>(Item1, Item2: T): Boolean; function Compare<Z: IComparable<Z>>(Item1, Item2: Z): Integer; end; function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean; begin {$IFDEF SAMECONSTRAINT} Result := List[Index1].CompareTo(List[Index2]) = 0; {$ELSE} Result := List[Index1].Equals(List[Index2]); {$ENDIF} end; function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; begin Result := List[Index1].CompareTo(List[Index2]); // error!! end; function Tester2.AreEqual<T>(Item1, Item2: T): Boolean; begin Result := Item1.Equals(Item2); end; function Tester2.Compare<Z>(Item1, Item2: Z): Integer; begin Result := Item1.CompareTo(Item2); end; begin try { TODO -oUser -cConsole Main : Insert code here } except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. * Build exp: compiles act: [DCC Error] Project13.dpr(37): E2003 Undeclared identifier: 'CompareTo' * remove the space before the $ in the $DEFINE line * Build exp: same error act: compiles * Also note: no error in class Tester2. * remove $DEFINE * Change the code of Tester.Compare<Z> to: function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; var Item: Z; begin Item := List[Index1]; Result := Item.CompareTo(List[Index2]); end; * Build exp: error again act: compiles |
51844
| QC# |
Project |
Area |
| 51844 |
Delphi.Net |
Compiler\Linker |
| Description: |
Steps: |
[QC Short Description] Internal Error ILLK3387 aliasing System.Collections.Generic.Dictionary
[QC Description] I am attempting to alias System.Collections.Generic.Dictionary and am using this type alias to expose a public property in a class. When this property is consumed by another application or assembly, compilation fails with 'F2084 Internal Error: ILLK3387'. If the class resides in the same assembly as the consuming code, the internal error doesn't happen, and the project compiles without error. QC Entry 51844
|
- Download GenericTest.zip and unzip - Open ProjectGroup1.groupproj - Select 'Project|Build all projects' from the IDE main menu Expected: The assembly and console application will compile without error Actual: Compilation fails with 'F2084 Internal Error: ILLK3387' - In the source for Project1.dpr, comment out the {$DEFINE IN_ASSEMBLY} line - Select 'Project|Build all projects'. This time both projects will compile without error |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Don't install ECO for VisualStudio integration in BDS installation |
1. I have installed VisualStudio 2005 with Together for VS 2006. 2. I have installed Highlander - release HighlanderFT_ARCH_v11.0.2804.9245.4 3. Now when I create any Together for VisualStudio project I am prompted to enter license number for ECO - this is the bug. BDS installation should not install plugin for VisualStudio 4. When I uninstall ECO - all Together for VS functionality will be disabled - this is the bug too. Only when I reinstall Togethger for VS - Together functionality will be restored
In the "ECO_setup.msi" the feature ECO\ideinteg\VSInteg doesn't use any condition and have Install Level=1. - remove this feature at all - or change Install Level to 200 - or add any condition for this feature |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update - UNINSTALL
<Back button> on second dialog (Ready to Install -Setup is ready to start uninstalling rad..) does nothing and uninsatll hangs...clicking Next do nothing after this and Cancel doesnt work either.
|
tested with \\ussvs-file02\RND\Delphi\latest\help\Releases\HelpUpdate1.5
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Relate to 255282, 255298, 255248
I installed RAD Studio Pro SKU via network install and registered product. I descided to upgade it to RAD Studio Architect SKU so re-invoked Setup.exe and selected Upgrade option then entered Architect key and proceeded installation. There're so many problems. 1) In Feature list page, required disk space is shown in negative number (see Cap4.png). Results in 2)NO UPGRADE TO Architect SKU, Aboutbox/Spalsh screen still say Professional SKU and also NO ECO main menu (see Cap6.png), 3) click data Explore tab produced object reference is not set to instance error (see Cap7.png), re-click tab opend data Explore page but 4) NO(lost) Ado.NET conections (see Cap8.png). Attached step by step screen shots, see Cap1 through Cap8.png |
- install RAD Studio Pro SKU (3AKP-STADEA-GKB5BF-????) via network install (download Setup.exe from http://installers.codegear.com/release/radstudio/11.0.2804.9245/ into local drive and invoke Setup.exe) - start IDE and register product - Terminate IDE then reinvoke Setup.exe - select Upgrade option, enter Architect key (3ADN-DRD8EA-FFG5AG-????), proceed installation // Note: you'll see negative required disk space in feature list page - Launch IDE and examine properly upgraded to Architect SKU // Note: no Eco menu, still Professional SKU, missed Ado.NET Connctions in data Explore |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update
If you remove HelpUpdate and you click Check Update again you will get a message saying there is no Update available,
Uninstall is failing to delete information about Update. |
install help Update Remove help from Add/Remove Programs Run check Updates //exp: install udpate again //act: no Updates available |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
In dbxdrivers.ini, for Informix, VendorLib is set to isqlb09a.dll. It should be set to clidll.dll.
Correction, we switched the dbxdrivers.ini to use isqlt09a.dll ('b' replaced with a 't'). |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
After installing the update, BORLAND.VCL.SAMPLES.DLL cannot be loaded by the IDE
// Francois Piette I see it also in the french localized version.
|
-Install Highlander and run IDE, note it runs fine -Install Nov Update and run IDE //res: Error Loading IDE Assembly or Package Failed to load $(BDS)\BIN\BORLAND.VCL.SAMPLES.DLL. Borland.Vcl.Design.EInstalledPackageError: Could not load the assembly |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update Warning about Help Update be recommended to Update3 or RAD 2007 installations is being returned when running helpupdate /upgrade after having installed Nov Update. |
Install Nov Update Run helpupdate /upgrade |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Missing required disk space size information at Setup Cache page during standalone Help_Setup process, attached screen shot. |
- install HL w/out Help - start IDE and register it - close IDE // used Highlander.Help/0828.1/* - install Help via Setup /upgrade
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
After Upgrade from D2007, IDE gets error on start-up with Rave, and IntraWeb.NET app cannot be compiled.
you need following software to see attached video:
http://download3.vmware.com/software/wkst/VMware-moviedecoder-6.0.0-45731.exe
//original report When upgrading from Delphi2007(Spacely) to Highalnder,
I got two error dialog at startup time, and any personalities are not loaded.
Once exit IDE, and restart, everything OK.
It looks like "as design" but too silly user experience.
//ttsuchiya, 1) base is RAD Studio 2007 (Spacely Update1+Cogswell) Ent RTM case, got same two error dialog at 1st time launching of IDE (did not launched IDE from Installer), 2) base is Cogswell Pro RTM case, got two same error dialog at 1st time launching of IDE (launched IDE from Installer) and seemed to loaded Architect personalities as far as saw Tool Palette but did not loaded Design personalities (checked with UML-2.0 sample and got error of no Design-Personality) although all is fine since 2nd time launching of IDE. |
- Delphi2007 (RTM) Install - Execute Highlander's setup.exe from Highlander's install directory - Enter Highalnder's Architect serial
After complete installing, execute IDE.
- Two AV dialogs are show up.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
November 2007 Update Updated files time stamp is same to RTM's one, 2007-08-27 3:03 although its version information is 11.0.2830.9463.
Attached screen shots. |
- Update Highlander RTM via November 2007 Update Setup.exe then examine installed files
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| When installing Architect Trial the Wise Owl Demeanor checkbox is ON and disabled (making it appear that Wise Owl will and must be installed) |
Install the latest build using a trial key //act: Wise Owl Demeanor checkbox is ON and disabled //exp: Wise Owl Demeanor checkbox is OFF and disabled |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
When upgrading from Spaely/Cogswell, Some registry entries still use old value.
For example.
HKEY_CURRENT_USER\Software\Borland\BDS\5.0\AssemblyFolders\BorlandComponents
Under Spacely/Cogswell, this vaule is
@="C:\\Program Files\\Common Files\\Borland Shared\\BDS\\Shared Assemblies\\5.0\\"
For Highlander, it should be
@="C:\\Program Files\\Common Files\\Codegear Shared\\BDS\\Shared Assemblies\\5.0\\"
[See 255182] |
See 255182 |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Attached bmp is returned when HelpUpdate /upgrade is run while dexplor is running
Issues: . Yes, No, Cancel Buttons : there is no question and not sure what to select here
. No button: is in loop. Doesnt do anything
. Yes button: Install is continued
$PRELIST : ?
. Request service pack 4 ?
|
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| The files version_cpp.txt and updates.ini should not be in the install directory. It should be deleted from the iso image. |
Open the ISO, look at the install directory for version_cpp.txt |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Launching the install.exe from the RAD Studio DVD raises 'unknown publisher' |
Insert DVD Run install.exe //note that it appears to not be digitally signed. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| After applying the Nov Update, the IntraWeb assemblies have changed Assembly Version number |
-Install Highlander RTM and either back up assemblies or note Assembly Version no.'s -Install Nov Update //res: ..\bin\dclIntraweb_90_100NET.dll changes from 1.0.2804.24002 to 1.0.2838.31318 ..\Shared Assemblies\5.0\Intraweb_90_100NET.dll changes from 1.0.2804.23999 to 1.0.2838.31316 ..\Shared Assemblies\5.0\IntrawebDB_90_100NET.dll changes from 1.0.2804.24001 to 1.0.2838.31317 |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
These are the new file deliveries with respect to RAID 255580.
|
Personality = Win32 SKU=All Feature=(Core) Database Feature
Please add the following files to the install image:
1. From $(TP)\bin to $(WINDOWS)\System32 DbxMetaData100.bpl
2. From $(TP)\intermediate\release\dcp to $(BDS)\lib DbxMetaData.dcp
3. From $(TP)\intermediate\release\lib to $(BDS)\lib DBXTypedTableStorage.dcu DBXDataStoreMetaDataWriter.dcu DBXDb2MetaDataWriter.dcu DBXInformixMetaDataWriter.dcu DBXInterbaseMetaDataWriter.dcu DBXMetaDataWriter.dcu DBXMsSqlMetaDataWriter.dcu DBXMySqlMetaDataWriter.dcu DBXOracleMetaDataWriter.dcu DBXSybaseASAMetaDataWriter.dcu DBXSybaseASEMetaDataWriter.dcu DBXMetaDataProvider.dcu DBXMetaDataWriterFactory.dcu DBXInterbaseMetaData.dcu DBXSybaseASEMetaData.dcu DBXDataStoreMetaData.dcu DBXDb2MetaData.dcu DBXInformixMetaData.dcu DBXMsSqlMetaData.dcu DBXMySqlMetaData.dcu DBXOracleMetaData.dcu DBXSybaseASAMetaData.dcu DBXTableStoragePlatform.dcu DBXDataExpressMetaDataProvider.dcu DBXClientDataSetStorage.dcu
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| Borland.VclDbExpress.dll needs to be installed with a Win32 only install of Highlander. Raid 255414 covers Spacely + Update 3. |
1. File|New|VCL Forms Application - Delphi for Win32 2. Drag drop any table from Data Explorer to the form
Exp. Components added, no error Act. System.IO.FileNotFoundException: Could not load file or assembly 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' or one of its dependencies. The system cannot find the file specified. File name: 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' at Borland.Data.Explorer.DataExplorerIDEImpl.CreateDBXConnection(TreeNode aNode) at Borland.Data.Explorer.DataExplorerIDEImpl.DragDrop(Object Sender, ItemDragEventArgs Event) at Borland.Data.Explorer.DataExplorerControl.a(Object , ItemDragEventArgs ) at System.Windows.Forms.TreeView.OnItemDrag(ItemDragEventArgs e) |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| After applying the Nov Update, the IndySystem.dll assembly has changed Assembly Version number |
-Install Highlander RTM and either back up assemblies or note Assembly Version no.'s -Install Nov Update //res: ..\Shared Assemblies\5.0\IndySystem.dll changes from 11.0.2804.9245 to 11.0.2838.9608
|
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
| The API signature information, such as method signatures, is missing in a lot of the documentation. For instance, the topic "Borland.Data.AdoDbxClientProvider.TAdoDbxDataAdapter.DeleteCommand" doesn't have a description of the method. |
1. Go to topic "Borland.Data.AdoDbxClientProvider.TAdoDbxDataAdapter.DeleteCommand" at ms-help://borland.bds5/delphivclwin32/Borland_Data_AdoDbxClientProvider_TAdoDbxDataAdapter_DeleteCommand.html. Note there is no line with the method signature. 2. By contrast, look at the topic "TCustomActionCombo.DragDrop Method" at ms-help://borland.bds5/delphivclwin32/ActnCtrls_TCustomActionCombo_DragDrop@TObject@Integer@Integer.html. There are lines describing the method both in C++ and Delphi. |
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
deployJds.html deployment chapter is missing sections from sshaughnessy on how to deploy slip license files.
Also needs latest update for $(BDSCOMMONDIR)\license as one of the dirs to search for licenses.
I have provided content to Kim and Dee. Waiting for response that work is complete. |
This refers to the Blackfish SQL Developer's Guide which is not in the help system. It is downloadable at: http://cc.codegear.com/Item/24980.
You can use the PDF search to find the section on slip licenses.
Thanks Emeli! -Dee |
| QC# |
Project |
Area |
|
Delphi.Net |
VCL |
| Description: |
Steps: |
Access Violation in module rtl100.bpl when pressing F1 on a menu item (in this test case - the File menu)
//note - I notice no help is linked to these menu items. Is that related? CP
//This can put the IDE into a state where you need to close it, since the AV dialog keeps coming back up.
========== jt add ========= this is VCL Actionband component problem, new steps added.
regression from D2006, in D2006, no AV only "No context-sensitive help installed." pop up, which is as expected.
// Francois Piette I still see it with build 2700.
|
---- See actionband steps for VCL.NET ----
Infrequent, but I can get this to reproduce and crash the IDE after doing three times
Project | Options Click help to open minimize the Help viewer Open File menu mouse over 'Open...' click F1
//typically this is where the A/V occurs.
=================== jt add =================== 1. File | New | VCL Win32 Application 2. drop a TActionManager, TActionMainMenu, TMemo on designer 3. double click TActionManager, add Edit category standard Action 4. drag Edit Category from Customize Dialog to ActionMainMenuBar1 5. Run with debug 6. in Running application, click File 7. mouse hover on "Paste" menu item 8. press F1 ---------------------------
--------------------------- Access violation at address 00439918 in module 'Project1.exe'. Read of address 00000040. --------------------------- OK ---------------------------
9. click OK then ---------------------------
--------------------------- No context-sensitive help installed. --------------------------- OK ---------------------------
|
| QC# |
Project |
Area |
|
Delphi.Net |
VCL\ComCtrls |
| Description: |
Steps: |
TRichEdit.LoadFromFile fails to load a non-RTF file when the PlainText property is False.
Regression caused by switch to .NET 2.0 |
* File | New | VCL.NET Application * Drop a TRichEdit on the form * Drop a TButton on the form * In the button's OnClick enter: RichEdit1.Lines.LoadFromFile('c:\config.sys'); // or any other plain text file * Run, click on the button // Exp: Text from file displayed // Act: Garbage characters displayed |
| QC# |
Project |
Area |
|
C#Builder |
IDE\Project Manager\Importing VB Projects |
| Description: |
Steps: |
| Importing in VB.Net Visual Studio 2005 project results in .vbproj file just being opened as a text file. |
+ Download attached project (ACLChange) + Open hte .vbproj file //exp: rpoject is opened //act: .vbproj file is opened as a text file.
NOTE: Projects will not be able to open or Built as a result. This is for ALL VB projects - not just the one attached. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Implement TDBXBinarySequenceGenerator
Use new TDBXBlobSequenceGenerator has getBytes and getString method. |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Implement TDBXBinaryLongSequenceGenerator
Use new TDBXBlobSequenceGenerator has getBytes and getString method. |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
If DelimIdent=True is set for a connection such as Informix connection, MetaDataProvider.CreateTable will quote the column names. However, DataGenerator.CreateParameterizedInsertStatement does not quote the column names in the insert statement it creates. This causes the insert to fail when executed.
I think TDBXCustomDataGenerator.ColumnNameString might need a call to MetaDataProvider.QuoteIdentifierIfNeeded |
DataAccess.Managed.exe connection=informixconnection -s:oTestReadWriteAll
Note that you may have to modify dbxconnections.ini and add DelimIdent=True to see the error |
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
TDBXTimestampSequenceGenerator generates invalid DateTime values for MSSQL. You get:
‘SQL State: 22018, SQL Error Code: 0 Invalid character value for cast specification’ |
DataAccess.Managed.exe connection=mssqlconnection -s:oTestReadWriteAll |
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Use DbxDataSource in ASP do not work.
Failed to find path location for assembly 'Borland.Data.AdoDbxClient'
Please see attached screenshot.
Update: 1) when user select "DBXDataSource" or "EcoDatasource", project should automatically add corresponding referenced assembly, fail to do so will cuase project has problem.
2) First time after IDE start try the step will work, assembly is added without problem, test case only exist in second and thereafter. |
1. File | New | ASP Application 2. drop a gridView 3. select "New DataSource" 4. select "DbxDatabase" 5. in Configure Data Source dialog, click dropdown list, select a EmployeeClientServer 6. Next, Next, select Address table, click Next, click Finish // GridView show: There was an error rendering the control. Failed to find path location for assembly 'Borland.Data.AdoDbxClient'
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
DB2 - transactions
When committing a transaction or rolling back a transaction; the DB2 driver does not set the connection back to auto-commit mode. |
Testcase to be developed. (Steve B, could you...) |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
From QC 52672
AdoDbxClient has trouble with certain GetSchema calls. |
Run TestAdo.exe connection=ibconnection -s:TestRaid255674
The following code fails (at least in the RTM version of RadStudio):
string[] restrictions = new string[4]; restrictions[0] = ""; // CatalogName restrictions[1] = ""; // SchemaName restrictions[2] = "abc"; // TableName restrictions[3] = TDBXMetaDataTableTypes.Table; // TableType
DataTable schema = Connection.GetSchema(TDBXMetaDataCollectionName.Tables , restrictions);
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
Putting a TSqlConnection on a VCL.Net form automatically pulls in the unit DBXpress. This is a virtually empty unit, it only contains a uses clause or two. the problem is that it is deprecated, so the compiler will issue a warning everytime it is used.
Holger pointed it out in the first place :)
the reason it is pulled in is because of:
procedure TSQLConnectionSelectionEditor.RequiresUnits(Proc: TGetStrProc); begin Proc('DBXpress'); end;
in <tp>\app\dotnetlib\db\Borland.Vcl.Design.DbxCtrlsReg.pas
description of the RequiresUnit: Should call Proc with all the units that are needed to be used when using this class. The form designer automatically ensures the unit the class was declared in and all its ancestor's units are used in the user's program when they use this component. Sometimes, however, an event will use a type in one of its parameters that is not in its unit nor any of its ancestor's units. If this is the case a selection editor should be registerd that implements RequiresUnits and it should call Proc for each unit that declare the types needed by its events |
new VCL.Net app drop TSqlConnection on the form compile
exp: compiles wihtout warnings act: [DCC Warning] Unit1.pas(16): W1006 Unit 'Borland.Vcl.DBXpress' is deprecated |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
| dbExpress does not throw an exception if an unspported data type is specified for a parameter. |
TDBXHighlanderBugsSuite.Managed.exe connection=blackfishsqlconnection -s:TestRaid_255570 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress\TSQLStoredProc |
| Description: |
Steps: |
Seems to be problems with parameter metadata for stored procs that return readers.
SqlExpr GetParameterType seems to expect 'RESULT' value to indicate a return value. Metadata for BlackfishSQL and maybe others returns 'RETURN'. I changed the code to treat both the same.
Seems like user must set the data type for this parameter to ftCursor to allow readers to be loaded into the dataset. Would be nice if apps did not have to set the datatype for a return parameter. |
Reuse this test case:
TDBXHighlanderBugsSuite.Managed.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
For Blackfish, GetVendorProperty('DriverDataTypes') is returning types that are not supported by the driver:
TDBXDataTypesEx.SingleType TDBXDataTypesEx.Int8Type
|
DataAccess.Managed.exe connection=blackfishsqlconnection -s:SampleTestDriverDataTypes |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
For ASA, unable to insert a Boolean value of True. Inserting False works correctly. Error is:
[Sybase][ODBC Driver][Adaptive Server Anywhere]Value -1 out of range for destination. Error code = -158, SQL state = 22003 |
DataAccess.Managed.exe connection=asaconnection -s:oTestReadWriteAll |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
| TDBXReader.Value[I].GetValueSize returns -1 when reading back VarBytes values. |
TDBXHighlanderBugsSuite.Managed.exe connection=mssqlconnection -s:oTestRaid_255618 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Unable to copy a blackfishSQL database whose log files have been deleted
[Nov Update] |
1. Create a BlackfishSQL database 2. Delete all of it's log files 3. In Data Explorer connect to the database, you will receive an error and be prompted to open it in read-only mode. Do so. 4. Right click, Database|Copy Database 5. Accept the defaults and click Ok
Exp. Database copies Act. Could not open database in read-only mode. The database is currently being used in non read-only mode. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
New Data Explorer items should show up on the Data Explorer main menu when a connection name is selected in Data Explorer. Currently, the top level menu item "Database" is there but the sub items are not. Selecting "Database" does nothing.
[Nov Update] |
1. Select a blackfishSQL connection name in Data Explorer 2. Data Explorer|Database
Exp. A sub menu Act. No sub menu |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Unable to copy database connection created under dbexpress node. An unhandled exception is raised:
System.NullReferenceException: Object reference not set to an instance of an object. at Borland.Vcl.TStrings.GetValue(String Name) at Borland.Vcl.TStrings.get_Values(String Name) at Borland.Data.TDBXProperties.get_Values(String Name) at Borland.Data.Explorer.ConnWrapper.getProperty(String property) in c:\DevBuild\d11\tp\database\internal\src\cs\borland\dbtools\explorer\ConnWrapper.cs:line 208 at Borland.Data.Explorer.CopyDatabaseDialog.btnOK_Click(Object sender, EventArgs e) in c:\DevBuild\d11\tp\database\internal\src\cs\borland\dbtools\explorer\CopyDatabaseDialog.cs:line 327 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
[Nov Update] |
1. Create a blackfishSQL connection under the dbexpress node in data explorer 2. Right click, Database|Copy Database 3. Click Ok
Exp. Copies Act. Unhandled exception |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
If you try to copy a connection string to web.config that already exists and the string is not identical, an unhandled exception is raised:
System.Configuration.ConfigurationErrorsException: The entry 'ORACLECONNECTION' has already been added. at System.Configuration.ConfigurationElementCollection.BaseAdd(ConfigurationElement element, Boolean throwIfExists, Boolean ignoreLocks) at System.Configuration.ConfigurationElementCollection.BaseAdd(ConfigurationElement element) at System.Configuration.ConnectionStringSettingsCollection.Add(ConnectionStringSettings settings) at Borland.Data.Explorer.DataExplorerIDEImpl.CopyConnectionStringToConfig(String connectionName, String connectionString, String providerName) at Borland.Data.Explorer.DataExplorerControl.miAddToWebConfig_Click(Object sender, EventArgs e) at System.Windows.Forms.MenuItem.OnClick(EventArgs e) at System.Windows.Forms.MenuItem.MenuItemData.Execute() at System.Windows.Forms.Command.Invoke() at System.Windows.Forms.Command.DispatchID(Int32 id) at System.Windows.Forms.Control.WmCommand(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.TreeView.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. Activate the Data Explorer tab, choose a connection name, right click on it and select 'Add to Web.Config' 3. Right click on the connection name and choose Modify Connection 4. Change something and click Ok 5. Right click on the connection name and choose 'Add to Web.Config'
Exp. Either the string is replaced or a graceful error message is thrown. Act. Unhandled exception |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Open BlackfishSQL connections are not closed upon IDE shutdown.
[Nov Update] |
1. Create a new BlackfishSQL connection in Data Explorer under the BlackfishSQL Local Provider and open it 2. Close the IDE 3. Start the IDE 4. Try to open a connection to the BlackfishSQL connection created in Step 1 by expanding the Tables node
Exp. Opens without error Act. 'Database appears to be open by another process or hasn't been shutdown properly. Would you like to attempt to open it anyway?'
There appears to be a [databasename]_temp.jds file created in the directory which is not removed when the IDE is shutdown. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
'Add to Web.config' option should be accessible in more cases.
Right now it seems to only be able to be used if the asp.net designer is active.
[Nov Update] |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. F12 to activate the Code Editor 3. Click the Data Explorer tab and right click on a connection name
Exp. 'Add to Web.config' option Act. Option not there
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, if you try to copy an encrypted database and do not choose to encypt the copy you get:
Runtime Error: [line 1, col 15] Write operation failed. File: [Copied database name] database is read only.
Connection is created anyway and you appear to be able to connect without error.
Database verification fails with 3 errors though. Not sure if this is expected.
[Nov Update] |
1. Create a blackfishSQL connection 2. Right click, Database|Copy Database 3. Check off the Encrypt New Database check box and click Ok 4. Right click on the new connection, Database|Copy Database 5. Leave the Encrypt New Database check box unchecked and click Ok
Exp. Success Act. Runtime Error: [line 1, col 15] Write operation failed. File: [Copied database name] database is read only. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Data Explorer main menu not updated to include the 'Add to Web.config' option unless the popup menu has been accessed first.
[Nov Update] |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. Activate the Data Explorer and left click to select a connection name 3. Click the Data Explorer main menu item and observe the items listed
Exp. 'Add to Web.config' option Act. Option not present
If you right click on the connection name to invoke the popup menu and then click the Data Explorer main menu item, the item will be listed. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, if you try to copy an encrypted database you get:
[databasename] database is not opened (user name is sysdba).
However, the copy is made anyway. If you try to connect to the copy you get:
Borland.Data.DataStore.FromJava.JDataStore.DataStoreException: You do not have STARTUP rights for this database Borland.Data.DataStore.SQLException: You do not have STARTUP rights for this database
[Nov Update] |
1. Create a valid blackfishSQL connection 2. Right click, Database|Copy Database 3. Check off the Encrypt New Database check box and click Ok 4. Right click on the copied connection name and select Database|Copy Database 5. Check off the Encrypt New Database check box and click Ok
Exp. Copies without error Act. [databasename] database is not opened (user name is sysdba).
6. Right click on the copied connection name (3rd connection created) select Modify Connection and Test Connection.
Exp. Test connection succeeded Act. Borland.Data.DataStore.FromJava.JDataStore.DataStoreException: You do not have STARTUP rights for this database Borland.Data.DataStore.SQLException: You do not have STARTUP rights for this database
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, copy database validation requires extra steps.
[Nov Update] |
1. Create a connection to BlackfishSQL database and verify it works 2. Right click on the connection in Data Explorer and choose Database|Copy Database 3. Note that the Ok button is greyed out 4. Modify the Connection Name. Ok button is still greyed out 5. Modify the Database field to point to a different jds file or location
Exp. Ok button enabled Act. Ok button greyed out. You must modify the Connection Name field again for it to become enabled |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
typo in IDE message "Database create suceeded"
[Nov Update] |
1.Click Database Explorer tab 2 <Rclick ADO.NET BlackFish node>Add New Connection //enter with any name i.e BFConn 3 <Rclick BFConn> Modify Connection 4 Set UserName=sysdba, Password=masterkey and Database:c:\temp\mytest99 5 Click 'Test Connection' button 6 It will prompt to create database. Click OK "Database create suceeded" |
51076
| QC# |
Project |
Area |
| 51076 |
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
[QC Short Description] Stored procedures cannot be dropped from the database if the dotnet implementation no longer exists
[QC Description] If I have a Blackfish stored procedure in the database called SOMEOTHERMETHOD and I rename the method in the Delphi implementation I am no longer able to drop the method in Data Explorer QC Entry 51076
|
1) Create a new Blackfish Remote database in Data Explorer 2) Open the supplied example and compile 3) Copy the assembly to wherever Blackfish is looking for assemblies 4) Register the method with Blackfish CREATE METHOD SomeOtherMethod as 'Other::Other.TMyStoredProcedures.SomeOtherMethod' 5) Stop the Blackfish service 6) Open Other.StoredProcedures in the edtior and rename the method SomeOtherMethod to AnotherSomeOtherMethod 7) Build and copy the assembly to the same place as step (3) 8) Start the Blackfish server 9) In dataexplorer example the stored procedure list SomeOtherMethod is listed but there are no parameters 10) In a sql window attempt to drop the method drop method "SomeOtherMethod" expected: stored procedure should be dropped actual: an error message is displayed [line1, col 1] A method with the name "SOMEOTHERMETHOD" doesn't exist |
51598
| QC# |
Project |
Area |
| 51598 |
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
[QC Short Description] Connection added to wrong node
[QC Description] When using the Data Explorer (integrated in the Project Manager), I get new connections in wrong places.
Steps to reproduce:
1. Start Highlander 2. Click on the Data Explorer tab 3. Right-click on the INTERBASE node, select "Add New Connection" 4. In the dialog, select MSSQL as Provider Name (this is the problem) 5. specify a name, like "This should be an MS SQL connection" 6. Click OK.
The new connection is now a subnode of the INTERBASE node, and not of the MSSQL node.
It seems like the choice for "Provider Name" in the Add New Connection dialog is ignored.
BTW, wasn't that term (Provider) part of the deprecated BDP, and shouldn't we now see a term like "Driver Name" instead? This may be related to the fact that the choice for Provider Name is ignored... QC Entry 51598 [Nov Update]
|
Steps to reproduce: 1. Start Highlander 2. Click on the Data Explorer tab 3. Right-click on the INTERBASE node, select "Add New Connection" 4. In the dialog, select MSSQL as Provider Name (this is the problem) 5. specify a name, like "This should be an MS SQL connection" 6. Click OK. The new connection is now a subnode of the INTERBASE node, and not of the MSSQL node. It seems like the choice for "Provider Name" in the Add New Connection dialog is ignored. BTW, wasn't that term (Provider) part of the deprecated BDP, and shouldn't we now see a term like "Driver Name" instead? This may be related to the fact that the choice for Provider Name is ignored... |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Update 3 - regression
SQLWindow layout changed after applying installing Highlander (using old keys). You will see a large grey area where you cant type anything and below you find a white area
Marking this one as WUpdate since we might also want to fix 255412.
Emeli: I was able to resize the grey area. After you get a grid to show you can resize the grid by moving it up making the grey area smaller. |
Install Highlander using Cogswell or Spacely keys Run Data Explorer //exp: check before.bmp attached //act: check afterupdate3.bmp attached
|
53393
| QC# |
Project |
Area |
| 53393 |
Delphi.Net |
Database\Data Explorer\Integrated |
| Description: |
Steps: |
[QC Short Description] Adding duplicate column names not detected when entered
[QC Description] Adding a column with a duplicate name is only detected when closing the Table Design tab, giving no opportunity to fix, and losing all other changes made to the table schema. QC Entry 53393
[Note - similar issue exists for Table Viewer: add data which will cause errors (key violation fi.), close the tab and you'd lose your changes without a chance to correct)
[Nov Update] |
- Switch to Data Explorer - Expand the 'Ado.Net' node - Right-click on the 'BlackfishSQL Remote Provider' node and select 'Add New Connection' - Enter 'DataTest' in the 'Connection Name' field - Right-click on the 'DataTest' node and select 'Modify Connection' - Enter 'sysdba' in the 'User Name' field, 'masterkey' in the 'Password' field, and 'D:\Data\DataTest.jds' in the 'Database' field - Click the 'Test Connection' button - Click 'Yes' when prompted to create the database - Click the 'OK' button to confirm database creation - Click the 'OK' button to close the 'Add Connection' dialog - Expand the 'DataTest' node in Data Explorer - Right-click on the 'Tables' node and select 'New Table' - Enter 'Field1' in the 'Name' column and press the down arrow - Enter 'Field1' in the 'Name' column and press the down arrow - Right-click on the 'Table Design:DataTest' tab and select 'Close Page' - Click the 'Yes' button when prompted to save changes Expected: You are prompted about the duplicate field names, and are given an opportunity to address the problem. Actual: You are prompted about the duplicate field names, but the tab is closed, losing all changes. |
52581
| QC# |
Project |
Area |
| 52581 |
Delphi.Net |
Database\Data Explorer\Integrated |
| Description: |
Steps: |
[QC Short Description] Data entered into a BlackfishSQL table via Data Explorer is not persisted
[QC Description] If the integrated Data Explorer is used to enter data into a BlackfishSQL table, the data is not persisted, and all changes are lost. QC Entry 52581
[Nov Update] |
- Switch to Data Explorer - Expand the 'Ado.Net' node - Right-click on the 'BlackfishSQL Remote Provider' node and select 'Add New Connection' - Enter 'DataTest' in the 'Connection Name' field - Right-click on the 'DataTest' node and select 'Modify Connection' - Enter 'sysdba' in the 'User Name' field, 'masterkey' in the 'Password' field, and 'D:\Data\DataTest.jds' in the 'Database' field - Click the 'Advanced...' button - Under the 'Logging' category, set the 'Connect' property to 'True', and click the 'OK' button - Click the 'Test Connection' button - Click 'Yes' when prompted to create the database - Click the 'OK' button to confirm database creation - Click the 'OK' button to close the 'Add Connection' dialog - Expand the 'DataTest' node in Data Explorer - Right-click on the 'Tables' node and select 'New Table' - Enter 'Field1' in the 'Name' column - Right-click on the 'Table Design:DataTest' tab and select 'Close Page' - Enter 'DataTable' as the table name and click the 'OK' button - Expand the 'Tables' node - Double-click on the 'DATATABLE' node in Data Explorer - Enter '1' in the 'FIELD1' column and press the down arrow - Enter '2' in the 'FIELD1' column and press the down arrow - Right-click on the 'Ado.Net:DataTest: DATATABLE' tab and select 'Close Page'
Expected: Prompt to save changes. Actual: Closes without saving.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
For Oracle, Boolean parameters are retrieved as Unknown Type.
[Nov Update] |
1. For an Oracle db:
CREATE PROCEDURE BOOLEAN_ECHO_ORACLE(IN_PARAM IN BOOLEAN, OUT_PARAM OUT BOOLEAN) AS BEGIN OUT_PARAM := IN_PARAM;END;
2. In Data Explorer, navigate to this stored procedure and double click on it to view it's parameters
Exp. Value field blank Act. Value field contains Object reference not set to an instance of an object |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
AdoDbxClient has trouble with certain GetSchema call with Informix. A "Failed to enable constaints" error message is raised. |
Run TestAdo.exe connection=informixconnection -s:TestRaid255674
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
| Unable to create a primary key when using the metadata natively. Getting a 'Could not convert variant of type (Null) into type (OleStr)' when trying to make the create index sql. |
DataAccess.Native.exe connection=mssqlconnection -s:TestReadWriteAll |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
System.OverflowException: {"Value was either too large or too small for an Int32."}
When requesting metadata for columns where the precision is larger than Int32.MaxValue |
Run:
TDBXBugsSuite.Native.exe connection=mysqlconnection -s:oTestRaid_255241 or TDBXBugsSuite.Managed.exe connection=mysqlconnection -s:oTestRaid_255241
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Please generate a name to unnamed constraints.
[Nov Update] |
In DataExplore create a blackfishSQL table and keep the primary key check mark.
Try ALTER => failure !! |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Try to use the Triggers
NewRow.IsModified()
causes a NullReferenceException |
NDataStore.DBX.JdsTest.Managed.exe -s:TestTrigger |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Triggers
Try accessing GetValue like GetInt32 on OldRow during an AFTER DELETE trigger.
=> exception |
NDataStore.DBX.JdsTest.Managed.exe -s:TestTrigger |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Blackfish SQL remote ADO.Net connection to JDataStore database fails when trying to get meta data or executing a SQL Statement.
Errors are get Read -1 Needed 10 Error and No Product name for Data Provider. No meta data can be provided |
1. Select Data Explorer in Rad Studio 2. Add new connection under ADO.Net | Blackfish SQL Remote Provider 3. Host=ngyrn-nt.inprise.com (or some other server running JDS Server) 4. Path=c:\jdatastore7\samples\jdatastore\datastores\employee.jds (or some other legal path) 5. user=sysdba 6. Password=masterkey 7. click OK. 8. Open Tables node, get Read -1 Needed 10 Error 9. Open SQL Windows, get No Product name for Data Provider. No meta data can be provided 10. Enter a SQL statement in the SQL Window, get error: Network error: Read -1 Needed 10 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
The class JDSType has a name that is too close to JDatastore. Please rename it to DataStoreType |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
DBXClient
If a stored procedure is a function with 1 parameter, DbxClient complains when the parameter value is set about that paramneter 0 was not set. [However it should not be set since iit is a return value.] |
TDBXHighlanderBugsSuite.Native.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446
Note: Uncomment the section that calls the stored procedures FUNCC and FUNCD
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
BlackfishSQL All the exception classes should be deserializeable.
i.e. they must implement: a constructor and a GetObjectData since the base class implements ISerializeable
|
TODO: Add testcase which causes an exception, saves it to file and restored the exception object. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
| You cannot use Blackfish stored procedures from a TSQLDataset component. |
TDBXHighlanderBugsSuite.Managed.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446
-------------------------------
1. Create a connection to the sample EMPLOYEE database. 2. Create a new Delhpi for .Net package. 3. Add a unit, and in the unit, add the an empty class 4. Add the following code to the class as a stored procedure for Blackfish
class function TSprocDemo.GetSpecificEmployee(aConnection: DBConnection; aEMPNO: integer): DBDataReader; var TempCommand: DbCommand; TempParameter: DbParameter; begin TempCommand := aConnection.CreateCommand; TempCommand.CommandText := 'Select * From EMPLOYEE WHERE EMP_NO = ?';
TempParameter := TempCommand.CreateParameter; TempParameter.DbType := DbType.Int32; TempParameter.Direction := ParameterDirection.Input; TempParameter.Value := aEmpNO;
TempCommand.Parameters.Add(TempParameter);
Result := TEmpCommand.ExecuteReader end;
5. Register it with the database.....
CREATE METHOD GetSpecificEmployee AS 'SprocDemo::uSprocDemo.TSprocDemo.GetSpecificEmployee'
(Adjust the assembly name and unit name as needed)
6. Open an SQL Window and run it with
CALL GETSPECIFICEMPLOYEE(2)
This should work.
7. Create new VCL applicaction. 8. Drop connection, hook up to the connection used above. 9. Drop a TSQLDataset 10. Set CommandType to StoredProcedure, and the CommandText to "GETSPECIFICEMPLOYEE" 11. Open params property, not that the parameters are correct. 12. Set the parameter value for AEMPNO to 2 13. Set Active to True.
EXP: The Sproc opens. ACT:
---------------------------
Error
---------------------------
Syntax Error: [line 1, col 18] SELECT expected, but <identifier> found.
---------------------------
OK Details >>
|
53941
| QC# |
Project |
Area |
| 53941 |
Delphi.Net |
IDE\Code Completion |
| Description: |
Steps: |
[QC Short Description] Class Completion Still Broken
[QC Description] I noticed some "fixes" to class completion but some simple stuff is still broken. -- The function results in the class below of types &Object and &Type don't get the '&' when you do class completion. -- If you remove the // comment in the function G definition so the function result is List<Integer>, then class completion balks when it sees the '<' character and punts.
program Project1;
{$APPTYPE CONSOLE}
uses System.Collections.Generic;
type MyClass = class function O: &Object; function T: &Type; function G: List;//<Integer>; end;
{ MyClass }
function MyClass.G: List; begin
end;
function MyClass.O: Object; begin
end;
function MyClass.T: Type; begin
end;
begin
end. QC Entry 53941
|
See description
NOTE: closing this one. opened 256335 to cover the remaining issue of not escaping Object and Type. |
51165
| QC# |
Project |
Area |
| 51165 |
Delphi.Net |
IDE\Code Editor |
| Description: |
Steps: |
[QC Short Description] Code Folding: incorrect for generic classes/methods
[QC Description] Code folding is sometimes missing, sometimes misplaced when a unit contains generic classes, interfaces and the methods of their implementations.
There is no obvious pattern to this behaviour, i.e. it is not always the first, second, etc. Neither is it resolved by scrolling and redrawing. QC Entry 51165
|
open attached .pas file.
see code folding missing on line 43
-------------- Write a couple of generic classes/interfaces in the same unit. Ensure that they have a few methods each in the implementation section. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Editor |
| Description: |
Steps: |
| Code completion moves cursor to position before left ( of methods so that the user has to manually move behind it. |
1. new vcl forms app 2. add System.IO to any uses 3. double click form 4. type System.IO.Directory.<wait> 5. select getParent 6. press enter
exp: cursor right of ( act: left of ( |
51114
| QC# |
Project |
Area |
| 51114 |
Delphi.Net |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
[QC Short Description] ErrorInsight reports valid Methods as errors
[QC Description] error-insight seems to report some entries that are actually correct. A valid and existing method gets red-dotted. QC Entry 51114
|
Please take the following example wich compiles fine: --------------------- uses System.Collections.Generic; type TApfel = class(TObject); TMyAepfelList = List<TApfel>; procedure Foo; var Apfel : TApfel; List1 : TMyAepfelList; begin Apfel:= TApfel.Create; List1:= TMyAepfelList.Create; List1.Add( Apfel ); // <-- error here 'Add' is red-dotted end; --------------------- |
47453
| QC# |
Project |
Area |
| 47453 |
Delphi.Net |
IDE\Docking |
| Description: |
Steps: |
[QC Short Description] Dock Tabs appear at wrong position
[QC Description] If for instance in the delivered Default Layout the Object Inspector is unpinned, it's caption appears as a vertical tab on the left of the structure view. Saving this layout, switching to another one and switching back makes the tab appears to the right of the structure view. Reselecting the current layout brings the tab back where it belongs. QC Entry 47453
|
if necessary, copy the factory "Default Layout.dst" from "<program files>\CodeGear\RAD Studio\5.0\bin" to "<Application Data>\Borland\BDS\5.0\" (Borland???) - start IDE - select "Default Layout" - unpin Object Inspector - save current layout overwriting Default Layout - select Debug Layout - select Default Layout exp: Object Inspector tab left from Structure View act: Object Inspector tab right from Structure View - select Default Layout exp: Object Inspector tab left from Structure View act: Object Inspector tab left from Structure View |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Help |
| Description: |
Steps: |
Press F1 in Delphi.Net's WinForm or ASP WebForm's code editor got error
Error --------------------------- Abstract Error. --------------------------- OK Details >> ---------------------------
[HelpUpdate] |
1. File | New | Delphi.Net | WinForm Application (or ASP Application) 2. click Code tab 3. click any keyword, ie : type or uses or anywhere 4. press F1
//Abstract Error. + $12[00347E7A]{rtl110.bpl } SysUtils.SysUtils.AbstractErrorHandler (Line 14258, "sys\sysutils.pas" + 0) + $12 + $6[209D9271]{coreide110.bpl} EditorControl.EditorControl.TCustomEditControl.HelpKeyword (Line 4428, "EditorControl.pas" + 8) + $6 + $17[209DF0D8]{coreide110.bpl} EditorControl.EditorControl.TCustomEditControl.AutoInvokeCodeCompletion (Line 7255, "EditorControl.pas" + 1) + $17 + $6[0047D115]{vcl110.bpl } Controls.Controls.TWinControl.WndProc (Line 8923, "Controls.pas" + 129) + $6 + $6[0047C8A8]{vcl110.bpl } Controls.Controls.TWinControl.MainWndProc (Line 8659, "Controls.pas" + 3) + $6 + $0[0037107C]{rtl110.bpl } Classes.Classes.StdWndProc (Line 11596, "common\Classes.pas" + 8) + $0 + $6A[77D48731]{USER32.dll } GetDC + $6A + $14A[77D48811]{USER32.dll } GetDC + $14A + $17F[77D4B4BB]{USER32.dll } DefWindowProcW + $17F + $1CD[77D4B509]{USER32.dll } DefWindowProcW + $1CD + $10[7C90EAE0]{ntdll.dll } KiUserCallbackDispatcher + $10 + $44[77D5F3DE]{USER32.dll } SendMessageA + $44 + $1B[209C9C7A]{coreide110.bpl} VClient.VClient.KeyBindingProc (Line 2644, "VClient.pas" + 20) + $1B + $2C[2099A20E]{coreide110.bpl} IDEKbd.IDEKbd.@interpret_bmi_macro$qqrp5BMI_tpcp11CmdMapTableppc (Line 30, "bmi.cpp" + 5) + $2C + $10[20998E0A]{coreide110.bpl} IDEKbd.IDEKbd... (Line 132, "kbpublic.cpp" + 88) + $10 + $18[209C73B0]{coreide110.bpl} VClient.VClient.KbdFileOpen (Line 460, "VClient.pas" + 2) + $18 + $8[20A6EA94]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 723, "KbClient.pas" + 141) + $8 + $5[20A6E519]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.KeyboardChanged (Line 517, "KbClient.pas" + 6) + $5 + $2[20A6E829]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 585, "KbClient.pas" + 3) + $2 + $2[20A6F55C]{coreide110.bpl} KbClient.KbClient.TIDEKBD |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Help |
| Description: |
Steps: |
| No help found for context" message when you click the Help button in the Template Libraries dialog. |
1. File | New | Other 2. Right-click in right pane 3. Select Template Libraries... |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
Hard-coded string in source (see comment from Takeshi Arisawa for specifics).
Original bug description follows: ----------
One Filelist-Entry is not translated "ASP.NET Files" should be "ASP.NET-Dateien" |
1. Click on DATEI - ÖFFNEN 2. open the Dateiliste 3. Scroll to ASP.NET Files |
51621
| QC# |
Project |
Area |
| 51621 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] Parameter Type Error when using VB.net ByRef events
[QC Description] Case: VB.net Components with events that have ByRef parameters.
When the event is double clicked, the ide generates the procedure with Out parameters instead of Var . The compiler then complains that there is a mismatch. To make the app compile, the procedure parameters need to be changed to var .
This would not be a big deal to fix in the code but since it is in the designer generated area, changes get overwritten as we work with other controls. Also, the object inspector does not show these events. QC Entry 51621
|
See sample VBControl with an event "onCustomTextChange" that has ByRef parameters. Install this .net component from the ide. Then create a new asp.net application. Insert the component to the Default.aspx. Then from the events tab of the object inspector, dbl click on the "onCustomTextChange" event. This should generate the erroneous procedure. definition.
See attached vb.net sample asp.net control VS2005 project and the Highlander project using the control.
A few notes from Nick Hodges:
The attached project has a compiled version of the resulting assembly in the
\VBControl\bin\release
directory. You can simply install that assembly, which will install the VBLabelControl. Dropping the control and then creating an event handler for onCustomTextChange event shows the bad parameters.
|
53217
| QC# |
Project |
Area |
| 53217 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] "meta:resourcekey" attribute...designtime/runtime issues
[QC Description] I manually added the "meta:resourcekey" attribute (for implicit localization... as is done in VS w/ "Generate Local Resouces") to my page and all the controls in my "Default.aspx" file. I also added a "Default.aspx.resx" file to my "App_LocalResources" folder and defined the appropriate entries for a translated button caption. Under the debugger I ran "Default.aspx" and had to click on continue to the System.ArgumentException, "culture name 'aspx' is not supported.". After clicking on the "Continue" button 6 times for this same exception message, it finally got past it and IT WORKED!
In the Delphi IDE, however I can't open the design surface. As long as the "meta:resourcekey" is a part of my page directive, I can ONLY open the aspx markup. I don't get a "Design" or a tab to edit the .pas. If I remove the "meta:resourcekey" attribute from my page directive, I can open the design surface, but every control with the "meta:resourcekey" attribute has an error message "Error Creating Control - xxx, Object reference not set to an instance of an object".
So the use of the "meta:resourcekey" in Delphi makes the runtime experience w/ all the debug messages annoying. And it makes the designtime experience virtually impossible. QC Entry 53217
|
1. Add the "meta:resourcekey" attribute to any control in an aspx file. 2. Close the aspx file and try to open it in design mode. 3. Add the "meta:resourcekey" attribute to the page directive in an aspx file. 4. Close the aspx file and try to open it in design mode. 5. Try to run the web application w/ those attributes. Note: See demo in attachments: Open the designer for Default.aspx for an example of controls not rendering Adding meta:resourceKey="Button1 to the markup and switching to the designer results in "error creating control - object reference not set to an instance of an object" if you attempt to open webform1.aspx the designer tab is not displayed, this is because of the meta:resourcekey="PageResource1"attribute on the page tag |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| Full source codes for the ASP.Net providers are not delivered in the build. |
The following files should be delivered:
$(BDS)\source\dotNet\asp\provider\aspnet_regdb.dpr $(BDS)\source\dotNet\asp\provider\aspnet_regdb.dproj $(BDS)\source\dotNet\asp\provider\aspnet_regdb.inc $(BDS)\source\dotNet\asp\provider\Borland.Web.Commands.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Management.AdoWebEventProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Management.DbSetup.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Profile.AdoProfileProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.dpk $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.dproj $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.inc $(BDS)\source\dotNet\asp\provider\Borland.Web.Security.AdoMembershipProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Security.AdoRoleProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Strings.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.UI.WebControls.WebParts.AdoPersonalizationProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Utilities.pas $(BDS)\source\dotNet\asp\provider\License.txt
|
51753
| QC# |
Project |
Area |
| 51753 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] DynamicBoxCentered CSS template </form> in </div>
[QC Description] In the DynamicBoxCentered template, the last four lines in MasterPage1.master are:
</form> </div> </body> </html>
The order of </form> and </div> should be swapped - </form> should be outside the last </div>.
Objrepos\DelphiDotNet\DynamicBoxCentered\MasterPage1.master needs a small fix. QC Entry 51753
|
I checked the .aspx contents of some generated CSS projects and found the following: DynamicBoxCentered template: The last four lines in MasterPage1.master are: </form> </div> </body> </html> The order of </form> and </div> should be swapped - </form> should be outside the last </div>. This is file Objrepos\DelphiDotNet\DynamicBoxCentered\MasterPage1.master that needs a small fix. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| When show all files is enabled in large ASP.NET projects, saving a file get's very slow |
This was reported in evangelist training.
File new ASP.NET project Extract the attached zip file into the project directory (you should have a images folder and all of its content including subdirectories and .jpg files) Right click on the project and check Show All Files (you should see the images folder)
File/New/Other Files/Text File Ctlrl-S to save the text file
Repeat the following to show the delay when Show All Files is checked
Ctrl-S to save the text file and then immediately start typing
Actual: There is a significant delay before the editor excepts characters. Expected: Less delay
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| Web form and web service designers don't load after setting a dynamic property |
File/New ASP.NET web project
File/New Web Service or Web Form
Drop SqlConnection on the designer
In Object Inspector, click “…” next to Dynamic Properties/Connection String
Check box
OK
Now you should find this in the ..pascs in the code file
Self.SqlConnection1.ConnectionString := (string(configurationAppSettings.GetValue('S' +
'qlConnection1.ConnectionString', TypeOf(string))));
Enter a space in the .pas file and click designer tab
Actual: designer loads error
Expected: designer loads without errors
|
21440
| QC# |
Project |
Area |
| 21440 |
Delphi.Net |
IDE\HTML\ASP\Debugging |
| Description: |
Steps: |
[QC Short Description] Multiple exceptions from debugger if Cassini isn't closed
[QC Description] When running an ASP.NET project under Cassini, the IDE doesn't close Cassini when the program terminates. If the program is then modified and run, the debugger throws multiple exceptions of type System.UnauthorizedAccessException, one for each assembly used by the project.
Clicking the "Continue" button for each of the notifications will let the project run correctly. However, many such clicks are required and the user has no way of knowing whether there is a real problem.
See "Steps" and "Workaround" for more information. QC Entry 21440
|
1. Open an ASP.NET project and set to to use Cassini as the web server. 2. In the "ASP.NET" area of the Project Options dialog, make sure Cassini is set to run when the project starts (not opened). 3. Run the project. 4. Close the browser window to terminate the program. Notice that Cassini is still running. 5. Modify the project (add or change a line of code). 6. Press the Run button to compile run the project. Do NOT compile the project independently without running it. The debugger breaks with the following exception (the assembly name will change): Debugger Exception Notification --------------------------- Project CassiniWebServer.exe raised exception class System.UnauthorizedAccessException with message 'Access to the path "wcieat89.dll" is denied.'. A similar exception is raised for every assembly used by the project. This error doesn't reproduce 100% of the time, but still happens quite often. |
52536
| QC# |
Project |
Area |
| 52536 |
Delphi.Net |
IDE\HTML\ASP\Deployment |
| Description: |
Steps: |
[QC Short Description] The list of external files for a deployment is outdated
[QC Description] The list of external files needs to be updated to take into account that the bdp was depreciated QC Entry 52536
|
1) Create a new asp.net web application 2) Rich click on the deployment node in the project manager and select "new asp.net deployment" 3) When the deployment window appears, right click left hand listbox and select "external files" Expected I think the list should include the CodeGear asp.net provider files and newer dbx ones ie Borland.Web.Provider, Borland.VclRtl and the dbx ones I don't think the bdp files should be listed since they are depreciated actual: It seems to list bdp files |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
| ASP designer does not handle Dynamic properties. the generated code from the codedom does not load and the webconfig file is corrupted |
* new D.Net WebServiceApplication * Drop a DataStoreConnection on designer (or any other connection component) * set connectionstring to "abc" * Make the connectionstring as a dynamic property * Switch to code * Switch to designer
exp: designer shows act: Designer broken
* save All
exp: connectionstring in webconfig along with the old data act: _ONLY_ connectionstring in webconfig |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
ASP designer does not store integer values correctly in web.config when they are marked as dynamic properties.
This might be exactly the same as in Raid 255473, but this shows that not only strings have problems. |
* new D.Net WebServiceApplication * Drop SerialPort component on designer * set baudrate to 9999 * Make the baudrate a dynamic property * Switch to code * Switch to designer
exp: BaudRate = 9999 act: BaudRate = 9600
* change it back to 9999 * save All
exp: baudrate in webconfig along with the old data act: _ONLY_ baudrate in webconfig
* close Webservice * Open webservice
exp: Baudrate = 9999 (since it is now actually in the web.config) act: baudrate = 9600
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
| When using "composite controls" in the designer the Control does not render correct (it shows as a small square thus being cropped). Once in the design mode, of the control is moved, it will paint correctly, however; toggling to aspx and back to design will again mispaint the control. |
Open attached project Click on design tab. Expected (see attached bmp): Two textBoxes and a button Actual: small little box (composite) Move the control to the right. Notice the "actual" control renders |
51094
| QC# |
Project |
Area |
| 51094 |
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
[QC Short Description] The Smart Task Menu doesn't get displayed when the control is in a Panel or an UpdatePanel
[QC Description] When the control is in a Panel, it's smart task menu doesn't be displayed. Please see the steps for details. QC Entry 51094
|
- Download and open the sample project that I've attached. - Open Default.aspx in the designer and scroll down to the GridView. - Right click on the GridView. - Select Smart Task from this context menu. Actual: - Nothing happens. - However, there isn't the smart task's arrow in the top corner of the control. Expected: - The Smart Task shows up. Also the smart task indictator that is normally displayed in the top right hand corner of the control isn't visible |
48693
| QC# |
Project |
Area |
| 48693 |
Delphi.Net |
IDE\HTML\ASP\Designer\Web Controls |
| Description: |
Steps: |
[QC Short Description] You cannot bind properties to values in resource files using the expression dialog
QC Entry 48693
|
1) Create a new asp.net web application 2) Go to the designer for webform1.aspx and add a asp.net label to the designer surface 3) In the object inspector, inspect the label and click on the expressions property value to launch the label1 expressions dialog 4) select text as the bindable property 5) set expression type to resources 6) In the expressions properties, classkey and resourcekey are available properties expected: you should be able to enter a value for resourcekey actual: it appears to be readonly Note: If you modify the markup by hand ie <asp:Label id="Label1" runat="server" Text="<%$ Resources:Resource, Welcome %>"></asp:Label> Then classkey is set to Resource and resourcekey is set to Welcome Unfortunately The text property in the inspector is empty, it should be Expression: Resource, Welcome |
52503
| QC# |
Project |
Area |
| 52503 |
Delphi.Net |
IDE\HTML\ASP\Projects |
| Description: |
Steps: |
[QC Short Description] CRS destroys directory structure in asp.net application
[QC Description] When you try to add a custom control that is in a subdirectory, the entire directory structure gets destroyed and the project file becomes corrupted.
Same problem exists in Borland Studio 2006 too.
The same problem occurs with normal webpages. How in the heck are we to create a site with different authentication levels on different directories if the IDE keeps removing any and all form of directory structure... QC Entry 52503
|
1) Create a new New ASP.NET application. 2) Create a directory structure like this: projectdir |----- customctrls | |--------- control1 | |--------- control2 Put some pre-created custom control's in control1 and control2 directories. They can be empty, it's just the .ascx file and the .pas file that's really needed to show the problem. 3). In project manager rightclick the project, and select "add", then browse for the custom control in the subdirectory control1. 4). Notice now that the control is under the root directory of the project in project manager, the files have been moved and the entire structure is destroyed. Repeat step 3 several times, and the project file is irreparable corrupted and CRS crashes. Recommended Fix: Rewrite the Add functionality so that it leaves the directory structure intact as is. The rest of the IDE can handle things fine if the controls are in a subdirectory, because: Workaround: Manually edit the project files. It's a hell of a job to find out, but it works fine once you know what to put where.. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
| Calling ResetPassword in the membership provider with an invalid password question response does not fail. |
Call MembershipProvider.ResetPassword with an invalid password answer. It should raise an exception but it doesn't. |
50936
| QC# |
Project |
Area |
| 50936 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] Attempting to create users results in the error DuplicateProviderUserKey when the provider is attached to MySql via the AdoDbxClient
[QC Description] The membership provider does not work against mysql and the adodbxclient QC Entry 50936
|
1) Create a mysql database I'm using version 5.0.41-community-nt MySQL Community Edition (GPL) 2) Create a connectionstring in machine.config and run aspnet_regdb against that database 3) Open the supplied example 4) Modify the connectionstring in web.config so that it connects to your MySql database 5) Open CreateAccount.pas and set a breakpoint on procedure TWebForm4.CreateUserWizard1_CreateUserError(sender: TObject; e: System.Web.UI.WebControls.CreateUserErrorEventArgs); begin end; 7) Run the application and you should end up with CreateAccount.aspx in the browser 8) Enter all the user details and hit the create user button actual: The breakpoint is hit inspect e._error and its 10(0xa) 'DuplicateProviderUserKey' run the application The message below is displayed in the browser Your account was not created. Please try again. expected: The user should be created Note: I have successfully run this application against System.Data.SqlClient and Blackfish, so I think its something about about mysql or the dbxclient |
53187
| QC# |
Project |
Area |
| 53187 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] Password retreival using the PasswordRecovery control fails when the Membership provider is configured with requiresQuestionAndAnswer=false
[QC Description] When requiresQuestionAndAnswer is set to false and a user is created without a question and answer, password retrieval fails when using the PasswordRecovery control QC Entry 53187
|
1) Open the supplied example application 2) Run the application 3) Click on the "Forgot password" link 4) Enter the username mosh and click submit Expected: application should attempt to email password has been changed email to user actual: An error is displayed Unknown parameter name: @PasswordAnswer Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: Borland.Data.DataStore.SQLException: Unknown parameter name: @PasswordAnswer Source Error: Note: In the membership section of web.config I have set requiresQuestionAndAnswer to false. If I set this to true and I repeat the above with the mosh2 user, the application gets to the Identity confirmation page. The answer is "neo" The application then attempts to send the email . mosh was created without requiring a question and answer, whereas mosh2 was created with a QuestionAndAnswer |
52669
| QC# |
Project |
Area |
| 52669 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] If a web application is deployed and the provider assembly is not present an error is raised attempting to initialize SqlClient
[QC Description] If a web application is deployed and the application is configured to use Borland.Data.BlackfishSQL.RemoteClient.dll as the provider, if that assembly is not present SqlClient appears to be initialized QC Entry 52669
|
To reproduce this easily, just follow step #1 and then remove Borland.Data.BlackfishSQL.RemoteClient from the GAC before running the application.
1) Create a new asp.net web application and build it 2) Using the asp.net deployment feature, deploy the application to a machine that has never had Delphi installed on it
i.e I installed on my web hosting provider
3) Also deploy
Borland.Delphi.dll Borland.VclRtl.dll Borland.Web.Provider.dll to the bin directory
4) Run the application
actual:
Server Error in '/' Application. Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: An error occurred while attempting to initialize a System.Data.SqlClient.SqlConnection object. The value that was provided for the connection string may be wrong, or it may contain an invalid syntax. Parameter name: ConnectionString
Source Error:
Line 172: <remove name="AspNetAdoRoleProvider"/> Line 173: <add name="AspNetAdoRoleProvider" Line 174: type="Borland.Web.Security.AdoRoleProvider, Borland.Web.Provider, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b" Line 175: connectionStringName="BlackfishSQLAspNet" Line 176: applicationName="/"/>
expected:
An exception should be raised that the provider Borland.Data.BlackfishSQL.RemoteClient.dll cannot be found, rather than trying to start to use System.Data.SqlClient
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
ASP.NET application with Interbase, IIS.
Connecting to the interbase fails with the following error.
Could not load file or assembly 'Borland.Data.DbxDynalinkDriver, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f' or one of its dependencies. The system cannot find the file specified.
I wonder how the .Net picked up the publickeytoken when it's not specified in the connectionstring because the publicKeyToken specified in the error message is different from what I have in my gac.
******* See RESOLUTION history |
1) Install Product and Interbase client on a clean VM 2) Run and do a new ASP.NET web application using Cassini 3) Modify the IBCONNECTION in DataExplorer to point a valid IB 2007 database connection containing the ASP.NET provider schema. I was using "medington4:d:\databases\interbase\aspnet.gdb" which is all setup and accessible if you want to use it as well. 4) Open web.config for the application and change the connection string to be:
<add name="BlackfishSqlAspNet" connectionString="connectionnName=IBCONNECTION" providerName="Borland.Data.AdoDbxClient"/> 5) Drop a login control on the default web form 6) Run without debugging 7) type something into the login control username and password and click the login button
//exp: Invalid username/password error //act: assemply load error message with a wrong publickey tokey:
Could not load file or assembly 'Borland.Data.DbxDynalinkDriver, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f' or one of its dependencies. The system cannot find the file specified.
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
| The Web Administration Tool does not recognize our provider |
1. Create a new ASP.NET application. 2. Drop a login control 3. Run the app. 4. Enter anything for username/password 5. Press Login button (database will be created). 6. Close application 7. In Project Manager, right click the project name and select ASP.NET Configuration 8. Select the Provider tab
exp: Our provider is listed along with the MS provider act: Only MS provider is listed |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Object Inspector |
| Description: |
Steps: |
ObjectInspector throws nullreference exceptions.
The problem is a timing issue between the obejctinspector and the design surface. when the collection editor is closed, the designsurface regains focus, and this will cause the designsurface to resync the OI. THis will dispose all the existing instances of InteropProperty. When the original property tries to apply the value from the property editor, it will find that the internal field "property" has been cleared.
Suggested fix (in propInspInterop.cs, line 1500)
DesignerTransaction trans = property.BeginTransaction(); try { Object oldValue = property.PropertyValue; Object newValue = property.UITypeEditor.EditValue(this, this, property.PropertyValue); if (newValue != oldValue) { property.PropertyValue = newValue; if (subProperties != null) subProperties.Clear(); CheckRefresh(); } } finally { if (trans != null) trans.Commit(); }
DesignerTransaction trans = property.BeginTransaction(); try { // keep a local copy of the actual property if the interopproperty // is disposed while the editor is open ObjectProperty tempProp = property; Object oldValue = tempProp.PropertyValue; Object newValue = tempProp.UITypeEditor.EditValue(this, this, oldValue); if (newValue != oldValue) { tempProp.PropertyValue = newValue; if (subProperties != null) subProperties.Clear(); CheckRefresh(); } } finally { if (trans != null) trans.Commit(); }
|
New Eco VCL application Open the diagram for Pacakge_1 in the ModelView Add two classes select class 1 in the OI, open the property editor for "Constraints" click OK (to close it) select class 2 in the OI, open the property editor for "Constraints" click OK (to close it)
exp: works just fine act: Nullreference exception NOTE: i got Object ref not set. stack trace in Comments. |
52834
| QC# |
Project |
Area |
| 52834 |
Delphi.Net |
IDE\Object Repository |
| Description: |
Steps: |
[QC Short Description] Object Repository does not work for VCL for .Net Forms
[QC Description] Trying to inherit from a VCL for .Net form added to the repository always ends in a "Abstract Error" with the callstack below. This also does not work in BDS 2006.
[20017D9A]{rtl100.bpl } SysUtils.AbstractErrorHandler (Line 14112, "sys\sysutils.pas" + 0) + $12 [20004759]{rtl100.bpl } System.@AbstractError (Line 4231, "sys\system.pas" + 2) + $0 [20A3FD22]{coreide100.bpl} GalleryTypes.TGalleryItem.DoSelect (Line 146, "GalleryTypes.pas" + 5) + $6 [2164EE19]{delphicoreide100.bpl} DelphiGalleryItems.TInheritTemplate.CreateNewInheritedModule (Line 422, "DelphiGalleryItems.pas" + 5) + $5 [2164F531]{delphicoreide100.bpl} DelphiGalleryItems.TInheritTemplate.Selected (Line 595, "DelphiGalleryItems.pas" + 133) + $17 [20A3FD22]{coreide100.bpl} GalleryTypes.TGalleryItem.DoSelect (Line 146, "GalleryTypes.pas" + 5) + $6 [20973480]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 182, "GalBrow.pas" + 22) + $4 [209734D3]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 185, "GalBrow.pas" + 25) + $2C [2097339E]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 152, "GalBrow.pas" + 0) + $6 [20977BEC]{coreide100.bpl} Gallery.FileNewDialog (Line 685, "Gallery.pas" + 0) + $0 [00414CD3]{bds.exe } AppMain.TAppBuilder.FileNewInheritedForm (Line 2361, "ui\AppMain.pas" + 2) + $10 [20040113]{rtl100.bpl } Classes.TBasicAction.Execute (Line 11081, "common\Classes.pas" + 3) + $7 [20151321]{vcl100.bpl } ActnList.TContainedAction.Execute (Line 388, "ActnList.pas" + 1) + $2C [20152084]{vcl100.bpl } ActnList.TCustomAction.Execute (Line 1000, "ActnList.pas" + 7) + $8 [2003FFDF]{rtl100.bpl } Classes.TBasicActionLink.Execute (Line 11010, "common\Classes.pas" + 2) + $7 [21328D19]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.ExecAction (Line 976, "ActnMenus.pas" + 6) + $D [2132A04F]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.TrackMenu (Line 1542, "ActnMenus.pas" + 15) + $15 [2132A07F]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.TrackMenu (Line 1547, "ActnMenus.pas" + 20) + $10 [2132D470]{vclactnband100.bpl} ActnMenus.TCustomActionMainMenuBar.TrackMenu (Line 3146, "ActnMenus.pas" + 3) + $3 [213288E5]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 878, "ActnMenus.pas" + 3) + $4 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [2013FE92]{vcl100.bpl } Controls.GetControlAtPos (Line 7095, "Controls.pas" + 4) + $73 [20140574]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7274, "Controls.pas" + 81) + $1D [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2132A13E]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.WndProc (Line 1575, "ActnMenus.pas" + 23) + $4 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 (00003FA9){DelphiSpeedUp105.dll} [01D34FA9] [201625D0]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8105, "Forms.pas" + 23) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7 QC Entry 52834
|
* Start a new VCL for .Net project * Add some components to the form and save the project * Right click on the form and add it to the repository * Start a new VCL for .Net project * Open the repository, select the form just added to the repository, choose inherit and click ok * See the Abstract Error |
51839
| QC# |
Project |
Area |
| 51839 |
Delphi.Net |
IDE\Project Manager |
| Description: |
Steps: |
[QC Short Description] Cryptic error when opening a Delphi Win32 .dproj in Delphi .NET
[QC Description] If I open a Delphi Win32 .dproj with only Delphi .NET personality running, I get an error like this:
--------------------------- Error --------------------------- Unable to load project C:\Documents and Settings\Hallvard\My Documents\RAD Studio\Projects\EnumerationEnumerator\EnumerationEnumeratorDemo.dproj.
|
REGRESSION: BDS2006 gave an error message similar to the expected listed below.
- Run Delphi Win32 - File | New | Delphi for Win32 Console App - Save project - Exit Delphi - Run Delphi .NET (no other personalities loaded) - Open project saved above
exp: Message la: "This project requires the Delphi Win32 personality to be loaded" act:
--------------------------- Error --------------------------- Unable to load project C:\Documents and Settings\Hallvard\My Documents\RAD Studio\Projects\EnumerationEnumerator\EnumerationEnumeratorDemo.dproj. --------------------------- OK Details >> ---------------------------
[209DA602]{coreide100.bpl} ProjectFileUtils.MSBuildLoadProjectFile (Line 941, "ProjectFileUtils.pas" + 41) + $2C [209DA630]{coreide100.bpl} ProjectFileUtils.MSBuildLoadProjectFile (Line 944, "ProjectFileUtils.pas" + 44) + $10 [21688EFA]{delphicoreide100.bpl} BaseDelphiProject.TDelphiProjectFileModuleHandler.FileOpen (Line 3173, "BaseDelphiProject.pas" + 2) + $B [20A62636]{coreide100.bpl} DocModul.TFileOpenHandler.FileOpen (Line 3091,
---snip--- |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Project Manager\Add reference |
| Description: |
Steps: |
Together issue. Removing a reference to System.Windows.Forms.dll from a VCL project causes a catastrophic error
the exception occurs in platformProjectImpl.cs, line 343.
IOTAReferences refs = p.References; for (int i = 0; i < refs.Count; i++) { IOTAReference iotaRef = refs[i]; string refName = iotaRef.Name; <<<< Here
bugfind credits goes to Holger
Workaround: Close the project, and reopen. Project builds and reference is removed. |
Steps: * New VCL .net form * switch to model view tab * enable modelling * answer yes to all save dialogs * Add reference to System.Windows.Forms.dll * Remove the reference again
exp: reference gone act: Catastrophic failure ------------------ ADDITIONAL: Project | Build results in a catastrophic faliure. ------------------ callstack on managed side: [Managed to Native Transition] > Borland.Studio.Together.dll!Borland.Studio.Together.Impl.Project.PlatformProjectImpl.updateReferences() Line 343 + 0x9 bytes C# Borland.Studio.Together.dll!Borland.Studio.Together.Impl.Project.PlatformProjectImpl.onModified(object sender = {Borland.Studio.Interop.InteropModuleService.OTAProject}, System.EventArgs args = {System.EventArgs}) Line 955 + 0x7 bytes C# [Native to Managed Transition] [Managed to Native Transition] Borland.Studio.Interop.dll!Borland.Studio.Interop.InteropModuleService.OTAModule.Borland.Studio.Interop.IInteropNotifier.Modified() Line 2063 + 0x15 bytes C# [Native to Managed Transition]
callstack on native side: [5304E633]{dotnetcoreide100.bpl} ToolsAPIWrapper.TInteropModule.Modified (Line 2577, "ToolsAPIWrapper.pas" + 3) + $2A [4000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [5217DA56]{coreide100.bpl} DocModul.TCodeIDocModule.NotifyModifiedEvent (Line 2355, "DocModul.pas" + 2) + $5 [0173666A]{designide100.bpl} ToolUtils.ForEach (Line 90, "ToolUtils.pas" + 5) + $F [5217DAF0]{coreide100.bpl} DocModul.TCodeIDocModule.NotifyModified (Line 2362, "DocModul.pas" + 1) + $11 [5217A791]{coreide100.bpl} DocModul.TDocModule.Modified (Line 1235, "DocModul.pas" + 6) + $3 [520EB66E]{coreide100.bpl} ProjectModule.TBaseProject.Modified (Line 1204, "ProjectModule.pas" + 1) + $3
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Dom |
| Description: |
Steps: |
Create ASP's event got
procedure Button1_Click(sender: TObject; e: System.EventArgs);
when it should be
procedure Button1_Click(sender: System.Object; e: System.EventArgs); |
1. File | New | ASP Application 2. drop an asp:button 3. double click Button to Onclick // procedure Button1_Click(sender: TObject; e: System.EventArgs);
// notice "TObject" should be "System.Object"
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
Doing a class completion with a Generic in the procedure results in an error of: --------------------------- Error --------------------------- Expected ')' but '<' found in class TForm1. --------------------------- OK Details >> |
+ Copy and paste the following code: ===================== TForm1 = class(TForm) private { Private declarations } public function StringFromWordArray(words: ReadOnlyCollection<RecognizedWordUnit>; &type : WordType) : string; procedure Problem(ASender : TObject; e: AudioSignalProblemOccurredEventArgs); end; ===================== + Press Ctrl+C to complete the class //exp: Class to be completed //act: --------------------------- Error --------------------------- Expected ')' but '<' found in class TForm1. --------------------------- OK Details >> ---------------------------
|
51541
| QC# |
Project |
Area |
| 51541 |
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description] Class Completion Fails with Generics on Right Side of = Sign
[QC Description] My experience has been that ANY < after the equal sign in a class definition will cause class completion to not work. And not just in the class you are trying to complete! You get the error message on the first < in your code (on the right hand side of an equal sign).
So, I have to code class definitions until they will compile with only missing externals, then go through all my class defininitions and comment out the generics on the right side of the equal sign (which causes Error Insight to complain about each of those lines), then do class completion of each of the classes (which now works because the < characters are now in comments), and finally go back and restore all the commented out generics on the right side of the equal sign! Now it will compile, and I just have to add the code in the body of each method. If you want to define ANOTHER class, you have to go back and comment out all the generics stuff on the right hand sides in order to do class completion on the new class.
I thought it might be "easier" to just type the procedure/function headers myself in the implementation section, but with generics, the class name before the method name can be a lot to type each time!
Am I missing something in using generics? Having to follow this procedure to use generics in the editor REALLY sucks... QC Entry 51541
|
program ClassCompl; {$APPTYPE CONSOLE} uses System.Collections.Generic; type IntegerComparer = class(IComparer<Integer>) public function Compare(I1, I2: Integer): Integer; end; begin end. Load above into IDE. Try class completion on IntegerComparer class. See? |
51096
| QC# |
Project |
Area |
| 51096 |
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description] class completion duplicates field of qualified type
[QC Description] When class completion is invoked on a class having a property with a qualified type name (one with at least one dot), the corresponding field is created for each invocation.
This is as mainly seen in .NET where qualified types are common, but also reproducable in Win32.
I actually stumbled across it using ECO where each ECO form has an EcoSpace property of type Eco.Handles.DefaultEcoSpace. Thus each invoked class completion adds another field for that property. QC Entry 51096
|
- start IDE - create new VCL Form Application - move to the public section - enter: "property Foo: System.Int64 read FFoo;" - press Ctrl-Shift-C for class completion - field FFoo: System.Int64 is created - press Ctrl-Shift-C for class completion again exp: nothing happens act: another field FFoo: System.Int64 is created |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Parameters |
| Description: |
Steps: |
parameter tooltip is not displayed correctly in this test case. Tooltip is not displayed for one of the parameters.
looks like code parameters are not working for membership provider.
(jpg attached) |
1. Create ASP .NET App 2. On Page_Load function in Default.pas, write following Membership.ValidateUser( // exp: ValidateUuser has two parameters, username and password, so expect to have tooltip for "username" after "(" is entered // act: tooltip for password is displayed
try FormsAuthentication.RedirectFromLoginPage also. Code completion displays the correct parameter, but parameter tooltips are completely wrong. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Packages |
| Description: |
Steps: |
HOT FIX ROLL UP 1-10
Object ref not set on shut down of IDE if you uncheck a Win32 package, while you have a .NET app open.
STACK TRACE Attached |
boot IDE New VCL.NET App Save All Tools | Options - set Save Project Desktop ON Save All Shut down IDE Start IDE // VCL.NET app should be open Component | Install Packages uncheck one OK Close IDE
//Object Ref not found
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Refactoring\Rename |
| Description: |
Steps: |
ORIGINALLY REPORTED FOR JA... BUT CAN REPRODUCE THIS ON EN.
[FUNCTION ISSUE] Rename function is wrong. It was not changed definitely, for example, when I changed variable name from 'i' to 'test'. See attach image. |
1. Startup | CodeGear RAD Studio 2. File | New | VCL Forms Application - Delfhi for .NET 3. Coding 4. Refactoring | Rename "..." |
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger |
| Description: |
Steps: |
| rmtdbg105.exe hangs when reading the symbols for Eco.Core.dll |
Run | Load Process on the attached Project27.exe (the source is also included in the attachment) Run it and click the button. The button will do an "Assembly.LoadFrom" on Eco.Core.dll The IDE hangs. If you look in task manager, rmtsbg105.exe is using 100% CPU
If you delete Eco.Core.pdb and repeat the steps, no hang is seen |
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
| Format specifiers have no effect in the evaluator. |
Set a breakpoint on the line marked #1 and run.
Evaluate the following expression.
IntegerVar,h
See the following result.
42
The value expected was 2A or $2A.
program Test;
{$APPTYPE CONSOLE}
var IntegerVar: Integer;
begin IntegerVar := 42; WriteLn(IntegerVar); // #1 end.
|
53491
| QC# |
Project |
Area |
| 53491 |
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
[QC Short Description] Evaluation of HUGE string crashes debugger+IDE
[QC Description] When the debugger tries to evaluate a huge tring (~1 million chars) - bds.exe crashes and dies with the following message:
bds.exe - bordbk105.dll --------------------------- Debugger Assertion Failure: "" in pcntrlsrv.cpp at line -1073741819 Continue execution? QC Entry 53491
|
Make sure to add System.Text to uses
---BO SNIP--- var LBuffy: StringBuilder; S: string; begin LBuffy:=StringBuilder.Create; LBuffy.Append('x', 1000000); //add a million x chars //break on line below and evaluate 'LBuffy' or 'LBuffy.ToString' here and debugger+IDE will crash. S:=LBuffy.ToString; //break on line below and debugger+IDE crashes - even without any evaluation attempts Showmessage(S); end; ---EO SNIP--- |
53465
| QC# |
Project |
Area |
| 53465 |
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
[QC Short Description] Evaluation of string's Length property crashes debugger+IDE
[QC Description] Evaluation of a string's Length property results in crash with the following error message: -- Debugger Assertion Failure: "" in pcntrlsrv.cpp at line 3088 Continue execution --- QC Entry 53465
|
---BO SNIP--- var L: Integer; S: string; begin S:='xxx'; //assign any value L:=S.Length; //set breakpoint here and evaluate 'S.Length' ShowMessage(L.ToString); //show value of L (just so L wont get optimized away) end; ---EO SNIP---
See also related/duplicate QC reports: 53588 & 53479 |
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger\Interaction with IDE |
| Description: |
Steps: |
| You are unable to change either the Working directory or the Debug source path for an ASP.net app if the ASP.net option "Host with web server" is enabled |
Create a new delphi.net ASP.Net application Run | Parameters Note that the all the controls on the "Debugger" page are disabled. Only the Host application and Parameters fields need to be disabled in this case
Note: If you uncheck "Host with web server" on the ASP.Net options page, then you can set the source path and working directory. |
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
| About box in ECO Utils menu can be resized and position of button "Close" is too far on the right, it gets cut off. |
1. Start HL 2. ECO Utils / About...
|
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
When creating a WebForm app and a model package at the same time, the initialization of the EcoSpaceUnit fails with a designer error
|
1) File | New | Other | Eco | Eco Delphi.Net Project Wizard 2) Select the preset, Webform application and set the checkbox ON for "In separate assembly. click OK //result: EcoSpaceUnit opens in the designer with this error: An error occurred while loading the document. Fix the error, and then try loading the document again. The error message follows: Could not find type 'EcoSpaceUnit.PersistenceMapperSharer'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built. The variable 'PersistenceMapperSharer1' is either undeclared or was never assigned. 3) In Project Manager, double-click PersistenceMapperProvider.pas to open it 4) Click on the Design tab //result: Similar Designer errors // comment from Jonas: The project compiles without problems. if you close the project and reopen it, the designer works just fine.
If you create the project with the model in the same project as the rest (uncheck "In Separate assembly"), the same ecospace opens up just fine the first time.
The exception that actually occurs in the IDE is the following:
=== A first chance exception of type 'System.ComponentModel.Design.Serialization.CodeDomSerializerException' occurred in System.Design.dll
Additional information: The variable 'PersistenceMapperSharer1' is either undeclared or was never assigned. ===
callstack (see attached) |
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
please change the layout of the "Select UML Packages for the ECO Space" dialog for localization. "Cancel" button does not fit into the dialog after we translate. ------------ "Cancel" button in ECO's Select Packages wizard is slightly truncated. |
- Open a new ECO WinForm; - Go to EcoSpace Designer and click a grey folder icon in the lower left corner; //"Select UML Packages for the ECO Space" dialog opens; // See the attached screenshot. |
53711
| QC# |
Project |
Area |
| 53711 |
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
[QC Short Description] ECO uneccessarily loaded at startup of Win32/C++ Builder only personality
[QC Description] As it seems the ECO package is still loaded in the Win32 and C*+ Builder single personality mode. If ECO is not used by the IDE this shouldn't be loaded for Win32 and C++ Builder only mode.
Not doing this could reduce startup time a little bit. QC Entry 53711
|
1. start IDE (single personality mode: Win32 or C++ Builder) 2. watch the ECO stuff being loaded (if not seen on the splash screen use process explorer or similar to look for loaded ECO stuff) |
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
| Webservice applications cannot be created using the Eco Project Wizard. The files being generated contain placeholders that need to be replaced and the IDE does not pick up the pas files. |
1. Start HL 2. File / New / Other... 3. select tab ECO / New project 4. select Webform app, check Webservice 5. select no model at all 6. select dbx persistence 7. click ok
exp: project can compile and is set up properly act: Webservice1.asmx is missing the pas file in the ide. if you browse the file you find parts like this that contain placeholders.
uses System.Collections, System.ComponentModel, System.Data, System.Diagnostics, System.Web, System.Web.Services, Eco.ObjectRepresentation, Eco.Handles, EcoSpaceUnit, <NONE>;
|
39104
| QC# |
Project |
Area |
| 39104 |
Delphi.Net |
ECO\Persistence Layer |
| Description: |
Steps: |
[QC Short Description] ECO crashes when selecting data conditionally from SQL 2005 when the number or rows exceeds certain amount.
[QC Description] Attached is the test project I created. Please correct the connection string in order to connect to your own SQL server. The EcoSpace is setup to use GUID as the keys; and the only ECO class is named "Class_1" with only one boolean attribute "Active". The winform contains 3 buttons, the "+ 10" would create and add 10 rows to the DB. the "All" would bind the datagrid to the expression "Class_1.allInstances" and the button "Active" would bind the datagrid to the expression "Class_1.allInstances->select(Active)"
1. setup SQL server and generate the schema 2. run the program and add 10 rows 3. check the "All" and "Active" buttons work properly 4. press 2 more times of the add buttons to add 20 more rows 5. check again the "All" and "Active" buttons work 6. close and restart the program 7. the "All" button works but the "Active" button would crash the program with exception "Conversion failed when converting from a character string to uniqueidentifier."
Reset the EcoSpace to use AutoInc as keys and repeat the test would result in exception: "Error executing SQL: SELECT Class_1_ALIAS.ECO_ID, Class_1_ALIAS.ECO_TYPE, Class_1_ALIAS.Active_COL FROM Class_1 Class_1_ALIAS WHERE Class_1_ALIAS.ECO_ID IN (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )"
P.S. my config: Windows XP SP2 with all updates, BDS 2006 Update 1 with all hotfixes, MS SQL 2005 Express QC Entry 39104
|
1. setup SQL server and generate the schema 2. run the program and add 10 rows 3. check the "All" and "Active" buttons work properly 4. press 2 more times of the add buttons to add 20 more rows 5. check again the "All" and "Active" buttons work 6. close and restart the program 7. the "All" button works but the "Active" button would crash the program with exception "Conversion failed when converting from a character string to uniqueidentifier." Reset the EcoSpace to use AutoInc as keys and repeat the test would result in exception: "Error executing SQL: SELECT Class_1_ALIAS.ECO_ID, Class_1_ALIAS.ECO_TYPE, Class_1_ALIAS.Active_COL FROM Class_1 Class_1_ALIAS WHERE Class_1_ALIAS.ECO_ID IN (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )" |
51669
| QC# |
Project |
Area |
| 51669 |
Delphi.Net |
ECO\Persistence Layer\Evolution |
| Description: |
Steps: |
[QC Short Description] Cannot evolve model after changing persistence mapper for enumerated type attribute
[QC Description] I have changed an ECO model so that an attribute with an enumerated type now uses the GenericEnumAsInteger persistence mapper. When I attempt to evolve the DB, I get the following output in the ECO Messages tab :-
Eco.SqlMeta| Detecting changes Eco.SqlMeta| Initializing Script Eco.SqlMeta| Detecting type clashes... Eco.SqlMeta| Analyzing new tables... Eco.SqlMeta| Analyzing new columns... Eco.SqlMeta| Analyzing new instances... Eco.SqlMeta| Analyzing data movements... Eco.SqlMeta| Analyzing old instances... Eco.SqlMeta| Analyzing old columns... Eco.SqlMeta| Analyzing old tables... Eco.SqlMeta| Optimizing script... Eco.SqlMeta| Drop column INVOICE.STATUS Eco.SqlMeta| Add column INVOICE.STATUS Failed to detect changes: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list. at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) at System.String.Format(IFormatProvider provider, String format, Object[] args) at System.String.Format(String format, Object[] args) at Eco.Internal.TBoldDataBaseEvolutor.DetectMapperChange(ClassDefinition NewClassDef, ClassDefinition OldClassDef, StructuralFeatureDefinition NewMemberMapping, StructuralFeatureDefinition OldMemberMapping, Object Param) at Eco.Internal.TBoldDataBaseEvolutor.ForEachMemberMappingPair(TBoldMemberMappingPairAction Action, Boolean IgnoreInstances, Object Param) at Eco.Internal.TBoldDataBaseEvolutor.GenerateWarnings() at Eco.Windows.Forms.DBEvolutionForm.EvolveDB(IServiceProvider serviceProvider, IDBEvolutor evolutor, Boolean silent) QC Entry 51669
|
- Download the attachment and unzip - Open ContractManager.groupproj - Open the Project Manager window - Expand the ContractManager.exe node - Double-click on the EcoSpaceUnit.pas node - Right-click on the EcoSpaceUnit design surface and select 'Evolve Schema' |
51842
| QC# |
Project |
Area |
| 51842 |
Delphi.Net |
ECO\Persistence Layer\Mapping |
| Description: |
Steps: |
[QC Short Description] InvalidCastException when attempting to persist class with enumeration
[QC Description] If I have a class that has an attribute with an enumeration as its type, and I've configured the enumeration to use the GenericEnumAsInteger persistence mapper, I get an InvalidCastException when I attempt to call save changes to a BlackfishSQL database. QC Entry 51842
|
- Download EnumTest.zip and unzip - Open EnumTest.dproj - Select Run|Run from the IDE main menu - Click the 'Button1' button Expected: A Foo instance with its Bar property set to BarEnum.Bar1 will be created and saved to the BlackfishSQL database Actual: An InvalidCastException is thrown when EcoSpace.UpdateDatabase is called |
50587
| QC# |
Project |
Area |
| 50587 |
Delphi.Net |
ECO\Presentation Layer |
| Description: |
Steps: |
[QC Short Description] Bound TDBLookupComboBox not showing list contents correctly
[QC Description] If a TExpressionHandle is bound to a TDBLookupComboBox, the contents of the dropdown list doesn't display until the dropped down list is clicked, if an item has already been selected. The list is dropped down, but is empty. QC Entry 50587
|
- Download LookupComboBind.zip and extract - Open LookupComboBind.dproj - Select 'Run|Run' from the main menu - Click the button to the right of the Combobox to invoke the dropdown list - Select 'Item 1' from the list - Click the button to the right of the Combobox to invoke the dropdown list Expected: The list will display all possible selection values Actual: An empty list is shown - Click the list. The list will now be populated, and a value can be selected. |
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\Other |
| Description: |
Steps: |
| ECO license dialog pops up when Windows Update patches Visual Studio or when Visual Studio is run. It is especially problematic if you have multiple user accounts on a machine as the dialog pops up without Windows being able to show it and you get reminders about the message not being shown constantly again and again. |
0. Install VS 2005 or any product that comes with parts of it, e.g. MS SQL Server 2005 1. Install HL
exp: any other product is not affected act: ECO license dialog pops up when VS-dependant product is being used
|
51619
| QC# |
Project |
Area |
| 51619 |
Delphi.Net |
ECO\Other |
| Description: |
Steps: |
[QC Short Description] Sorting the columns in quick prototype does not work
[QC Description] I opened a quick prototype with data in it (of a model I made). Then I sorted the table with a click on the column title. When I double clicked on the cell to bring up the autoform of the current row, it brought up the data for another row. The row that had been in that spot prior to sorting. This happened with both persistent columns and derived columns. QC Entry 51619
|
Make a model Open in quick prototype Select a table (add data if not already in there) Click on the column title to sort Double click on gray cell at left side of row to bring up auto form If the rows rearranged during sort, the data borught up will not match the selected row. |
| QC# |
Project |
Area |
|
C++Builder |
Modeling |
| Description: |
Steps: |
C++ Builder: Diagram should be updated after changing in the code inheritance list. Now Reload is required.
[Highlander Update]
Rev. 9858 |
1. add following code to the C++ project: class A{}; class B{}; class C{}; 2. check that all 3 classes are shown in the diagram 3. in the code make class A as parent of class C: class C : A {}; 4. switch to the diagram - ok, generalization link is drawn. 5. now in the code changed parent class to B: class C : B{}; 6. go to the diagram - the link is still drawn from C to A. Update (F5) doesn't help. Only after project reload the link is drawn as expected - from C to B. |
| QC# |
Project |
Area |
|
C++Builder |
Modeling |
| Description: |
Steps: |
Exception appears after switching to Model View mode
[saa] It reproductible only on my computer. I couldn't reproduce this problem on virtual machines |
1. Create new C++ project (Console application) 2. Click to Model View-> Add Model Support Window appears-> Click yes and then choose default settings-> Click ok-> Exception appears
[vkarjakin] Attached is Projects folder for this Exception. Clean (or rename) your C:\Documents and Settings\<your account>\My Documents\RAD Studio\Projects folder and extract to this folder attached content. You will receive this Exception. The problem is in the infinite loop because the subdirectory has the same name as the project root directory (Borland.SCI.Impl.Cpp.CppProjectStructure class uses short names by the Projects folder parsing)! Such situation can be repeated in many projects because of many reasons.
|
| QC# |
Project |
Area |
|
Delphi |
Modeling |
| Description: |
Steps: |
Don't loose GetProperty and SetProperty declarations after Add Property action to the class with delegate
[Highlander Update] |
1. Add Class to the diagram 2. Add Delegate or Delegate as function to the class 3. Add Property to the class
Result: It can be noted that Property is not shown in diagram, and in sourse code we see only
property Property1 : Integer read GetProperty1 write SetProperty1;
that is declarations of GetProperty1 and SetProperty1 were lost. As result code is not compilable. |
| QC# |
Project |
Area |
|
C++Builder |
Modeling\SCI |
| Description: |
Steps: |
Old class stays in the model after having been completely replaced by a new one.
[Highlander Update] |
* new C++ console application (options: C++, no VCL, no Multi Threaded) * add modeling support * put the following code in the main.cpp
class a { void f(); }; void a::f() {}
* go to model tree // act: the class a is there * go to the source code and replace both references to `a' with `b' * go to model tree // act: both the class `a' and the class `b' are there but only the latter contains the method f() ------------------------------ Changed steps in build 2789.8895.1: 1. create vcl c++ project 2. add modeling 3. add a function to the class TForm1 with implementation out of class declaration - I'm not sure this step is essential. 4. check the class with new function is shown in the diagram and in the model tree 5. Go to the code and change class name from TForm1 to e.g. Taa - in unit1.cpp 4 times and in project1.cpp in USEFORM("Unit1.cpp", aa) (essential!) and in another line below (not really important) 6. Go to the diagram and see that 2 classes are shown TForm1 and Taa, ModelTree as well contains both classes. Only one class Taa should be shown. 7. After Project Reload extra TForm1 class disappears.
|
| QC# |
Project |
Area |
|
Delphi |
Modeling\SCI |
| Description: |
Steps: |
Delphi Win32: The problem: correctly create references to inner types if the target classifer is located within the unit after the source classifier. Probably target classifiers should be replaced to be before source one.
[SpUpdMF] |
|
| QC# |
Project |
Area |
|
Delphi |
Modeling\Class Diagram |
| Description: |
Steps: |
It should be possible to delete struct field from Class Diagram
[Highlander Update] |
1. Add Struct to diagram 2. Add Field to struct 3. Select struct field in diagram-> attempt to remove it ( press Del button or via context menu)
exp: Remove action is done act: Nothing is done |
| QC# |
Project |
Area |
|
Delphi |
Modeling\Audits |
| Description: |
Steps: |
Should be possible to run Audits and Metrics on project level
From newsgroups:
Warren Postma
I have never (in delphi 2007 field test builds, nor in the RTM 2007, nor 2007 update 1, nor latest F/T H2 build) been able to get Metrics to work for the whole project.
One form (.dfm/.pas) only, no problem.
But if I select the WHOLE PROJECT, audits fails in one of two ways:
1. No results ever. Frozen delphi (progress bar never moves, audit results never returned).
2. Fast processing (no progress bar, but the whole thing cancels out, fails silently), and we are returned to our audit-results window pane, which is empty and contains no results.
How on earth does one do metrics on a whole project? Can you only do metrics on a form by form basis?
NOTE: This means, go open a .dproj with 50 forms or so in it, not some trivial piece of demo code, and actually TEST the audits/metrics features on the whole projects. Does it work for you?
Warren
[Highlander Update]
|
Unzip attached project Start Delphi Open project GExpertsD9.dpr Switch on modeling Switch to Model View Launch popup menu on top node GExpertsD9 Launch QA Audits Select All Audits Start
//exp. Audits results are shown //act. Error message appears and Delphi is closed. See attached image.
The same situation with running metrics, Delphi is closed.
On some particular packages fast processing is observed. Audits or metrics result pane is empty in this case. It's possible to run Audits&metrics for single class and for some (small?) packages.
|
| QC# |
Project |
Area |
|
C++Builder |
Modeling\MDL Import |
| Description: |
Steps: |
Access violation when modelisation convertion is cancelled once it is hit the error comes back in a loop - i have to kill bds.exe
[vk] The same problem in all projects in the section "Design Projects": UML1.5 Project, UML1.5 Project, etc. Here are 2 bugs 1) All design projects must be presented in all Architect shortcuts (CBuilder, Delphi, DelphiDotNet) 2) Design projects should be open without Exceptions
[Highlander Update] |
1. French Pro hihglander is installed 2. start C++ builder 3. Fichier | Nouveau | autre (file | new|other) 4. projects de modelisation 5. Convertir depuis MDL 6. keep default settings - click OK 7. Annuler (cancel)
Error window access violation in dotnetcoreide100.bpl
[21E70B6C]{dotnetcoreide100.bpl} DotNetProject.TReferencesCategory.GetIndex (Line 3105, "DotNetProject.pas" + 3) + $7 [2098434A]{coreide100.bpl} ProjectFrm.TProjectManagerForm.ProjectTree2GetImageIndex (Line 1333, "ProjectFrm.pas" + 22) + $10 [20E77C08]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.DoGetImageIndex (Line 18527, "idevirtualtrees.pas" + 8) + $19 [20E7A20B]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.GetImageIndex (Line 20032, "idevirtualtrees.pas" + 6) + $25 [20E838B0]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.PaintTree (Line 27023, "idevirtualtrees.pas" + 217) + $27 [20E7CB80]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.Paint (Line 21712, "idevirtualtrees.pas" + 16) + $17 [20145563]{vcl100.bpl } Controls.TCustomControl.PaintWindow (Line 10157, "Controls.pas" + 6) + $5 [20140825]{vcl100.bpl } Controls.TWinControl.PaintHandler (Line 7367, "Controls.pas" + 4) + $14 [20140FF8]{vcl100.bpl } Controls.TWinControl.WMPaint (Line 7560, "Controls.pas" + 6) + $5 [201454FC]{vcl100.bpl } Controls.TCustomControl.WMPaint (Line 10146, "Controls.pas" + 2) + $4 [20E748F1]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.WMPaint (Line 16412, "idevirtualtrees.pas" + 8) + $4 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [20031615]{rtl100.bpl } Classes.TList.Delete (Line 2945, "common\Classes.pas" + 9) + $8 [200318DD]{rtl100.bpl } Classes.TList.Remove (Line 3081, "common\Classes.pas" + 3) + $4 [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [20D1972A]{designide100.bpl} DeskUtil.SetFocusHook (Line 435, "DeskUtil.pas" + 4) + $C [20E7EB5A]{vclide100.bpl} IDEVirtualTrees.TBaseVirtualTree.WndProc (Line 23133, "idevirtualtr |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling |
| Description: |
Steps: |
Delphi Win32 and .Net: add parameters with var/out/const modifier to global procedure/function using "Add/Remove Parameters for Operation" dialog both to interface and implementation sections. Now only in interface sections parameters with modifiers are partially set. Adding parameters without modifier happens ok. Adding paramerters with modifier to procedure/function within a class happens ok.
[Highlander Update] |
1. Source code: unit Namespace1; interface procedure p; implementation procedure p; begin end; end. 2. case a. Now select p in Model View and try to change parameters from Object Inspector using "Add/Remove Parameters for Operation" dialog. Add one parameter and set any modifier var/out/const for it - parameter is added to both parts, but modifier is present only in interface part: unit Namespace1; interface procedure p(out param0 : Integer); implementation procedure p( param0 : Integer ); // out is lost begin end; end.
2. case b. Using the same dialog as in case a, try to add 2 parameters and modifier set only for first one (it's important that it should be a parameter after parameter with modifier). Result: exception dialog (see attachement). Resulting code: unit Namespace1; interface procedure p(out param0 : Integer ; param1 : Integer); implementation procedure p( param0 : Integer ); // out and other parameters are lost begin end; end.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling |
| Description: |
Steps: |
Delphi .Net and Win32: Don't lose design elements and diagram on copy/paste a namespace with a classifer.
[Highlander Update] |
1. add in a namespace a class, a note, a constraint, an object, a design diagram (e.g. usecase) with some elements. 2. save all (it doesn't matter) 3. copy the namespace and paste it beside -> new namespace contains only the class and one of design elements (probably this doesn't have regularity - in one case a note was kept, in another an object). All other design elements and the design diagram are lost. But they should be kept. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
It is impossible to compile Delphi project with included namespace
[dpr support]
[vi]Investigation note: This same happens of course in namespaces 2nd and more levels created in an ordinar namespace. After class adding to a namespace a pas file with 2 Unit1 is created, though unit statement contains only one Unit1. Then dpr file contains only reference to this incorrect named pas file. Workaround: rename pas file from Project Manager to remove extra Unit1. After it the code is compiled ok.
[Highlander Update] |
1. Create Delphi .NET Console Application and switch on Modelling support 2. In the ModelView create included namespace Namespace1 using Project## namespace node (node with icon "{}") 3. Add class to the Namespace1. 4. Try to compile sources - you will receive error:
1) In the text editor in the ProjectXX.dpr file you will see the line with duplicated Unit1! - this is error "uses ... Project##.Namespace1.Unit1.Unit1 in 'Project##.Namespace1.Unit1.Unit1.pas';" 2) After navigation to the compile error you will see Unit file with duplicated Unit1 part in the file name: Project##Namespace1.Unit1.Unit1 - this is error in filename But the source of this file contains single Unit1 - "unit Project##.Namespace1.Unit1;" - it is right
The namespace of 3rd level contains duplicated "Unit1" word too! |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
Find a solution to canhas projects with the same structure (names) in one folder.
[Highlander Update] |
1. Create Delphi.Net Package project (Package1) in the default folder for projects. 2. Create namespace (Namespace1) in the project and Class (Class1) in this namespace. 3. Create another project (Package2) in the same folder. 4. Repeate item 2. for project Package2.
Class2 is not created.
AD : SCI asks VFSProject (for 'Package2') to create file with name 'Namespace1.pas' which already exists (in project 'Package1').
Now Class 2 is created and code is Ok. But when project Package1 is opened, it can be noted that Class 2 is appeared. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
Delphi .Net and Win32: It should be possible to add parameters to delegate/delegate as function via Object Inspector. Now only exception happens.
[Highlander Update] |
[21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8 [20E0BD4A]{vclide100.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 579, "IDEListBtns.pas" + 8) + $11 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [201400D7]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7168, "Controls.pas" + 1) + $9 [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 [20163641]{vcl100.bpl } Forms.TApplication.StopHintTimer (Line 8672, "Forms.pas" + 3) + $6 [201625C8]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8103, "Forms.pas" + 21) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Exception occurs after name edit name in diagram and then change focus to the Object Inspector
Bug is unstable. I have reproduced two times. |
approximate steps:
1. Add Namespace or Class-> focus is set to inplace editor 2. Change focus to the Object Inspector
Exception occurs
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Borland.Together.Diagram.Core.InplaceEditorManager.b() at Borland.Together.Diagram.Core.InplaceEditorManager.b(IInplaceEditor ) at Borland.Together.DrawingSurface.InplaceEditor.TextFieldInplaceEditor.c() at Borland.Together.DrawingSurface.InplaceEditor.TextFieldInplaceEditor.b(Object , EventArgs ) at System.Windows.Forms.Control.OnLostFocus(EventArgs e) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.TextBoxBase.WndProc(Message& m) at System.Windows.Forms.TextBox.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi .Net and Win32: Dont' lose design links on container namespace copy-paste. Now elements are kept, but links are lost. Note: copy/paste of only design diagram happens ok - links are kept.
[Highlander Update] |
1. create a namespace 2. within it create a design diagram (e.g. UseCase), add a couple of elements and a link between them 3. now copy the container namespace and paste it beside 4. open an UseCase diagram from pasted namespace - it contains only elements and there is no links. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi .Net and Win32: it should be possible to rename a procedure inplace in the diagram. Now new name is rejected and old one is kept. Note 1: functions are renamed inplace ok Note 2: the same procedures are renamed ok from Object Inspector.
[Highlander Update] |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi.Net: Show generic parameters of functions on the class icon. Now only class with generic parameters has distinction from ordinar class, it would be better if generic functions as well have distinctions. The better way to show these parameters as a part of name.
|
A = class function F<T>:Integer; // now is shown as F, but F<T> is expected procedure P<Y>; // the same end; |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Delphi .Net and Win32: Remove property "params" from properties. Now dialog "Add/Remove parameters for Operation" appears and then after some parameters adding and OK pressing only exception happens. No parameters are applied (ok).
[Highlander Update] |
Exception text:
[21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8 [20E0BD4A]{vclide100.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 579, "IDEListBtns.pas" + 8) + $11 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [201400D7]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7168, "Controls.pas" + 1) + $9 [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 [2004A426]{rtl100.bpl } Contnrs.TComponentList.GetItems (Line 380, "common\Contnrs.pas" + 1) + $4 [201625C8]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8103, "Forms.pas" + 21) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Editing template parameters in-place on a diagram or in IO constantly fails.
[Highlander Update] |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Delphi .Net and Win32: Inspector: it should be possible to add a parameter with array type via "Add/Remove Parameters for Operation" dialog. Now a parameter of default type is created and there is an exception.
[Highlander Update] |
* create new Delphi Win32 app, * save all somewhere, * click Model View tab, enable modeling, * right-click project node in Model Tree, choose Add|Namespace, * right-click the newly created namespace node, choose Add|Class, * right-click the newly created class node, choose Add|Procedure, * select the procedure, select Params in OI, click ellipsis.
Try to add a parameter with type array[1..5] of Integer or array of TObject
Exception: [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Patterns |
| Description: |
Steps: |
Delphi.Net and Win32: Stub implementation: don't loose parameter's modifiers.
[Highlander Update] |
1. Original code (e.g. for Win32): Interface1 = interface procedure Proc1 (const name: string; Var param1 : Integer; out param2 : Integer); end; Class1 = class (TInterfacedObject, Interface1) end; 2. Now for Class1 generated Stub Implementation. Results: Class1 = class (TInterfacedObject, Interface1) procedure Proc1( name : String ; param1 : Integer; param2 : Integer); end; So, all parameters' modifiers (const, var, out) are lost and the code is not compilable. |
|
|
Connect with Us