I’m amazed how little things have changed when doing hardcore Delphi debugging: [WayBack] Debugging Session
–jeroen
Posted by jpluimers on 2018/09/27
I’m amazed how little things have changed when doing hardcore Delphi debugging: [WayBack] Debugging Session
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/09/26
Interesting stuff:
In this article we will expand on our TgoHttpClient class by adding some core new features including non-blocking http responses, unifying HTTP 1.1, HTTP/S and HTTP/2 support into a common class…
Source: [WayBack] Scalable HTTP sockets for the cloud, Part 2 – grijjy blog
I’d also be interested in the server part of this, but it seems not there yet.
The client side part 1 is here: [WayBack] Scalable HTTP/S and TCP client sockets for the cloud – grijjy blog
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/09/25
[WayBack] Modern Object Pascal Introduction for Programmers
via:
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Object Pascal, Pascal, Software Development | 4 Comments »
Posted by jpluimers on 2018/09/20
Source: MahdiSafsafi/ImmersiveColors: Easy way to access Windows 10 Immersive colors
via: [WayBack] This is just what I tried to find, but could not figure out what those colors are called :)But anyways some Delphi-superhero has done all work for us… – Tommi Prami – Google+
–jeroen
Posted in Color (software development), Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/09/19
Delphi 10.1 Berlin broke [RSP-19557] TParallel,Join does not create enough threads – Embarcadero Technologies. It was reported 9 months ago, and since it took quite some longer than a year for a new Delphi version to be released, I wonder if it is fixed by now.
Related:
–jeroen
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2018/09/19
I always forget which sides of the connection throw this error, but the client side does as explained in [WayBack] delphi – Troubleshooting EIdConnClosedGracefully Exceptions? – Stack Overflow by [WayBack] Remy Lebeau the main Indy contributor:
EIdConnClosedGracefullymeans the other party … has disconnected its end of the connection. Once that exception has been raised, you cannot send more data to the other party. You must reconnect first.
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2018/09/18
I tend to forget that since TPair – introduced in Delphi 2009 – has had a TPair.Create(Key, Value)record initialiser since Delphi 2010, though only fully documented since Delphi XE4:
With some spart short methods, Cosmin Prund shows a really nice helper at [WayBack] delphi – TDictionary populated during create example code – Stack Overflow allowing a call like this:
with TDictHelper<Integer, string> do Dict := Make([P(1, 'one'), P(2, 'two')]);
His answer has all the details (including describing the pros and conse), so here is only the helper:
uses SysUtils, Generics.Collections; type TDictHelper<Key, Value> = class public class function P(const K:Key; const V:Value): TPair<Key, Value>; class function Make(init: array of TPair<Key, Value>): TDictionary<Key, Value>;overload; class function Make(KeyArray: array of Key; ValueArray: array of Value): TDictionary<Key, Value>;overload; end; { TDictHelper<Key, Value> } class function TDictHelper<Key, Value>.Make(init: array of TPair<Key, Value>): TDictionary<Key, Value>; var P: TPair<Key, Value>; begin Result := TDictionary<Key, Value>.Create; for P in init do Result.AddOrSetValue(P.Key, P.Value); end; class function TDictHelper<Key, Value>.Make(KeyArray: array of Key; ValueArray: array of Value): TDictionary<Key, Value>; var i:Integer; begin if Length(KeyArray) <> Length(ValueArray) then raise Exception.Create('Number of keys does not match number of values.'); Result := TDictionary<Key, Value>.Create; for i:=0 to High(KeyArray) do Result.AddOrSetValue(KeyArray[i], ValueArray[i]); end; class function TDictHelper<Key, Value>.P(const K: Key; const V: Value): TPair<Key, Value>; begin Result := TPair<Key, Value>.Create(K, V); end;
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | 7 Comments »
Posted by jpluimers on 2018/09/18
via [WayBack] Just was sneaking around YouTube and found this video showing how to use DDetours library to hook Win32 api. – Mahdi Safsafi – Google+
–jeroen
Posted in Delphi, Development, Software Development | 3 Comments »
Posted by jpluimers on 2018/09/13
If you need cross platform settings storage: [WayBack] chrisrolliston/CCR.PrefsIniFile: TCustomIniFile decendants for Delphi wrapping the Android, iOS and OS X Preferences APIs
Via: [WayBack] In my application I use System.Win.Registry unit file to read or write to Windows Registry. Now that I have added MAC paltform I need an equivalent method to edit the plist file… – Dimitra Ger – Google+
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/09/12
Since I tend to forget what bits and pieces are needed for TIdHTTPWebBrokerBridge, the below code piece from:
The [WayBack] WebReq.WebRequestHandler Function returns a reference to the global [WayBack] TWebRequestHandler object. This object manages all the Web modules in the application, and creates Web request and response objects when the application receives HTTP request messages: TWebRequestHandler keeps a pool of active Web modules. In response to a request from the application, TWebRequestHandler creates a request object and assigns it to one of the active Web modules.
The code below is the Indy counterpart of hooking up a classic WebSnap WebBroker (you could also hook the Web.WebBroker.Application.WebModuleClass to TMyWebModule instead of the WebRequestHandler.WebModuleClass, as Web.WebBroker.Application.WebModuleClass is a TWebApplication which inherits from TWebRequestHandler).
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »