For my link archive: [WayBack] WouterVanNifterick/C-To-Delphi: C To Delphi converter
Via: [WayBack] Does anyone know of a C/C++ to Delphi converter? – Michael Riley – Google+
–jeroen
Posted by jpluimers on 2019/06/25
For my link archive: [WayBack] WouterVanNifterick/C-To-Delphi: C To Delphi converter
Via: [WayBack] Does anyone know of a C/C++ to Delphi converter? – Michael Riley – Google+
–jeroen
Posted in C, Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2019/06/25
a method to detect when the menu was closed without a selection (i.e. none of the menuitem OnClick handlers fired). Add the unit below to your project and the form the popup menu is on will receive the custom messages defined in the unit when the menu appears or closes.
The solution by Peter Below in ExPopupList works from D5 on: [Archive.is] missing TPopupMenu features? – Google Groups.
Now you can hook the [WayBack] TControl.OnContextPopup Event for a [WayBack] TPopupMenu activation, and the custom Windows messages CM_MENUCLOSED, CM_ENTERMENULOOP and CM_EXITMENULOOP to monitor the state of the popup menu.
Via:
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2019/06/24
Learned a new thing today: you can change the line styles in PlantUML to these:
This in addition to the colour I already knew about. The order of these does not matter:
@startuml ' Make a dashed line, alternative syntax for ..> (*) -[dashed]-> "Write outline" ' Make line bold and use color name "Write outline" -[bold,#green]-> "Find example" ' Only change the color with hexadecimal RGB code "Find example" -[#ff00ff]-> "Write blog" ' Order of line style and color can be reversed "Write blog" -[#6666ff,dashed]-> "Publish" ' Use dotted line style "Publish" -[dotted]-> (*) @enduml
Source: [WayBack] PlantUML Pleasantness: Change Line Style And Color – Messages from mrhaki
–jeroen
Posted in Color (software development), Development, Diagram, PlantUML, Power User, Software Development, UML | Leave a Comment »
Posted by jpluimers on 2019/06/21
I like PlantUML a lot as it is an easy way to create even simple diagrams using plain text, for instance a simple Sequence Diagram like below.
Sometimes, you want to add comments because the way you build the diagram needs explanation that is not needed in the diagram itself. You can:
[Archive.is] Is it possible to comment out lines of diagram syntax? – PlantUML Q&A:
You can use quote like in the following example
@startuml
' This is a comment on a single line
Bob->Alice : hello
/' You quote by using slash-and-quote
to split your comments on several
lines '/
@enduml
[Archive.is] Sequence Diagram syntax and features
–jeroen
Posted in Development, Diagram, PlantUML, Power User, Software Development, UML | Leave a Comment »
Posted by jpluimers on 2019/06/20
Interesting observation on [WayBack] How do you use the CLI version of GetIt Package Manager. I always get a “no items were found.” response. As usual, the EMBT wiki is total rubbish and do… – Graeme Geldenhuys – Google+.
What you need for GetItCmd, is to run rsvars.bat for your Delphi version first, which is exactly what [WayBack] Run-Dependend-rsvars-From-Path.bat – which I wrote a while ago – does.
I did not even know that there was a CLI equivalent of [WayBack] GetIt – RAD Studio , but it is there, totally undocumented: GetItCmd apart from two filename references on the French and German docwiki:
Apart from that, I could only find these links:
Another odd thing: rsvars.bat is also not documented, and has just one reference in the docwiki: [WayBack] Using CMake with C++ Builder – RAD Studio.
The use of rsvars.bat is simple: it sets the below environment variables (some older versions set less variables, like missing PLATFORM or PlatformSDK) for use with the IDE (bds32.exe), msbuild and GetIt.
BDS BDSINCLUDE BDSCOMMONDIR FrameworkDir FrameworkVersion FrameworkSDKDir PATH LANGDIR PLATFORM PlatformSDK
(some of these are set to empty to they at least exist)
Later on, Marco Cantu reacted
The command line version of GetIt is not stable, so it was never “promoted” to being a feature. It was a tentative feature, we likely removed the English doc, but translations remained — so having that documentation is kind of an error. We ship is as we use it, with a specific command that works and is safe. In other words, use it as your own risk, as it is not an official feature.
So apparently, the only way that GetIt works, is through a specific command in GetItCmd. From an architectural point of view that gives me a “lets get this tick on the feature matrix done no matter what the architectural consequences are” feeling.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2019/06/20
I needed a solution inside a batch file for git similar to [WayBack] How to test if an executable exists in the %PATH% from a windows batch file? – Stack Overflow which became this:
where /q git || echo Cound not find git on the PATH %PATH%. && goto :eof
I could have expanded this to find the install location, but for now this is sufficient.
When it is needed, I should read [WayBack] Programmatically (not manually) finding the path where Git is installed on a Windows system – Stack Overflow
–jeroen
Posted in Batch-Files, Development, DVCS - Distributed Version Control, git, Scripting, Software Development, Source Code Management | Leave a Comment »
Posted by jpluimers on 2019/06/20
Reminder to self to try this out: [WayBack] Working in a team? DprojSplitter might be helpful! | The Art of Delphi Programming.
The most recent version (covering a wider range of Delphi versions) was at [WayBack] DprojSplitter for Delphi XE2 to XE6 available | The Art of Delphi Programming.
DprojSplitter handles the current build configuration and current plattform. In addition these settings are handled, too (found in CommonOptionStrs):
sDebugger_RunParams,
sDebugger_RemoteRunParams,
sDebugger_HostApplication,
sDebugger_RemotePath,
sDebugger_RemoteHost,
sDebugger_EnvVars,
sDebugger_SymTabs,
sDebugger_Launcher,
sDebugger_RemoteLauncher,
sDebugger_IncludeSystemVars,
sDebugger_UseLauncher,
sDebugger_UseRemoteLauncher,
sDebugger_CWD,
sDebugger_RemoteCWD,
sDebugger_RemoteDebug,
sDebugger_DebugSourcePath,
sDebugger_LoadAllSymbols,
sDebugger_LoadUnspecifiedSymbols,
sDebugger_SymbolSourcePath
Heck, you can even configure the ones to split: [WayBack] Configuring DprojSplitter to Your Needs | The Art of Delphi Programming
–jeroen
via:
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2019/06/19
I need to re-read this: [WayBack] Pattern: Service Mesh
Via [WayBack] What is a Service Mesh? What is the purpose of Istio? – The Isoblog. /[Archive.is] What is a Service Mesh? What is the purpose of Istio in Kubernetes? … – Kristian Köhntopp – Google+:
An article by Phil Calçado explains the Container Pattern “Service Mesh” and why one would want that in a really nice way.
Phil uses early networking as an example, and explains how common functionality needed in all applications was abstracted out of the application code and moved into the network stack, forming the TCP flow control layer we have in todays networking.
A similar thing is happening with other functionality that all services that do a form of remote procedure call have to have, and we are moving this into a different layer. He then gives examples of the ongoing evolution of that layer, from Finagle and Proxygen through Synapse and Nerve, Prana, Eureka and Linkerd. Envoy and the resulting Istio project of CNCF are the current result of that development, but the topic is under research, still.
–jeroen
Posted in Cloud Development, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2019/06/18
I thought I had written a blog article on switching DOM vendors before, but in retrospect that was a conference presentation somewhere in 2011: https://github.com/jpluimers/Conferences/tree/master/2011/EKON15-Renaissance-Hotel-D%C3%BCsseldorf/Delphi-XE2-and-XML
I mentioned some of the materials at [WayBack] delphi – Reading distinct values from XML using XPath – Stack Overflow.
It was back in the days I worked for better office, Gwan Tan was still alive and CodePlex was still a thing. Now the code is at [WayBack] bo library – CodePlex Archive: An archive of the CodePlex open source hosting site.
Some recovered bits are at https://gist.github.com/jpluimers/98dcec944538fd6986fd2d51f7a79d8b#file-mainformunit-pas that shows the selection process of a TDOMVendor, how to log its capabilities and how to use it all in the method procedure TMainForm.LogDomVendor(const CurrentDomVendor: TDOMVendor);
Hopefully one day I can resurrect the code one day…
Over the years, the vendor list has not changed much [WayBack] Using the Document Object Model – RAD Studio documents these vendors.
Compared to Delphi 2007 and earlier, OmniXML has gone and ADOM has entered.
On the MSXML side, you can change which version you use too, as explained in Quick tip: using MSXML v6 with TXMLDocument in D7-D2007 – DelphiFeeds.com with the original article at [WayBack] Quick tip: using MSXML v6 with TXMLDocument in D7-D2007 | Delphi Haven.
Basically he overwrites MSXMLDOMDocumentCreate with a method creating the right MSXML DOM document. That has now been deprecated as [WayBack] Xml.Win.msxmldom.MSXMLDOMDocumentCreate – RAD Studio API Documentation now points to [WayBack] Xml.Win.msxmldom.TMSXMLDOMDocumentFactory.CreateDOMDocument – RAD Studio API Documentation.
List of Built-in XML Vendors
The following table shows a comparison of the XML vendors that RAD Studio supports by default:
Implementation Unit Global Variable Description MSXML Xml.Win.msxmldom SMSXMLFastest of the built-in RAD Studio XML vendors. Windows only. Default. For cross-platform support, you must choose a different XML vendor. If you do not specify a different XML vendor, your application does not have XML support on other platforms than Windows, and you see a run-time exception when you run your application in other platforms.
OmniXML Xml.omnixmldomsOmniXmlVendorMuch faster than ADOM, but slightly slower than MSXML. Cross-platform. ADOM Xml.adomxmldomsAdom4XmlVendorSlower than the other built-in RAD Studio XML vendors. Cross-platform.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2019/06/18
Cool stuff: [WayBack] Desktop Duplication API in Delphi – CodeProject.
It is based on:
There is also a GitHub repository: Delphi/DesktopDuplicationAPI at master · tothpaul/Delphi
Via: [WayBack] Little demo for the Desktop Duplication API – Paul TOTH – Google+
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »