When writing some unit tests a while ago I found myself needing to initialise some dynamic arrays with test data. It would be nice if we could do something like this: var A : array of Integer ; begin A := ( 1 , 2 , 3 , 4 ) ; // !! WRONG end ; but we can't. So I decided to write some functions to initialise dynamic arrays to the contents of another array, be it a constant, a literal or another dynamic array. The result was a set of overloaded routines, one for each data type I needed to handle, for example for Integer and string arrays I had: function CloneArray ( const A : array of Integer ) : TIntegerDynArray ; overload ; var Idx : Integer ; begin SetLength ( Result , Length ( A ) ) ; for Idx := Low ( A ) to High ( A ) do Result [ Idx - Low ( A ) ] := A [ Idx ] ; end ; function CloneArray ( const A : array of string ) : TStringDynArray ; overload ; var Idx : Integer ; begin SetLength ( Result , Len...
The new feature currently planned for release in the forthcoming Delphi 13 that I'm most excited about is the inline if statement. According to Marco Cantu's blog post , the new syntax is like this: X := if Left < 100 then 22 else 45; Another use is something like this: ShowMessage(if Odd(X) then 'odd' else 'even'); The values returned from the then and else parts must be of the same or compatible type. Apart from being really chuffed that this feature is being added I'm just as happy that the syntax is Pascal like, and is therefore more readable than the cryptic C style ?: construct. Also pleasing is the fact that Embarcadero have gone with version number 13 instead of being ridiculously superstitious! Since Delphi 13 has yet to be released the usual disclaimer applies that this feature is not guaranteed to be included.
A week or so ago Artem Razin got in touch with me to ask if I'd take a look at his Deleaker program and mention it in my blog. I agreed and this blog is about how I've been using it and what I've discovered. This is by no means a definitive account of how to use the program and I'm far from an expert user. For the final word on this program, see the Deleaker docs . You can get a free trial and pricing info from the Deleaker Website . Deleaker stand-alone window Disclosure This is the first blog I've written about a commercial third party program. For the sake of transparency I want to disclose that I received a free license for this product from Artem, for which I'm grateful. Offer to other developers I'm happy to offer to blog about other useful development software (or Delphi libraries) from other small developers. For more info see my " Promoting Delphi developers & applications? " blog post. So what is it? Deleaker is memory leak detecto...
Comments
Post a Comment
Comments are very welcome, but please be aware that I moderate all comments, so there will be a delay before your comment appears.
Advertising spam and the rare abusive, hateful or racist comments will be blocked and reported.
Finally, should you have a query about, or a bug report for, one of my programs or libraries please use the relevant issue tracker rather than posting a comment to report it.
Thanks