Memory leak in the Win64 Delphi RTL during thread shutdown?
A very simple work around is to re-use the thread and not create and destroy them. Threads are pretty expensive, you’ll probably get a perf boost too… Kudos on the debugging though…
A very simple work around is to re-use the thread and not create and destroy them. Threads are pretty expensive, you’ll probably get a perf boost too… Kudos on the debugging though…
I Can reproduce with D7/Win7. I don’t use wsMaximized at all (similar random problems as you describe). Workaround: use OnActivate -> ShowWindow(Handle, SW_MAXIMIZE) e.g.: procedure TForm1.FormActivate(Sender: TObject); begin // Maximize only once when the Form is first activated if not FMaxsimized then begin FMaxsimized := True; ShowWindow(Handle, SW_MAXIMIZE); end; end; This method will not work … Read more
TWebBrowser is IE. It is not a plugable construction for browsers. You can have other browsers integrated in your application. See http://www.adamlock.com/mozilla/ http://delphi.mozdev.org/articles/taming_the_lizard_with_delphi.html http://ftp.newbielabs.com/Delphi%20Gecko%20SDK/ Time has moved on This answer is from ’08 and since then time has moved on. The links don’t work anymore and there are probably better alternatives now.
My list: The Dev.Express Quantum grid: enhanced grid component: once you get the hang of this component, you can use it in all sorts of scenarios (at least I have) Dev.Express Quantum Tree list: if you know the grid component, you can use this component as well (treelist and grid combined) Dev.Express Express bars: menu … Read more
You need to understand the reason, to avoid “cargo-cult programming.” Marking strings as const makes a performance difference because you no longer need to use an interlocked increment and decrement of the refcount on the string, an operation that actually becomes more expensive, not less, as time goes by because more cores means more work … Read more
As of Delphi 4, Delphi supports dynamic arrays. You can modify their sizes at run time and they will retain the data you stored in other elements at the old size. They can hold elements of any homogeneous type, including records and other arrays. You can declare a dynamic array the same as you declare … Read more
You can navigate to the front page of the Embarcadero documentation and search from there. The link is: http://docwiki.embarcadero.com/RADStudio/en/Main_Page Note that no version is included in the link. If you navigate to that link then the site will re-direct you to a version specific URL for the latest release. In this case, as I write … Read more
Add in your .dpr ( for example above the begin of the main code) the line: {$R *.res} Then build your project. It will force a resource file (.res) to be created. This also allows you to set the version info in the project options. Update: I noticed that this ‘bug’ is fixed in Delphi … Read more
The only real problem is conversion to Unicode. You should learn how Unicode support is implemented in Delphi – start from Marco Cantu White Paper: Delphi and Unicode It is impossible to estimate the amount of work required to upgrade old applications to Unicode without knowing the actual code. If you were using string types … Read more
I’m using them: To insert enumerators into VCL classes that don’t implement them. To enhance VCL classes. To add methods to the TStrings class so I can use the same methods in my derived lists and in TStringList. TGpStringListHelper = class helper for TStringList public function Last: string; function Contains(const s: string): boolean; function FetchObject(const … Read more