{"id":5153,"date":"2013-11-20T08:00:45","date_gmt":"2013-11-20T07:00:45","guid":{"rendered":"http:\/\/blogs.wittwer.fr\/whiler\/?p=5153"},"modified":"2014-03-03T19:44:49","modified_gmt":"2014-03-03T18:44:49","slug":"utiliser-une-ressource-delphi","status":"publish","type":"post","link":"https:\/\/blogs.wittwer.fr\/whiler\/2013\/11\/20\/utiliser-une-ressource-delphi\/","title":{"rendered":"Utiliser une ressource Delphi"},"content":{"rendered":"<p>Lorsque l&rsquo;on d\u00e9veloppe avec Delphi, que l&rsquo;on veuille d\u00e9ployer sur Windows, Mac, iOS ou Android, on peut dans tous les cas utiliser un fichier ressource.<\/p>\n<p>Cela peut s&rsquo;av\u00e9rer, par exemple, utile pour int\u00e9grer un fichier de configuration, des images, &#8230;<\/p>\n<div id=\"attachment_5154\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-read-from-resource.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5154\" src=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-read-from-resource-300x180.png\" alt=\"Image charg\u00e9e depuis une ressource\" width=\"300\" height=\"180\" class=\"size-medium wp-image-5154\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-read-from-resource-300x180.png 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-read-from-resource.png 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-5154\" class=\"wp-caption-text\">Image charg\u00e9e depuis une ressource<\/p><\/div>\n<p>Dans l&rsquo;exemple suivant, je charge un fichier JPG dans un <code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TImage<\/span><\/code>.<br \/>\n<!--more--><br \/>\nJ&rsquo;ai pos\u00e9 un contr\u00f4le <code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TImage<\/span><\/code> sur ma fiche et je l&rsquo;ai align\u00e9 sur le client.<br \/>\nLe code source est simple&nbsp;:<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">unit<\/span> uMain<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">interface<\/span><br \/>\n<br \/>\n<span class=\"kw1\">uses<\/span><br \/>\n&nbsp; System<span class=\"sy1\">.<\/span><span class=\"me1\">SysUtils<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Types<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">UITypes<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Classes<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Variants<\/span><span class=\"sy1\">,<\/span><br \/>\n&nbsp; FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Types<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Controls<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Forms<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Graphics<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Dialogs<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Objects<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">type<\/span><br \/>\n&nbsp; TfrmResource <span class=\"sy3\">=<\/span> <span class=\"kw1\">class<\/span><span class=\"br0\">&#40;<\/span>TForm<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; imgBelly<span class=\"sy1\">:<\/span> TImage<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> FormCreate<span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">private<\/span><br \/>\n&nbsp; &nbsp; <span class=\"coMULTI\">{ Private declarations }<\/span><br \/>\n&nbsp; <span class=\"kw1\">public<\/span><br \/>\n&nbsp; &nbsp; <span class=\"coMULTI\">{ Public declarations }<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; frmResource<span class=\"sy1\">:<\/span> TfrmResource<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">implementation<\/span><br \/>\n<br \/>\n<span class=\"co2\">{$R *.fmx}<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmResource<span class=\"sy1\">.<\/span><span class=\"me1\">FormCreate<\/span><span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; rsBelly<span class=\"sy1\">:<\/span> TResourceStream<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; rsBelly <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TResourceStream<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span>HInstance<span class=\"sy1\">,<\/span> <span class=\"st0\">'belly'<\/span><span class=\"sy1\">,<\/span> RT_RCDATA<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">try<\/span><br \/>\n&nbsp; &nbsp; imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">LoadFromStream<\/span><span class=\"br0\">&#40;<\/span>rsBelly<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">finally<\/span><br \/>\n&nbsp; &nbsp; rsBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">.<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>L&rsquo;image a simplement \u00e9t\u00e9 ajout\u00e9e en utilisant&nbsp;:<br \/>\n<div id=\"attachment_5155\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-menu.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5155\" src=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-menu-300x177.png\" alt=\"Menu Ressources &amp; Images\" width=\"300\" height=\"177\" class=\"size-medium wp-image-5155\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-menu-300x177.png 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-menu-1024x607.png 1024w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-menu.png 1440w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-5155\" class=\"wp-caption-text\">Menu Ressources &#038; Images<\/p><\/div><br \/>\n<div id=\"attachment_5156\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-5156\" src=\"\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-300x138.png\" alt=\"Ressources et Images\" width=\"300\" height=\"138\" class=\"size-medium wp-image-5156\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources-300x138.png 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2013\/11\/delphi-resources.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-5156\" class=\"wp-caption-text\">Ressources et Images<\/p><\/div><\/p>\n<p>De la m\u00eame fa\u00e7on, on aurait pu ajouter des fichiers de tout type (XML, &#8230;)<\/p>\n<div class=\"thanks_button_div\" \n                  style=\"float: right; margin-right: 10px; margin-top:10px;\"><div id=\"thanksButtonDiv_5153_1\" style=\"background-image:url(https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/thanks_compact_brown1.png); background-repeat:no-repeat; float: left; display: inline;\"\n                onmouseover=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_5153_1', true);\" \n                onmouseout=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_5153_1', false);\"\n                onclick=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_5153_1', false);\" >\n                <input type=\"button\" onclick=\"thankYouButtonClick(5153, 'You left &ldquo;Thanks&rdquo; already for this post')\" value=\"Merci\u00a0 5\"\n                  class=\"thanks_button thanks_compact thanks_brown1\"\n                  style=\"  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#00f;\"\n                  id=\"thanksButton_5153_1\" title=\"Click to leave &ldquo;Thanks&rdquo; for this post\"\/>\n             <\/div><div id=\"ajax_loader_5153_1\" style=\"display:inline;visibility: hidden;\"><img decoding=\"async\" alt=\"ajax loader\" src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/ajax-loader.gif\" \/><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Lorsque l\u2019on d\u00e9veloppe avec Delphi, que l\u2019on veuille d\u00e9ployer sur Windows, Mac, iOS ou Android, on peut dans tous les cas utiliser un fichier ressource.<\/p>\n<p>Cela peut s\u2019av\u00e9rer, par exemple, utile pour int\u00e9grer un fichier de configuration, des images, \u2026<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[132,7,6],"tags":[158,27,154,44,146],"class_list":["post-5153","post","type-post","status-publish","format-standard","hentry","category-android","category-delphi","category-dev","tag-android","tag-coloration-syntaxique","tag-delphi","tag-embarcadero","tag-firemonkey"],"_links":{"self":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/5153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/comments?post=5153"}],"version-history":[{"count":0,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/5153\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/media?parent=5153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/categories?post=5153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/tags?post=5153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}