Archive for the ‘Delphi’ Category
Posted by jpluimers on 2016/08/24
I’ve posted an update to List-Delphi-Installed-Packages.ps1 that:
- added HKCU/HKLM registry key values for each BDS version
- doesn’t truncate fields any more when your console has limited width
- is now in UTF-8 format so the BitBucket web-interface can show it
For the first two: Phry for helping me to force Format-Table to show more than 10 columns and pointing me how find out how to do this with Out-String so it doesn’t truncate fields; blog post about it will follow.
Now – as I can display more than 10 columns- I can start working in integrating all the other info about various BDS versions.
Source is at https://bitbucket.org/jeroenp/besharp.net/src/tip/Native/Delphi/Scripts/List-Delphi-Installed-Packages.ps1?fileviewer=file-view-default
A text dump of the current output is below with the Delphi versions including CompilerVersion, RTLVersion, VERXXX Define, DllSuffix and more.
–jeroen
via: If you need to know underlying information on Delphi versions « The Wiert Corner – irregular stream of stuff
Read the rest of this entry »
Posted in Delphi, Development, PowerShell, Scripting, Software Development | Leave a Comment »
Posted by jpluimers on 2016/08/18
Since I’m not that fast at updating List-Delphi-Installed-Packages.ps1 [WayBack] (which I should rename into something containing the word Version in it), here are some useful links to stay up-to-date:
–jeroen
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2016/08/09
Maintaining a suite of project that use CamelCase on the one hand and underscore_separators on the other (partially mapped by code generators) an on-line conversion comes in handy: CCConverter abedo.pl.
–jeroen
Posted in .NET, Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2016/07/28
I’ve quotes two of the G+ comments as they perfectly reflect my point of view: the non-modal search and IDE Insight – introduced somewhere after XE3 – are a dork to use.
I’m doing more Delphi work lately and these being non-modal seriously hinder my work (and it gets progressively worse on a 3K or 4K monitor).
In my book: why implement a feature to emulate the competition when you do it so badly?
So: are there any experts around that bring back the old search and IDE Insight behaviour back?
Asbjørn Heid, Oct 5, 2015:
+Marco Cantù I’m pretty sure I’ve mentioned it before, but hey:
- The new edit field cannot be placed in a position which does not require significant eye-focus change to read. This means it is significantly more cumbersome to use, as focus must be transferred to some “out of sight” area. In addition one does not get the same instant feedback that the IDE did register your F6 keypress. The old one was “in your face” instantly when you pressed F6, so no need to take your eyes off the form you’re designing, and it left no doubt about F6 being registered or not.
- The dropdown list with suggestions that pops up when you type is much more difficult to read than the list in the old one, both due to positioning (thanks to the above) and due to length until it’s heavily constrained by input.
- From what I recall, the new edit field does not behave the same when invoked repeatedly, requiring more keystrokes to get the same effect compared to the old. I haven’t used XE3 in ages though so I don’t recall the specifics anymore, just that the new feels more clunky to use.
That’s just off the top of my head. Yes I still use it, but not nearly as much as I did, and when I do it’s one to two orders of magnitude slower to use compared to the old one. Not because it searches slower, but because of the issues described above.
Similarly for the non-modal search, although somehow I’m more used to the modern version now. When compared with VS though the Delphi search is very lacking. The great thing about the VS search is that it gives live feedback on which text in the edit window match the text in the search window. If Delphi would do that it would make an immense difference. It’s definitely worth spending some time in VS using their search facility. And indeed in other IDEs / editors.
There was a lot of negative feedback on both of these changes when they were released. Surely Embarcadero noticed that.
–jeroen
via: F6 or [Ctrl] + . does not open IDE Insight on DX. What am I missing?…
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Power User, Software Development | 2 Comments »
Posted by jpluimers on 2016/07/28
In hindsight, what they should have done when ZEROBASEDSTRINGS were introduced (yes, Delphi XE4):
Matlab and zerobasedstrings
–jeroen
via: At the MathWorks headquarters Source: http://redd.it/3bl5m1 #matlab….
Posted in Delphi, Delphi 10 Seattle, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »
Posted by jpluimers on 2016/07/26
A while ago, StackOverflow user Kobus Smit did some brilliant editorial work that – due to current state of StackOverflow – sort of fired backwards: his question got marked as duplicate before he could post his excellent answer. After that answer was posted, the oh-so pride SO-demi gods never took any energy to revisit to see which answers were best.
His simple question:
How can my Delphi app easily write to the Windows Event Log?What is the difference between TEventLogger and ReportEvent? How do I use the ReportEvent function?
Which somehow should be encompassed by this Delphi 5 question (apparently that 15+ year old Delphi version is still considered current by the SO demi-gods).
The answer summarises and extends existing answers spread out over StackOverflow and adds an EventLog git repository wrapping the ReportEvent and RegisterEventSource (which somehow is always a pain: Delphi services for instance often forget that).
Lesson learned when doing editorial work:
- prepare both the answer and question in markdown off-line
- ensure you mention in the question that the answer is meant as collection of “best of” answers found elsewhere
- post the question and answer in rapid succession
- cross your fingers for the StackOverflow demi-gods being in a good mood
–jeroen
via: Writing to the Windows Event Log using Delphi – Stack Overflow
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »
Posted by jpluimers on 2016/07/21
On the research list: TIdSchedulerOfThreadPool (now that TIdThreadMgrPool is gone).
Need to manage the lifetime of these as I don’t want the threads to live forever, but also don’t want to make the instantiation cost too high.
Most likely I want to wait for them to finish as well upon process exit, so this might be worth a look as well:
–jeroen
Source: delphi – Building Multi threaded TCP/IP Server – Stack Overflow
Posted in Delphi, Development, Software Development | 4 Comments »
Posted by jpluimers on 2016/07/19
There is a little trick to disable “Known IDE Packages”: you can stop Delphi from loading one by either making “Value data” of the registry blank, or prepending it with an underscore:
packages that might have been disabled, by checking any string entries where the data has been pre-pended with an underscore OR is blank
[WayBack] Access violation at address 00000000 read of address 00000000, when starting the IDE or opening a project after installing the updates
I’ve pre-pended underscores to some packages in the registry key [HKEY_CURRENT_USER\Software\Borland|Codegear|Embarcadero\BDS|Delphi\#.0\Known IDE Packages] and intend to keep the list below updated over time.
Note that you have to prepend the description with an underscore: it is not sufficient to add these to [HKEY_CURRENT_USER\Software\Borland|Codegear|Embarcadero\BDS\#.0\Disabled Packages].
Empirically, the Disabled Packages seem to work only for packages starting with dcl in their filename.
Read the rest of this entry »
Posted in Castalia, Conference Topics, Conferences, Delphi, Delphi XE8, Development, Event, Keyboards and Keyboard Shortcuts, Power User, Software Development | 5 Comments »
Posted by jpluimers on 2016/07/13
Via Lars Fosdal:
In Tools|Options, Environment Options, Environment Variables – under User Overrides, add a new override
Variable name: DCC_Define
Variable value: billmeyer
This causes a define for billmeyer to exist for anything that you compile in your IDE, across all units, all projects.
Which means you can sprinkle your code with
{$ifdef billmeyer}{$hints on}{$endif}
or
{$ifndef billmeyer}{$hints off}{$endif}
or even isolate out the parts of the code that currently is in development so that it doesn’t get built in the build system.
I believe it was +Uwe Raabe who revealed this gem to me.
–jeroen
via: Is there a mechanism I have not yet found that would allow me to use a DEFINE….
Posted in Delphi, Development, Software Development | Leave a Comment »