Qualitycentral Reported Bugs Fixed in Delphi 2010
Total Page:16
File Type:pdf, Size:1020Kb
QC #: Date Reported: Area: 584 4/9/2002 IDE\Structure Pane Description: Steps: [QC Short Description] 1. Create a new application 2. Drop quite a few buttons etc. on the form and a PageControl. 3. Open the Object Strcuture View (formerly Object TreeView) doesn't automatically scroll when in Drag&Drop TreeView (Alt+Shift+F11) 4. Resize the Object TreeView window so that not all nodes are visible and the scrollbars appear 5. Now try to drag one of the buttons TreeNodes to the edges of the TreeView exp: TreeView [QC Description] should automatically scroll act: Nothing When designing complex forms the content of Structure View doesn't fit on the screen. If you then try to move components in the Structure TreeView by Drag&Drop you can't drop it onto a TreeView node which is currently not visible because the TreeView doesn't scroll when you're pointing your mouse near the edges of the TreeView. That way Object TreeView loses it's most important feature (IMO) ! QC Entry 584 QC #: Date Reported: Area: 739 4/12/2002 IDE\Code Editor\Keymapping Description: Steps: [QC Short Description] Tab key should indent block [QC Description] The tab key should indent a block of text when it is highlighted. This is the behaviour of most other IDEs and makes more sense than the current key combination. Shift+tab should unindent a block of text when it is highlighted. This suggestion costs nothing to implement, has no negatives, makes life easier for people changing from VB, is intuitive for new users, and makes it easier for everyone who has ever had to indent text. There is no need to remove the current functionality of tab when no block is highlighted. And there is no need to remove the other keystrokes which indent blocks of text. QC Entry 739 QC #: Date Reported: Area: 1936 7/26/2002 IDE\Search\Find in Files Description: Steps: [QC Short Description] Allow "find in files" in properties on forms/datamodels/frames (DFMs) [QC Description] When finding in files only the source code is searched. There is no such function for searching in all forms / data models within a project / directory etc. Example: Your customer asks you to change all texts / labels / ... from Automobile to Vehicle. You know this word is present is source code, on many forms in captions, hints etc. Do a "Find in files" on Automobile with the (Associated files checkbox enabled or something like that). When you select the Automobiles found on DFMs it popups the form, selects the correct component/control, popups the Object Inspector and selects the correct property. QC Entry 1936 QC #: Date Reported: Area: 2248 9/2/2002 Documentation\Online Help\VCL Description: Steps: [QC Short Description] Put a TXPManifest on a form and press F1 while it is selected Delphi 7: No help for TXPManifest Fixed in Weaver, see [QC Description] There is not helptopic about TXPManifest, which makes is hard to understand in de Trial version. ms-help://embarcadero.rs2010/vcl/XPMan.TXPManifest.html QC Entry 2248 QC #: Date Reported: Area: 2267 2/15/2004 VCL\Additional Controls\TCheckListBox Description: Steps: (This report "migrated" from QC 2267 for D6) It would be really useful to have the following methods in TCheckListBox: CheckAll; -> set all items to Checked UncheckAll;-> set all items to Unchecked It might be nice to include a default (const bool=True) parameter to specify whether also the Grayed items should be influenced by these sweep-all methods. (PS why is there no QC "Area" for VCL TCheckListBox in D.NET?) QC Entry 2267 QC #: Date Reported: Area: 3111 12/12/2002 Database\TParams Description: Steps: [QC Short Description] Open the attachement and click the button on the mainform. ParseSQL alters function parameter by value It enters an event handler which will initialize some components reproduce the bug and show a workaround. [QC Description] with SqlClientDataSet1 do TParams.ParseSql is declared as: begin CommandText := 'select * from employee where emp_no=:emp_no'; function ParseSQL(SQL: String; DoCreate: Boolean): String; Params.ParseSQL(CommandText, True); { <-- BUG ALTERS THE COMMANDTEXT VALUE } Params.ParamValues['emp_no'] := 100; But the implementation behaves like the SQL is passed as a parameter by reference. It used a PChar typecast Open; { <-- EXCEPTION APPEARS HERE } on the SQL parameter and works on the characters inside this buffer. Therefor it behaves as a parameter by end; reference: ParseSql(var SQL: string; DoCreate: boolean); ParseSql's implementation should not affect the original SQL string parameter. QC Entry 3111 QC #: Date Reported: Area: 3156 12/18/2002 Debugger\Inspector Description: Steps: [QC Short Description] Note: initially, do this for top level items Create watch from Inspect window [QC Description] It'd be nice to be able to right click an item in the Inspect window and create a watch for it. QC Entry 3156 QC #: Date Reported: Area: 3445 1/29/2003 AddOn\Interbase components Description: Steps: [QC Short Description] TIBStringField a EmptyAsNull [QC Description] Since there is no way to tell if an blank DBEdit is to be stored as NULL or an Empty string an extra property to TIBStringField (EmptyAsNull) should be added so the developer can override the default behavior of storing NULL. The default should be true to keep the long standing behavior intact (this behavior matches most TDataset descendants). QC Entry 3445 QC #: Date Reported: Area: 4790 6/19/2003 Midas\TClientDataSet Description: Steps: Open the example project. First press the button 'Load From File', next press 'Filter Widestring' -> Exception Midas generates an exception when filtering on WideString fields using "like". Note from Tomohiro Takahashi <<<<<<< QC#10828 >>>>>>> QC #: Date Reported: Area: 5067 5/14/1998 ActiveX\Framework Description: Steps: Imported IE4 WebBrowser ActiveX Control does not size correctly when dropped on a D4 form. 1- Import MS Internet Controls 2- Drop the WebBrowser on a D4 form This is not the case for D3 or VB5 3- Notice that the Control does not respect the size on the form that it was dropped for. QC #: Date Reported: Area: 5836 9/4/2003 Database\TParams Description: Steps: [QC Short Description] With ParamCheck = TRUE, set SQL.Text on a query similar to the following (Oracle is the RDBMS in this ParseSQL incorrectly interprets quotes in literal strings example): SELECT SYSDATE FROM DUAL WHERE USER IN ( 'LPs are 12" in diameter', 'My TV is 16:9 ratio' ) The ParseSQL implementation incorrectly identifies a parameter with a name of "9". This could be [QC Description] particularly tricky to identify as a problem, considering that this, only slightly different, query works as expected: When parsing an SQL statement that contains strings literals, the ParseSQL implementation does not properly SELECT SYSDATE FROM DUAL WHERE USER IN ( 'LPs are 12" in diameter', 'CDs are 5" in diameter', 'My interpret quote characters embedded within those literals. TV is 16:9 ratio' ) A double-quote char (") encountered within a string literal (enclosed by a pair of ') is interpreted as the end of the string literal. In most cases this is a silent failure, but if you also have string literals in the SQL that contain colons, then under the right conditions that colon is treated as a parameter identifier and not part of a literal. We found this because we had a query that built a "WHERE COLUMN IN ( <string literal list>)", where the literals included some entries with length information (" denoting inches) and ratios (e.g, 1:500). NB - I have yet to check Delphi7 as I don't currently have access to my D7 installation, to see whether the implementation of ParseSQL has been altered to address this area. QC Entry 5836 QC #: Date Reported: Area: 6417 11/13/2003 ActiveX\Framework\DAX\Container Support (TOleControl) Description: Steps: I have created a simple ActiveX control which is a descendant of the TActiveXControl. (I picked TMemo for the procedure TActiveXControl.Initialize; VCL Class Name in the ActiveX Control wizard). begin inherited Initialize; When I dynamically instantiate this control in a client program and Free it, it seems to have a memory leak. I FConnectionPoints := TConnectionPoints.Create(Self); have a client program which basically creates and frees the control in a loop and you can watch the memory FControlFactory := Factory as TActiveXControlFactory; leak. if FControlFactory.EventTypeInfo <> nil then FConnectionPoints.CreateConnectionPoint(FControlFactory.EventIID, I have attached the ActiveX and the client program source code. ckSingle, EventConnect); FPropertySinks := FConnectionPoints.CreateConnectionPoint(IPropertyNotifySink, An interesting point to note is that if I replace the Delphi 7 version of Axctrls.pas unit with the one in Delphi 6 ckMulti, nil); version, the problem seems to go away! FControl := FControlFactory.WinControlClass.CreateParented(ParkingWindow); if csReflector in FControl.ControlStyle then There are a few differences between these files… but perhaps the most significant is the code as noted below. FWinControl := TReflectorWindow.Create(ParkingWindow, FControl) else FWinControl := FControl; FControlWndProc := FControl.WindowProc; FControl.WindowProc := WndProc; InitializeControl; end; destructor TActiveXControl.Destroy; begin if Assigned(FControlWndProc) then FControl.WindowProc := FControlWndProc; FControl.Free; if FWinControl <> FControl then FWinControl.Free; FConnectionPoints.Free; inherited Destroy; end; Delphi 7.x (Axctrls.pas) Noted: The addition of code that allocates an instance of the class ToleLinkStub and then manually adjusts the