TMS certified consulting partner: C-QUEL

As announced in May 2019, we’ve started our network of TMS certified consulting partners to make development easier for you. These are partner companies we know, have a long term relationship with and that we know have deep and expert level knowledge in Delphi and our TMS software component products.

We want to introduce our partners to you, who they are and what they can possibly do for you! Our first partner is C-QUEL

Company history:

It all started in 1984 where Filip learned to code in Turbo Pascal, and with the birth of C-Quel 30 years later in 2014.

C-Quel is located in the northern region of Belgium, near the Dutch and German border. A small team of high skilled Delphi (and Pascal) addicts convert every idea into a great digital tool.
Uniqueness of C-Quel is that we understand the “art” of listening. We don’t live by the clock, we don’t have business hours but live by the credo “Solution Driven Software”.

Technologies used:

  • Tools: Delphi – Free Pascal – Angular – FireMonkey – Swift
  • Platforms: Windows – Linux – macOS (and of course all mobile platforms)
  • Databases: Firebird – PostgreSQL – MS SQL Server – Pervasive DBMS – SQLite
  • Components: TMS VCL Components – TMS FNC Components – TMS WEB Core – TMS Aurelius
  • Lots of custom development: e.g. Belgoprocess (nuclear waste management) – General Lease (biggest Belgian lease company)

TMS Partnership:

Partnering with TMS was rather obvious because C-Quel and TMS Software are complementary. TMS builds the tools, C-Quel builds the solution. Not only Delphi development is important, but also the Delphi developer. That’s why Bruno & Filip started Be-Delphi… and as we all know: Be-Delphi is the place to be for all of your Delphi development – questions – tips & tricks – examples – tools – etc.

Did you know…

…that 66% of the Belgian Embarcadero MVP’s consists of TMS and C-Quel team members?

Finally:

If you have a Delphi problem… if no one else can help… you can find us… maybe you can hire… C-Quel

We plan for extending our network of consulting partners in the coming months and years. If your organisation is interested in becoming such partner, feel free to reach out & discuss.

Visit the partners landing page for more information and details!

Read More

Read More

RAD StudioにおけるiOS 13ならびにAndroid 64-bitへの対応

モバイルを取り巻く環境は、日々変化しています。9月19日にリリースされたiOS 13では、システム全体に対してダークテーマの導入が行われました。現在、DelphiやC++Builderを含む多くのソフトウェアアプリケーションでは、ライトテーマとダークテーマの切り替えオプションを用意しています。ダークテーマは、夜間や暗い場所での作業を好むユーザーに対して、よりよいエクスペリエンスを提供するものです。(read more)
Read More

RAD Studio deployment issues due to anti-virus

Deployment Issues Just a quick heads up for everybody else that have deployment issues similar to the ones below. The underlying reason might be due to anti-virus that is interfering with the deployment process. The connection to the PAServer is successfull, but after copying a few files (visible in the deployment window), RAD Studio gives a connection error and stops deploying. Sometimes, the deployment is succesfull, but shows a "Unable to start GDB kernel" error. Running without debugging has a higher rate of success, but nevertheless, the process of deployment and starting the application is severely disturbed. In either case, running with or without debugging, I have been able to deploy and run 2 out of 30 tries. Below is a snippet of errors thrown while deploying, even though the connection is successfull 100% of the time. macOS [PAClient Error] Error: E0003 Connection to 'MacLarge' on port 64211 failed [PAClient Error] Error: E0003 Please make sure that 'Platform Assistant Server' is running on the host machine and is configured to use port 64211 iOS [DCC Error] E2597 dsymlink: Error: failed to set locale to ??2I? [DCC Fatal Error] F2588 Linker error code: 1 ($00000001) Solution The solution for this issue is simple. Uninstall or disable the anti-virus, or install an anti-virus that does not interfere with this process. On our machine, there was a McAfee license pre-installed on a HP machine that was the culprit of the deployment issues. Leave a comment if you have/had the same issues and which solution you applied to fix the issue.
Read More

Delphi Ensuring Left/alLeft or Top/alTop controls are positioned in the right order…

The post [WayBack] Why is my buttons not created in logical order? If I run this, my buttons area created ACB rather than ABC as I expected… – Johan Swart – Google+ reminded me the trouble of Delphi VCL and FMX have with alignment. Basically you have to position your control away from your intended alignment position in order for it to work. So this fails: procedure TForm1.FormCreate(Sender: TObject); var myToolBar: TToolBar; myCornerButton: TCornerButton; i: Integer; begin myToolBar := TToolbar.Create(Self); myToolBar.Parent := Self; for i := 0 to 2 do begin myCornerButton := TCornerButton.Create(tbarGrid); myCornerButton.Parent := myToolBar; myCornerButton.Align := TAlignLayout.Left; myCornerButton.Text := Chr(65 + I); end; end; Basically you have to set myCornerButton.Left to 1 before setting the Align property. Similar for the Top property and TAlignLayout.Top value. The same holds for VCL Align values alLeft with setting the Left property and alTop with setting the Top property before setting Align. See these for the actual properties and types: FMX: FMX.Types.TAlignLayout FMX.Controls.TControl.Align FMX.Controls.TControl.Left FMX.Controls.TControl.Top VCL: Vcl.Controls.TAlign Vcl.Controls.TControl.Align Vcl.Controls.TControl.Left Vcl.Controls.TControl.Top See also this question: [WayBack] Delphi: How to programmatically adjust visual ordering of components with align = alTop –jeroen
Read More

Delphi built-in data types and their memory sizes

Though 64-bit support was released back in 2011 with Delphi XE2, sometimes I forget which data type are native size and which keep their size no matter the compiler bitness (wiktionary/wikipedia). This post was motivated by via [WayBack] Having started with Delphi before the Cardinal type was available (Or has it always? I can’t remember.) I routinely declare 32 bit unsigned variables as… – Thomas Mueller (dummzeuch) – Google+ The most simple distinction is between Win32 and Win64, but there are more non-32 bit platforms, so these do not suffice any more: [WayBack] 64-bit Windows Data Types Compared to 32-bit Windows Data Types – RAD Studio 10.2 Tokyo [WayBack] 64-bit Windows Data Types Compared to 32-bit Windows Data Types – RAD Studio XE3 (yes, that did not get documented in XE2) The easiest for me are the below tables that only got introduced with Delphi 10.2 Tokyo: [WayBack] Delphi Data Types for API Integration – RAD Studio. I have bolded the ones that change size. Integer Data Types Type Description Pointer Byte 8-bit unsigned integer PByte ShortInt 8-bit signed integer PShortInt Word 16-bit unsigned integer PWord SmallInt 16-bit signed integer PSmallInt Cardinal 32-bit unsigned integer PCardinal LongWord 32-bit unsigned integer (32-bit Windows, OSX32, 32-bit iOS, and Android platforms) 64-bit unsigned integer (64-bit iOS and 64-bit Linux platforms) PLongWord FixedUInt 32-bit unsigned integer PFixedUInt Integer 32-bit signed integer PInteger LongInt 32-bit signed integer (32-bit Windows, OSX32, 32-bit iOS, and Android platforms) 64-bit signed integer (64-bit iOS and 64-bit Linux platforms) PLongint FixedInt 32-bit signed integer PFixedInt UInt64 64-bit unsigned integer PUInt64 Int64 64-bit signed integer PInt64 NativeUInt 64-bit or 32-bit platform-dependent unsigned integer PNativeUInt NativeInt 64-bit or 32-bit platform-dependent signed integer PNativeInt Floating-point Data Types Type Description Pointer Record Single Single precision floating-point value (4 bytes) PSingle TSingleRec Double Double precision floating-point value (8 bytes) PDouble TDoubleRec Extended Extended precision floating-point value (10 bytes on Win32, but 8 bytes on Win64) See page about multi-device applications. PExtended TExtended80Rec Real Alias of Double N/A N/A Earlier on, the Delphi XE2 documentation added a section describing the platform bitness effects in [WayBack] Simple Types (Delphi) – RAD Studio XE2 Delphi XE8 documentation added more information for 64-bit iOS in [WayBack] Simple Types (Delphi) – RAD Studio XE8 Delphi 10.2 Tokyo documentation added more information on other 64-bit POSIX platform in [WayBack] Simple Types (Delphi) – RAD Studio 10.2 Tokyo Platform-dependent integer types Type Platform Range Format Alias NativeInt 32-bit platforms -2147483648..2147483647 (-231..2^31-1) Signed 32-bit Integer 64-bit platforms -9223372036854775808..9223372036854775807 (-263..263-1) Signed 64-bit Int64 NativeUInt 32-bit platforms 0..4294967295 (0..232-1) Unsigned 32-bit Cardinal 64-bit platforms 0..18446744073709551615 (0..264-1) Unsigned 64-bit UInt64 LongInt 32-bit platforms and 64-bit Windows platforms -2147483648..2147483647 (-231..231-1) Signed 32-bit Integer 64-bit POSIX platforms include iOS and Linux -9223372036854775808..9223372036854775807 (-263..263-1) Signed 64-bit Int64 LongWord 32-bit platforms and 64-bit Windows platforms 0..4294967295 (0..232-1) Unsigned 32-bit Cardinal 64-bit POSIX platforms include iOS and Linux 0..18446744073709551615 (0..264-1) Unsigned 64-bit UInt64 Note: 32-bit platforms include 32-bit Windows, 32-bit macOS, 32-bit iOS, iOS Simulator and Android. Platform-Independent Integer Types Platform-independent integer types always have the same size, regardless of what platform you use. Platform-independent integer types include ShortInt, SmallInt, LongInt, Integer, Int64, Byte, Word, LongWord, Cardinal, and UInt64. Platform-independent integer types Type Range Format Alias ShortInt -128..127 Signed 8-bit Int8 SmallInt -32768..32767 Signed 16-bit Int16 FixedInt -2147483648..2147483647 Signed 32-bit Int32 Integer -2147483648..2147483647 Signed 32-bit Int32 Int64 -9223372036854775808..9223372036854775807 (-263..263-1) Signed 64-bit Byte 0..255 Unsigned 8-bit UInt8 Word 0..65535 Unsigned 16-bit UInt16 FixedUInt 0..4294967295 Unsigned 32-bit UInt32 Cardinal 0..4294967295 Unsigned 32-bit UInt32 UInt64 0..18446744073709551615 (0..264-1) Unsigned 64-bit Thomas Mueller blogged about the Alias at [WayBack] Delphi LongWord is not always a 32 bit unsigned integer – twm’s blog (via[WayBack] Did you known that LongWord in Delphi is not (any longer) always a 32 bit unsigned integer? – Thomas Mueller (dummzeuch) – Google+) and I think he understood it backwards from what Embarcadero means: NativeInt on 32-bit platforms is an alias of Integer (so it is Signed 32-bit) NativeInt on 64-bit platforms is an alias of Int64 (so it is Signed 64-bit) Some more fun links For a lazy afternoon: History [WayBack] Delphi 2007: Simple Types [WayBack] Delphi 2009: Simple Types [WayBack] compiler construction – Why is creating a 64bit Delphi so hard? – Stack Overflow [WayBack] Getting Ready for Delphi 64 [WayBack] The Oracle at Delphi: 64bit [WayBack] The Oracle at Delphi: More x64 assembler fun-facts–new assembler directives [WayBack] The Oracle at Delphi: x64 assembler fun-facts [WayBack] The Oracle at Delphi: Delphi check-in log entries of the day: [WayBack] The Oracle at Delphi: Divided and Confused [WayBack] The Oracle at Delphi: It’s my stack frame, I don’t care about your stack frame! [WayBack] The Oracle at Delphi: Delphi-Treff interview–In English –jeroen
Read More

August 2019 RAD Studio Roadmap Udpate

On the Embarcadero developer community site, there is a new blog post by Sarina DuPont covering: August 2019 Delphi Android Beta Plans & August Roadmap Update The blog post has an update to the May 2019 roadmap and it also highlights the plans around a Delphi Android 64-bit Beta that's going to be made available soon to update subscription customers. Read the article linked above for all of the details.
Read More

Installation and GetIt Workarounds for Delphi 10.3.2 (Updated)

Some of the Embarcadero servers (in one of the web farms) are experiencing some severe and prolonged outage. This is affecting (among other things) Delphi 10.3.2 installation. As a temporary workaround, the company has: provided the direct link to the ISO installer download, https://community.idera.com/developer-tools/b/blog/posts/10-3-2-installation-workarounds set up a new GetIt server to allow customers on 10.3.2 (and partially also on older 10.3.x versions) to install the most relevant add-ons and packages, like FMX Linux and Boost: https://community.idera.com/developer-tools/b/blog/posts/temporary-10-3-2-getit-server-for-installing-10-3-2-add-on-packages We should soon have the regular GetIt-based offline installer for 10.3.2 working again with the temporary server.  August 1st Update We now have the ability to install 10.3.2 via GetIt using this temporary system, there is no need to change the GetIt URL manually, as it is embedded in an updated installer. And CodeCentral MyRegistered products is online again with the updated downloads.  Read more on the latest status at https://community.idera.com/developer-tools/b/blog/posts/new-10-3-2-getit-installer. Thanks for your patience and sorry again for the inconvenience. 
Read More

Common unit aliases for backwards compatibility to older Delphi versions

Backwards compatibility to older Delphi versions is an issue mostly encountered by component and IDE plugin developers. Borland, Codegear and Embarcadero actually did quite a good job in that area. Many ancient projects (at least back to Delphi 6) can simply be loaded into a later IDE and they just compile. The IDE usually makes […]Read More

Read More