{"id":352,"date":"2022-01-07T18:29:21","date_gmt":"2022-01-07T21:29:21","guid":{"rendered":"https:\/\/gladiston.net.br\/?page_id=352"},"modified":"2022-07-13T16:05:55","modified_gmt":"2022-07-13T19:05:55","slug":"using-resources-fpc-lazarus","status":"publish","type":"page","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/","title":{"rendered":"Using resources in FPC\/Lazarus"},"content":{"rendered":"<p class=\"wp-block-paragraph\">There is a lot of difference between resources files in Delphi and Lazarus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Resources is any file you want to embed along with the executable. Common practice is to have images, sound effects, html\/dll\/etc files scattered or distributed on disk during installation. Using resources means that you can embed it in the executable and when you run it then take advantage of those resources however you want. For example, using CEF4 (Chromium Browser) built into our application will require some DLLs in the same directory as the executable, of course I can create an installer that distributes these DLLs to my application or use resources to transfer these DLLs from within the executable to the installation folder and ensure the program works with the planned DLLs. But its use is not restricted to extracting files to disk, this is just one of the possibilities, the most common is loading images or playing sound effects with .jpg and .wav files without having to extract anything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The way Lazarus handles resources \u2013 in my opinion \u2013 is much better than the way Delphi handles it, let&#039;s see the differences:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Delphi, at the beginning of the project or form you would do like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>{$R arquivo.res}<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In Lazarus we will use it like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<span style=\"background-color: inherit; font-size: inherit; color: var(--global--color-foreground);\">$R file.lrs} or {$I file.lrs}<\/span><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It&#039;s not just the extension or directive that changes, the way the .lrs file is generated will also be different. While in Delphi you need to create an intermediate file (.rc) containing the list of files that will later be transferred to a .res, for example a .rc file like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>MYDATA RCDATA \"mydata.dat\"<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Where each line of this file(.rc) indicating a different file to later generate a .res file. Delphi uses a built-in utility \u2013 available in the IDE \u2013 to convert this .rc-&gt;.res file, in Lazarus we&#039;ll do it through a command line program without needing an intermediate file (.rc), just:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Lazarus\\Tools\\lazres.exe file.lrs image1.jpg image2.jpg myDLL.dll<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And the file.lrs file will be generated which, unlike Delphi, is not binary and can be versioned by tools such as git. There is also a GUI that simplifies this operation and can be found at this link:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/sourceforge.net\/projects\/lrsexplorer\/\">LRS Explorer<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The way to use resources that I found most suitable is to include in the Uses section:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>uses \u2026LResources\u2026;<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And to enjoy, let&#039;s avoid doing what most Delphi programmers do which is to include the {$R} directive next to the implementation statement. Lazarus documentation recommends it should be in the section&nbsp;<strong>initialization<\/strong>&nbsp;(we will probably create it) in the first unit to be loaded into the project:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>initialization<br>{$I file.lrs}<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And to enjoy the content there are several ways, for images it is done this way:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>procedure exampleproc;\nvar\n  Image: TImage\nbegin\n  Image := TImage.Create;\n  \/\/ note que n\u00e3o precisamos da extens\u00e3o\n  Image.Picture.LoadFromLazarusResource('image1');\nend;<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The best way to use it is as shown in the example above, loading the resource directly to the component without having to write it to disk first, it seems that most of the components that use Lazarus&#039; TGraphic have been adapted to allow loading directly from the resources this way. In Delphi we would do this using a TStream.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, life is not just made up of pictures and sometimes we use files of other formats like .dll to ensure that the program works correctly. So on initial program load we will need to instruct it to extract them to the proper folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We would go to the section&nbsp;<strong>initialization<\/strong>&nbsp;(or create it) from the first unit to be loaded in the project and we would extract it like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>initialization\n  {$I arquivo.lrs}\n  RootDir:=ExtractFilepath(ParamStr(0));\n  Extract_ResFileTo('image1',   RootDir+PathDelim+'img\u2019+PathDelim+\u2019image1.jpg');\n  Extract_ResFileTo('image2',   RootDir+PathDelim+'img\u2019+PathDelim+\u2019image2.jpg');\n  Extract_ResFileTo('minhaDLL', ExtractFilepath(ParamStr(0))+PathDelim+'minhaDLL.dll');<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The example above used the Extract_ResFileTo function that does not exist in Lazarus, here is its code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function Extract_ResFileTo(AResName: String; ASaveFileTo: String):String; var res: TLResource; st: TLazarusResourceStream; begin Result:=emptyStr; st := nil; if Result=emptyStr then begin if not DirectoryExists(ExtractFilePath(ASaveFileTo)) then begin \/\/ Create extract directory if it does not exist if not ForceDirectories(ExtractFilePath(ASaveFileTo)) then begin Result:=&#039;Directory does not exist: &#039;+ExtractFilePath (ASaveFileTo); end; end; end; if Result=emptyStr then begin res:=LazarusResources.Find(AResName); if res=nil then begin Result:=&#039;RC with name &quot;&#039;+AResName+&#039;&quot; was not found.&#039;; end else begin try st := TLazarusResourceStream.Create(AResName, nil); \/\/ saving to disk st.SaveToFile(ASaveFileTo); finally st.Free; end; end; end; end;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will find this need to extract resources files to disk when using components like CEF4, MPlayer and others that need specific DLLs to be in your project&#039;s executable directory. Of course I could copy them manually, but this is unproductive and prone to errors so the best thing is to get those DLLs and embed them as resource files and when the program starts then check for the existence of DLLs and if they don&#039;t exist then extract them to the appropriate folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Credits:<br><a href=\"https:\/\/wiki.freepascal.org\/Lazarus_Resources#Adding_resources_to_your_program\">Adding resources to your program<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":159,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-full-width.php","meta":{"footnotes":""},"class_list":["post-352","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gladiston Santana - Um site para chamar de meu\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Using resources in FPC\/Lazarus - Gladiston Santana\" \/>\n\t\t<meta property=\"og:description\" content=\"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-01-07T21:29:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-07-13T19:05:55+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Using resources in FPC\/Lazarus - Gladiston Santana\" \/>\n\t\t<meta name=\"twitter:description\" content=\"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en#listItem\",\"position\":1,\"name\":\"In\\u00edcio\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"position\":2,\"name\":\"Programa\\u00e7\\u00e3o\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en#listItem\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"position\":3,\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\",\"item\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/#listItem\",\"name\":\"Using resources in FPC\\\/Lazarus\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/#listItem\",\"position\":4,\"name\":\"Using resources in FPC\\\/Lazarus\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/#listItem\",\"name\":\"Lazarus IDE &#8211; Guia de Sobreviv\\u00eancia\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#organization\",\"name\":\"Gladiston Santana\",\"description\":\"Um site para chamar de meu\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/#webpage\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/\",\"name\":\"Using resources in FPC\\\/Lazarus - Gladiston Santana\",\"description\":\"H\\u00e1 muita diferen\\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \\u00e9 qualquer arquivo que voc\\u00ea deseje embutir junto com o execut\\u00e1vel. A pr\\u00e1tica comum \\u00e9 ter imagens, efeitos sonoros, arquivos html\\\/dll\\\/etc espalhados ou distribu\\u00eddos no disco durante a instala\\u00e7\\u00e3o. Usar resources significa que voc\\u00ea pode embuti-lo no execut\\u00e1vel e ao execut\\u00e1-lo ent\\u00e3o\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/programacao\\\/lazarus-ide\\\/using-resources-fpc-lazarus\\\/#breadcrumblist\"},\"datePublished\":\"2022-01-07T18:29:21-03:00\",\"dateModified\":\"2022-07-13T16:05:55-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/\",\"name\":\"Gladiston Santana\",\"description\":\"Um site para chamar de meu\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/gladiston.net.br\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Using resources in FPC\/Lazarus - Gladiston Santana","description":"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o","canonical_url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en#listItem","position":1,"name":"In\u00edcio","item":"https:\/\/gladiston.net.br\/en","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","position":2,"name":"Programa\u00e7\u00e3o","item":"https:\/\/gladiston.net.br\/en\/programacao\/","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia"},"previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en#listItem","name":"In\u00edcio"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","position":3,"name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia","item":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/","nextItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/#listItem","name":"Using resources in FPC\/Lazarus"},"previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}},{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/#listItem","position":4,"name":"Using resources in FPC\/Lazarus","previousItem":{"@type":"ListItem","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/#listItem","name":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia"}}]},{"@type":"Organization","@id":"https:\/\/gladiston.net.br\/en\/#organization","name":"Gladiston Santana","description":"Um site para chamar de meu","url":"https:\/\/gladiston.net.br\/en\/"},{"@type":"WebPage","@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/#webpage","url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/","name":"Using resources in FPC\/Lazarus - Gladiston Santana","description":"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/gladiston.net.br\/en\/#website"},"breadcrumb":{"@id":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/#breadcrumblist"},"datePublished":"2022-01-07T18:29:21-03:00","dateModified":"2022-07-13T16:05:55-03:00"},{"@type":"WebSite","@id":"https:\/\/gladiston.net.br\/en\/#website","url":"https:\/\/gladiston.net.br\/en\/","name":"Gladiston Santana","description":"Um site para chamar de meu","inLanguage":"en-US","publisher":{"@id":"https:\/\/gladiston.net.br\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gladiston Santana - Um site para chamar de meu","og:type":"article","og:title":"Using resources in FPC\/Lazarus - Gladiston Santana","og:description":"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o","og:url":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/","article:published_time":"2022-01-07T21:29:21+00:00","article:modified_time":"2022-07-13T19:05:55+00:00","twitter:card":"summary","twitter:title":"Using resources in FPC\/Lazarus - Gladiston Santana","twitter:description":"H\u00e1 muita diferen\u00e7a entre os arquivos resources no Delphi e no Lazarus. Resources \u00e9 qualquer arquivo que voc\u00ea deseje embutir junto com o execut\u00e1vel. A pr\u00e1tica comum \u00e9 ter imagens, efeitos sonoros, arquivos html\/dll\/etc espalhados ou distribu\u00eddos no disco durante a instala\u00e7\u00e3o. Usar resources significa que voc\u00ea pode embuti-lo no execut\u00e1vel e ao execut\u00e1-lo ent\u00e3o"},"aioseo_meta_data":{"post_id":"352","title":"#post_title #separator_sa #site_title","description":"#post_content","keywords":[],"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2022-01-07 21:29:22","updated":"2025-06-04 10:03:23","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\" title=\"In\u00edcio\">In\u00edcio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\/programacao\/\" title=\"Programa\u00e7\u00e3o\">Programa\u00e7\u00e3o<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/\" title=\"Lazarus IDE \u2013 Guia de Sobreviv\u00eancia\">Lazarus IDE \u2013 Guia de Sobreviv\u00eancia<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tUsing resources in FPC\/Lazarus\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"In\u00edcio","link":"https:\/\/gladiston.net.br\/en"},{"label":"Programa\u00e7\u00e3o","link":"https:\/\/gladiston.net.br\/en\/programacao\/"},{"label":"Lazarus IDE &#8211; Guia de Sobreviv\u00eancia","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/"},{"label":"Using resources in FPC\/Lazarus","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/using-resources-fpc-lazarus\/"}],"_links":{"self":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":5,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/352\/revisions"}],"predecessor-version":[{"id":886,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/352\/revisions\/886"}],"up":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/159"}],"wp:attachment":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/media?parent=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}