{"id":93,"date":"2015-04-23T16:08:49","date_gmt":"2015-04-23T16:08:49","guid":{"rendered":"http:\/\/www.jvesoft.com\/wp\/?page_id=93"},"modified":"2015-09-01T23:11:41","modified_gmt":"2015-09-01T23:11:41","slug":"helpers-and-utilities","status":"publish","type":"page","link":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/","title":{"rendered":"Helpers and Utilities"},"content":{"rendered":"<p>Whether it is <a href=\"sending-emails\/\">sending an email<\/a>, <a href=\"opening-urls\/\">opening a URL<\/a>, <a href=\"embedded-browser\/\">embedding a web browser<\/a>, <a href=\"layout-controls\/\">optimizing your app layout<\/a>, or <a href=\"persistent-storage\/\">storing settings in your app<\/a> our helper components can streamline your app creation process. Supporting all of this functionality across Android, IOS, Windows, and Mac can be difficult but using our components makes it easy in Delphi Firemonkey.<\/p>\n<p>&nbsp;<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-159 alignright\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jveemail.jpg\" alt=\"jveemail\" width=\"259\" height=\"186\" srcset=\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jveemail.jpg 259w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jveemail-220x158.jpg 220w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jveemail-90x65.jpg 90w\" sizes=\"(max-width: 259px) 100vw, 259px\" \/><a href=\"http:\/\/www.jvesoft.com\/wp\/sending-emails\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-240\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEEmail.png\" alt=\"TJVEEmail\" width=\"32\" height=\"32\" \/>\u00a0Email<\/a><\/strong><\/p>\n<p>If you want to send an email from a mobile device it can be tricky. The TJVEEmail component makes it easy for you to send an email from your Delphi Firemonkey apps. It has standard properties like Subject, Body, and ToRecipients.<\/p>\n<p><strong><br \/>\n<a href=\"http:\/\/www.jvesoft.com\/wp\/embedded-browser\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-241\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEBrowser.png\" alt=\"TJVEBrowser\" width=\"32\" height=\"32\" \/>\u00a0Browser<\/a><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-155 alignright\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jvebrowser.jpg\" alt=\"jvebrowser\" width=\"270\" height=\"196\" srcset=\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jvebrowser.jpg 270w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jvebrowser-220x160.jpg 220w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/jvebrowser-90x65.jpg 90w\" sizes=\"(max-width: 270px) 100vw, 270px\" \/>You may want to show a web page from within your Delphi Firemonkey app and the TJVEBrowser component makes that easy. Simply set the URL and call Open to launch a Web Browser dialog that floats over your application. There is also an OnClosed event provided.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.jvesoft.com\/wp\/opening-urls\/\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-243\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEOpenURL.png\" alt=\"TJVEOpenURL\" width=\"32\" height=\"32\" \/>\u00a0Open A URL<\/strong><\/a><\/p>\n<p>If you want to open a URL in the default web browser of the device instead of in a window within your own app you can use this component to do so.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.jvesoft.com\/wp\/app-store-presentation\/\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-245\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEAppStore.png\" alt=\"TJVEAppStore\" width=\"32\" height=\"32\" \/>\u00a0App Store Presentation<\/strong><\/a><\/p>\n<p>This component allows the user to view an app in the app store (could be used for cross promotions, for example). In case the app is available for several platforms, the component can choose the best app to suggest.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.jvesoft.com\/wp\/in-progress-app-shading-dialogs\/\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-340\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEShade.bmp\" alt=\"TJVEShade\" width=\"32\" height=\"32\" \/> In-Progress App Shading<\/strong><\/a><\/p>\n<p>This component allows the user to present a shade over the app, letting the user know a lengthy process is being performed.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.jvesoft.com\/wp\/persistent-storage\/\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-339\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVEConfiguration.bmp\" alt=\"TJVEConfiguration\" width=\"32\" height=\"32\" \/>\u00a0Persistent Storage<\/strong><\/a><\/p>\n<p>This component provides a simplistic way to store application settings or configuration in a nonvolatile memory (Windows Registry or platform-dependent alternative).<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.jvesoft.com\/wp\/layout-controls\/\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-242\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/TJVELayout.png\" alt=\"TJVELayout\" width=\"32\" height=\"32\" \/>\u00a0Layouts<\/strong><\/a><\/p>\n<p>These layout controls were created specifically to make dynamic size screens easier to develop.\u00a0While FMX comes with a TGridLayout, it is really no match to the VCL TGridPanel.<\/p>\n<p><a href=\"layout-controls\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-153\" src=\"http:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts.jpg\" alt=\"layouts\" width=\"683\" height=\"451\" srcset=\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts.jpg 683w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts-300x198.jpg 300w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts-220x145.jpg 220w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts-355x234.jpg 355w, https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/layouts-90x59.jpg 90w\" sizes=\"(max-width: 683px) 100vw, 683px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Whether it is sending an email, opening a URL, embedding a web browser, optimizing your app layout, or storing settings in your app our helper components can streamline your app creation process. Supporting all of this functionality across Android, IOS, &#8230; <a class=\"styledbutton\" href=\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":6,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Helpers and Utilities - JVEsuite Components<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Helpers and Utilities - JVEsuite Components\" \/>\n<meta property=\"og:description\" content=\"Whether it is sending an email, opening a URL, embedding a web browser, optimizing your app layout, or storing settings in your app our helper components can streamline your app creation process. Supporting all of this functionality across Android, IOS, ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\" \/>\n<meta property=\"og:site_name\" content=\"JVEsuite Components\" \/>\n<meta property=\"article:modified_time\" content=\"2015-09-01T23:11:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"507\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\",\"url\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\",\"name\":\"Helpers and Utilities - JVEsuite Components\",\"isPartOf\":{\"@id\":\"https:\/\/www.jvesoft.com\/wp\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png\",\"datePublished\":\"2015-04-23T16:08:49+00:00\",\"dateModified\":\"2015-09-01T23:11:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage\",\"url\":\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png\",\"contentUrl\":\"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png\",\"width\":507,\"height\":372},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.jvesoft.com\/wp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Helpers and Utilities\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jvesoft.com\/wp\/#website\",\"url\":\"https:\/\/www.jvesoft.com\/wp\/\",\"name\":\"JVEsuite Components\",\"description\":\"For Delphi XE4 \u2013 11.2 Alexandria (FireMonkey), but now defunct project\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jvesoft.com\/wp\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Helpers and Utilities - JVEsuite Components","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/","og_locale":"en_US","og_type":"article","og_title":"Helpers and Utilities - JVEsuite Components","og_description":"Whether it is sending an email, opening a URL, embedding a web browser, optimizing your app layout, or storing settings in your app our helper components can streamline your app creation process. Supporting all of this functionality across Android, IOS, ... Read More","og_url":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/","og_site_name":"JVEsuite Components","article_modified_time":"2015-09-01T23:11:41+00:00","og_image":[{"width":507,"height":372,"url":"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/","url":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/","name":"Helpers and Utilities - JVEsuite Components","isPartOf":{"@id":"https:\/\/www.jvesoft.com\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage"},"image":{"@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png","datePublished":"2015-04-23T16:08:49+00:00","dateModified":"2015-09-01T23:11:41+00:00","breadcrumb":{"@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#primaryimage","url":"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png","contentUrl":"https:\/\/www.jvesoft.com\/wp\/wp-content\/uploads\/2015\/04\/Components-1.png","width":507,"height":372},{"@type":"BreadcrumbList","@id":"https:\/\/www.jvesoft.com\/wp\/helpers-and-utilities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jvesoft.com\/wp\/"},{"@type":"ListItem","position":2,"name":"Helpers and Utilities"}]},{"@type":"WebSite","@id":"https:\/\/www.jvesoft.com\/wp\/#website","url":"https:\/\/www.jvesoft.com\/wp\/","name":"JVEsuite Components","description":"For Delphi XE4 \u2013 11.2 Alexandria (FireMonkey), but now defunct project","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jvesoft.com\/wp\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P6fFN2-1v","_links":{"self":[{"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/pages\/93"}],"collection":[{"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/comments?post=93"}],"version-history":[{"count":11,"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/pages\/93\/revisions"}],"predecessor-version":[{"id":342,"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/pages\/93\/revisions\/342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/media\/6"}],"wp:attachment":[{"href":"https:\/\/www.jvesoft.com\/wp\/wp-json\/wp\/v2\/media?parent=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}