{"id":489,"date":"2021-01-24T14:42:54","date_gmt":"2021-01-24T20:42:54","guid":{"rendered":"https:\/\/www.codedotshow.com\/blog\/?p=489"},"modified":"2021-01-24T14:42:54","modified_gmt":"2021-01-24T20:42:54","slug":"how-to-write-delphi-apps-to-run-and-look-great-on-windows-macos-and-linux","status":"publish","type":"post","link":"https:\/\/www.codedotshow.com\/blog\/how-to-write-delphi-apps-to-run-and-look-great-on-windows-macos-and-linux\/","title":{"rendered":"How to write Delphi apps to run and look great on Windows, macOS and Linux"},"content":{"rendered":"\n<p>Last Wednesday I presented an Embarcadero webinar &#8220;Cross Platform to Windows, macOS and Linux with Firepower&#8221;.  Participating in the live Q &amp; A after the demo was <a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/royswoll\/\" target=\"_blank\">Roy Woll<\/a> of <a href=\"https:\/\/www.woll2woll.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Woll2Woll Software<\/a>.  I think we had a lot of fun doing it and there were tons of questions about Roy&#8217;s great components as well other subjects such as making your own components be available for multi-device apps when the user swaps to the FMX Linux target, for example.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Here&#8217;s the official Embarcadero replay of the webinar complete with the lively Q &amp; A&#8230;<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Look Gorgeous and Go Cross-Platform to Windows, macOS, and Linux with Delphi 10.4 and FirePower X\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/XBkWQ26X4R0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Roy also mentioned a code you can use at check-out for the Woll2Woll components too.  The coupon code to use is <strong>IBFIREPOWER15 \u2013 <\/strong>which should save you 15% on FirePower X.<\/p>\n\n\n\n<p>The <a rel=\"noreferrer noopener\" href=\"https:\/\/www.woll2woll.com\/\" target=\"_blank\">Woll2Woll<\/a> site has demos and a trial copy of the Firepower X components you see me using in the video so you can try things out for yourself.<\/p>\n\n\n\n<p>The first demo app is based on part of a commercially available Delphi program which I work on as part of my &#8216;day job&#8217;.  It is a &#8220;key personnel display&#8221; or &#8220;In\/Out Board&#8221; which shows the in\/out work status of employees.  We quickly produce a brief version of this module running on Windows and Linux.  We then swap to deploying one of Woll2Woll&#8217;s demo apps and show it running on Windows 32 and 64 bit, Linux and macOS &#8211; all from the same piece code.  Pretty cool stuff.<\/p>\n\n\n\n<p>If I can do all this in 29 minutes I think it does demonstrate why I call Delphi &#8220;my secret superpower&#8221;.  Honestly, it&#8217;s not difficult to target all those platforms &#8211; the hardest part is the initial set up of the <a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/Sydney\/en\/PAServer,_the_Platform_Assistant_Server_Application\" target=\"_blank\" rel=\"noreferrer noopener\">paServer <\/a>and SDK but once that&#8217;s done you don&#8217;t need to do it again and deploying apps cross platform to the various operating systems is literally a matter of selecting the operating system as a target and hitting compile in the RAD Studio \/ Delphi IDE.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/JimMcKeeth\" target=\"_blank\">Jim McKeeth<\/a>, who steered the webinar  has also blogged about it on the Embarcadero Blogs site here: <a rel=\"noreferrer noopener\" href=\"https:\/\/blogs.embarcadero.com\/cross-platform-to-windows-macos-linux-with-firepower-replay\/\" target=\"_blank\">https:\/\/blogs.embarcadero.com\/cross-platform-to-windows-macos-linux-with-firepower-replay\/<\/a><\/p>\n\n\n\n<p>If you want a copy of the slides or have questions feel free to get in touch; we present these webinars so it might help and to generally educate people about what a great development tool Delphi and RAD Studio is and I hope this comes across &#8211; it&#8217;s all about Delphi but, most especially, it&#8217;s all about you.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Here are some of the key slides&#8230;<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-19-1024x576.png\" alt=\"\" class=\"wp-image-493\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-19-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-19-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-19-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-19.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-20-1024x576.png\" alt=\"\" class=\"wp-image-494\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-20-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-20-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-20-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-20.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-21-1024x576.png\" alt=\"\" class=\"wp-image-495\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-21-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-21-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-21-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-21.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-22-1024x576.png\" alt=\"\" class=\"wp-image-496\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-22-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-22-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-22-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-22.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-23-1024x576.png\" alt=\"\" class=\"wp-image-497\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-23-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-23-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-23-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-23.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-24-1024x576.png\" alt=\"\" class=\"wp-image-498\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-24-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-24-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-24-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-24.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-25-1024x576.png\" alt=\"\" class=\"wp-image-499\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-25-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-25-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-25-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-25.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-26-1024x576.png\" alt=\"\" class=\"wp-image-500\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-26-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-26-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-26-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-26.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-27-1024x576.png\" alt=\"\" class=\"wp-image-501\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-27-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-27-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-27-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-27.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-28-1024x576.png\" alt=\"\" class=\"wp-image-502\" srcset=\"https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-28-1024x576.png 1024w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-28-300x169.png 300w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-28-768x432.png 768w, https:\/\/www.codedotshow.com\/blog\/wp-content\/uploads\/2021\/01\/image-28.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Last Wednesday I presented an Embarcadero webinar &#8220;Cross Platform to Windows, macOS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[31,4,28,29,5,30],"class_list":["post-489","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cross-platform","tag-delphi","tag-linux","tag-macos","tag-webinars","tag-windows"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/posts\/489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/comments?post=489"}],"version-history":[{"count":1,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/posts\/489\/revisions"}],"predecessor-version":[{"id":503,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/posts\/489\/revisions\/503"}],"wp:attachment":[{"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/media?parent=489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/categories?post=489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codedotshow.com\/blog\/wp-json\/wp\/v2\/tags?post=489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}