-
Content Count
655 -
Joined
-
Last visited
-
Days Won
12
Everything posted by Bill Meyer
-
How to release a return [TJSONArray] object from a get method?
Bill Meyer replied to Rafael Mattos's topic in MARS-Curiosity REST Library
The function returns it, so cannot free it. The caller owns the instance, and must free it. -
TJson - Strip TDateTime property where value is 0?
Bill Meyer replied to Lars Fosdal's topic in Network, Cloud and Web
A completely unrealistic negative number which is easily recognized -- would be the sort of flag I would use. Although, in my work, all meaningful dates will be later than 1950, so not really a problem. -
What to do with unsupported components?
Bill Meyer replied to Mike Torrettinni's topic in General Help
In my case, it was worse. All evidence suggested that we had no source because we (probably) had no license. -
What to do with unsupported components?
Bill Meyer replied to Mike Torrettinni's topic in General Help
Not noticeable, but this was years ago, and I don't recall how large the encrypted files were. We were moving from D6 to D2006 at the time. -
What to do with unsupported components?
Bill Meyer replied to Mike Torrettinni's topic in General Help
Been there, went with a DLL. The component was unsupported, the vendor gone, and no source. As it was an encryption tool, and not easily reverse engineered because of compatibility issues, we had no real choice. Comparable components using the "same" algorithm delivered quite different results. -
If toolbar management is ever consolidated, that would certainly come from a substantial redesign of the IDE, and would certainly be a benefit. Similar to the issue of hotkey centralization. It would be rather silly for any plug-in to try to organize such things, as the various tool vendors would keep doing their own thing, and the task would be endless.
-
Large is not only lines of code. It also encompasses legacy code with pervasive unit dependency cycles. Then we are talking minutes to build. Yes, minutes.
-
It's been a very long time since I trusted much in the "compile" option. I don't recall (later than Delphi 1) that it ever felt very reliable.
-
Breaking changes always come at a cost, and there will always be complaints. But few of us are prescient, and there comes a time -- as when DevExpress replaced the dxGrid with the cxGrid -- when the need to incur the breakage overpowers the costs. When an architecture proves too limiting, or too brittle, then carrying it forward is no kindness. But as Stefan wrote: "...it then is an important responsibility to document them and if necessary provide some tooling to migrate your code..."
-
I note one big difference: RiverSoftAVG clearly states their engine is static, while SVG Magic claims dynamic (animation) support.
-
GExperts Grep can use the MAP file
Bill Meyer replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
Collecting from the uses clauses will yield the list of all units referenced in the project modules, but parsing the map file is the simplest way I know to discover which units participate in the finished executable. -
Having worked in Delphi since D1, and twice having had to deal with the issue of components without source, I would say that the value without source is essentially zero, as the risk factor is not worth any benefits in the short term. So I would suggest that the question as you ask it is simply wrong.
-
But does it work with those pink lenses?
-
The IDE can be set up in the new docked style, much like Delphi. Just a matter of installing the packages for it.
-
Hands-On Design Patterns with Delphi
Bill Meyer replied to Primož Gabrijelčič's topic in Tips / Blogs / Tutorials / Videos
Got my ebook edition yesterday. Reading eagerly, and really appreciate the clarity of presentation! -
GExperts module to make the Components structure view PERMANENT
Bill Meyer replied to PeterPanettone's topic in GExperts
While I agree with your comments about the structure pane's utility when in code, and agree as well that MMX is far better, I would think it much better to lodge a feature request with Embarcadero. This would be merely another checkbox in Tools, Options, and ought not to be terribly difficult for them to implement. -
What is meant as 'implementation detail' vs 'non-implementation detail'?
Bill Meyer replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
This? https://stackoverflow.com/questions/10768152/delphi-application-leaking-ansistrings -
Proportional scaling of fonts and components when a forms size is changed?
Bill Meyer replied to Ian Branch's topic in General Help
There have been a number of components which attempted to address this issue, but none of them worked very well, in my experience. To be fair, the problem is not in the component design, but in the reality that integer points makes font scaling impractical. If we had font sizes -- and scaling -- in floating point values, then scaling would be straightforward. With integer font sizes, we have proportionally large incremental change at the small sizes, and proportionally small incremental changes at large font sizes.- 5 replies
-
- delphi
- proportional
-
(and 1 more)
Tagged with:
-
I really hate this type of paranoia constructions. What do you think about?
Bill Meyer replied to Juan C.Cilleruelo's topic in Algorithms, Data Structures and Class Design
Then you would need a very large truck! -
How to check if parent menu item has "checked" child item?
Bill Meyer replied to Shrinavat's topic in VCL
The compiler encourages that mix, as it warns of the Result not having been initialized otherwise. -
I had MMX 12.3 installed in XE7, and later installed 13.0.2. Because of the errors on reports issue I already reported, I am wondering whether there is a way to make the 12.3 installation active again, or is that only possible through a new installation? I've recently moved, and my 12.3 installable is on a machine which is still not set up. Thanks.
-
Perfect, thanks!
-
I discovered an error this morning in MMX in D2007. The project is large, with many unit dependency issues. When I open the tool, and then on the menu, select either the Uses Report or the Cycles Report, I get an error, with these details: (000159A9){mmx_bds5.dll} [0BE769A9] [2013C130]{vcl100.bpl } Controls.TControl.DoConstrainedResize (Line 5002, "Controls.pas" + 18) + $14 [201406A7]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2013CBF7]{vcl100.bpl } Controls.TControl.CheckNewSize (Line 5291, "Controls.pas" + 4) + $8 [042B5275]{DelphiSpeedUp105.dll} SystemOptimize.DMTSearch (Line 198, "SystemOptimize.pas" + 4) + $7 [042B52B6]{DelphiSpeedUp105.dll} SystemOptimize.GetDynaMethod (Line 236, "SystemOptimize.pas" + 20) + $0 (0011748B){mmx_bds5.dll} [0BF7848B] (001174E1){mmx_bds5.dll} [0BF784E1] [2013CA2C]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8 [200FCD8B]{vcl100.bpl } StdCtrls.TRadioButton.SetChecked (Line 4048, "StdCtrls.pas" + 11) + $13 (00117000){mmx_bds5.dll} [0BF78000] [20158AC9]{vcl100.bpl } Forms.TCustomForm.DoCreate (Line 2947, "Forms.pas" + 3) + $C [201586A8]{vcl100.bpl } Forms.TCustomForm.Create (Line 2856, "Forms.pas" + 13) + $11 [201586C4]{vcl100.bpl } Forms.TCustomForm.Create (Line 2859, "Forms.pas" + 16) + $9 (00210DE1){mmx_bds5.dll} [0C071DE1] [200EF966]{vcl100.bpl } CommCtrl.ListView_GetNextItem (Line 10154, "win\CommCtrl.pas" + 0) + $E [20199985]{vcl100.bpl } ComCtrls.TCustomListView.GetNextItem (Line 15837, "ComCtrls.pas" + 18) + $B (0011786B){mmx_bds5.dll} [0BF7886B] [201D1BCE]{vcl100.bpl } AppEvnts.TMultiCaster.DoActionExecute (Line 356, "appevnts.pas" + 5) + $E (001D4C0A){mmx_bds5.dll} [0C035C0A] (001D4D42){mmx_bds5.dll} [0C035D42] [2004018B]{rtl100.bpl } Classes.TBasicAction.Execute (Line 11081, "common\Classes.pas" + 3) + $7 [20151359]{vcl100.bpl } ActnList.TContainedAction.Execute (Line 388, "ActnList.pas" + 1) + $2C [201520BC]{vcl100.bpl } ActnList.TCustomAction.Execute (Line 1000, "ActnList.pas" + 7) + $8 [20040057]{rtl100.bpl } Classes.TBasicActionLink.Execute (Line 11010, "common\Classes.pas" + 2) + $7 (0003C041){mmx_bds5.dll} [0BE9D041] (0003BF43){mmx_bds5.dll} [0BE9CF43] [20040E4C]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 😎 + $0 [201625F0]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8105, "Forms.pas" + 23) + $1 [2016262A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [2016291F]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 (00003312){IDEFixPack.dll} [07D64312] [0042297A]{bds.exe } bds.bds (Line 195, "" + 7) + $7 On further testing, I get the same sort of error in XE7 with a project which is much cleaner. This report: (0001A0C1){mmx_bds15.dll} [1452B0C1] [505A0667]{vcl210.bpl } Vcl.Graphics.TCanvas.RequiredState (Line 4199, "Vcl.Graphics.pas" + 12) + $7 [505E25BE]{vcl210.bpl } Vcl.StdCtrls.TCustomLabel.DoDrawThemeTextEx (Line 2200, "Vcl.StdCtrls.pas" + 9) + $3D [505C27C5]{vcl210.bpl } Vcl.Controls.TControl.DoConstrainedResize (Line 6985, "Vcl.Controls.pas" + 18) + $16 [26815C17]{WO_Common_DXE7.bpl} Dchook.TCustomActiveNotifier.HookProc + $66F [26815D70]{WO_Common_DXE7.bpl} Dchook.TCustomActiveNotifier.HookProc + $7C8 [268160DE]{WO_Common_DXE7.bpl} Dchook.dcRemoveFreeNotification + $212 [2C435170]{WO_LMD_RXE7.bpl} Lmdsctmemmgr.InternalObjectWrapped + $CC [50059C58]{rtl210.bpl } System.@FreeMem (Line 4439, "System.pas" + 20) + $0 [5006132C]{rtl210.bpl } System.@UStrClr (Line 24117, "System.pas" + 14) + $0 [50063678]{rtl210.bpl } System.@FinalizeArray (Line 31376, "System.pas" + 80) + $0 [26815C17]{WO_Common_DXE7.bpl} Dchook.TCustomActiveNotifier.HookProc + $66F [505C76E2]{vcl210.bpl } Vcl.Controls.TWinControl.WndProc (Line 10038, "Vcl.Controls.pas" + 153) + $6 [2C435170]{WO_LMD_RXE7.bpl} Lmdsctmemmgr.InternalObjectWrapped + $CC [50059C58]{rtl210.bpl } System.@FreeMem (Line 4439, "System.pas" + 20) + $0 [50064A77]{rtl210.bpl } System.@DynArrayClear (Line 34176, "System.pas" + 49) + $0 [50064740]{rtl210.bpl } System.DynArraySetLength (Line 33858, "System.pas" + 9) + $6 [505E7C20]{vcl210.bpl } Vcl.StdCtrls.TButtonControl.WndProc (Line 5163, "Vcl.StdCtrls.pas" + 13) + $4 [505C2850]{vcl210.bpl } Vcl.Controls.TControl.Perform (Line 7010, "Vcl.Controls.pas" + 10) + $8 (0014B39F){mmx_bds15.dll} [1465C39F] (0014B3F5){mmx_bds15.dll} [1465C3F5] [505C3183]{vcl210.bpl } Vcl.Controls.TControl.Click (Line 7348, "Vcl.Controls.pas" + 9) + $8 [505E98AB]{vcl210.bpl } Vcl.StdCtrls.TRadioButton.SetChecked (Line 6205, "Vcl.StdCtrls.pas" + 11) + $13 (0014AEF0){mmx_bds15.dll} [1465BEF0] [5070BB89]{vcl210.bpl } Vcl.Forms.TCustomForm.DoCreate (Line 3746, "Vcl.Forms.pas" + 3) + $C [5070B6E1]{vcl210.bpl } Vcl.Forms.TCustomForm.Create (Line 3609, "Vcl.Forms.pas" + 25) + $5 (0014B78F){mmx_bds15.dll} [1465C78F] [50776B56]{vcl210.bpl } Vcl.AppEvnts.TMultiCaster.DoActionExecute (Line 390, "Vcl.AppEvnts.pas" + 5) + $A (00234066){mmx_bds15.dll} [14745066] (00234ED2){mmx_bds15.dll} [14745ED2] [5016D517]{rtl210.bpl } System.Classes.TBasicAction.Execute (Line 16099, "System.Classes.pas" + 3) + $3 [505AC25A]{vcl210.bpl } Vcl.ActnList.TCustomAction.Execute (Line 259, "Vcl.ActnList.pas" + 19) + $35 [0B6A7E26]{IDEFixPack.dll} RefactoringActionUpdateFix.CustomActionExecute + $22 [5016D39B]{rtl210.bpl } System.Classes.TBasicActionLink.Execute (Line 16010, "System.Classes.pas" + 2) + $3 (00047E2C){mmx_bds15.dll} [14558E2C] (00047D1F){mmx_bds15.dll} [14558D1F] [5016E20C]{rtl210.bpl } System.Classes.StdWndProc (Line 16598, "System.Classes.pas" + 6) + $1 [5071634F]{vcl210.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10349, "Vcl.Forms.pas" + 23) + $1 [50716392]{vcl210.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10379, "Vcl.Forms.pas" + 1) + $4 [507166C5]{vcl210.bpl } Vcl.Forms.TApplication.Run (Line 10517, "Vcl.Forms.pas" + 26) + $3 I do appreciate the "lazy" analysis in the most recent version, as it used to take 20+ minutes to produce the analysis before. I expect much the same, if I ask for a report in this version, but for interactive exploration, the lazy analysis is very nice., Thanks, Bill
-
IDE hangs on code completion, find declaration, parameters tooltip.
Bill Meyer replied to vhanla's topic in Delphi IDE and APIs
And after all these years, the chances seem slim. -
IDE hangs on code completion, find declaration, parameters tooltip.
Bill Meyer replied to vhanla's topic in Delphi IDE and APIs
Not with such massive unit dependency cycle issues, which are known to cripple the IDE.