{"id":484,"date":"2016-10-25T21:51:17","date_gmt":"2016-10-25T23:51:17","guid":{"rendered":"http:\/\/www.pascalscada.com\/?p=484"},"modified":"2016-10-26T00:42:22","modified_gmt":"2016-10-26T02:42:22","slug":"using-expressions-on-tplcstructitem-index-property","status":"publish","type":"post","link":"https:\/\/www.pascalscada.com\/pb\/2016\/10\/25\/using-expressions-on-tplcstructitem-index-property\/","title":{"rendered":"Usando express\u00f5es na propriedade TPLCStructItem.Index"},"content":{"rendered":"Ol\u00e1 a todos!<\/p>\n<p>Recentemente, devido a dificuldades usando o projeto, acabei incluindo uma ideia um tanto maluca, mas extremamente \u00fatil. O que aconteceu foi que precisei adicionar um item a uma estrutura j\u00e1 existente. O que fiz foi simples: selecionei todos os elementos da ultima estrutura, pressionei Ctrl+C e logo em seguida, Ctrl+V. O detalhe ficou pela propriedade Index dos TPLCStructItems criados. Normalmente teria que pegar item\u00a0por item e somar o tamanho da estrutura para calcular o\u00a0\u00edndice (offset) de cada um. Isso quando n\u00e3o era necess\u00e1rio usar a calculadora para fazer o calculo. Mas ai vem a ideia maluca: por que n\u00e3o deixar a IDE fazer isso? Pois \u00e9. Essa ideia em conjunto com a p\u00e1gina do <a href=\"http:\/\/wiki.freepascal.org\/How_To_Use_TFPExpressionParser\">TFPExpressionParser<\/a>\u00a0deram origem ao video abaixo:<\/p>\n<figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_46086\"  width=\"800\" height=\"600\"  data-origwidth=\"800\" data-origheight=\"600\" src=\"https:\/\/www.youtube.com\/embed\/mcAHWDxTNI0?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&rel=1&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&disablekb=0&\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure>\n<p>Ainda n\u00e3o est\u00e1 pronto, estou com a cabe\u00e7a cheia de ideias. Quais s\u00e3o as suas id\u00e9ias?<\/p>\n<p>&nbsp;<\/p>\n<p>Ps. Ap\u00f3s publicar este post, eu terminei alguns recursos mostrados neste video:<br \/>\n<figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_31142\"  width=\"800\" height=\"600\"  data-origwidth=\"800\" data-origheight=\"600\" src=\"https:\/\/www.youtube.com\/embed\/qzQP5qoOaUE?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&rel=1&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&disablekb=0&\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure>","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 a todos! Recentemente, devido a dificuldades usando o projeto, acabei incluindo uma ideia um tanto maluca, mas extremamente \u00fatil. O que aconteceu foi que precisei adicionar um item a &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[23,24,22],"class_list":["post-484","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-expression","tag-ideas","tag-tplcstructitem"],"_links":{"self":[{"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/posts\/484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/comments?post=484"}],"version-history":[{"count":5,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/posts\/484\/revisions"}],"predecessor-version":[{"id":489,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/posts\/484\/revisions\/489"}],"wp:attachment":[{"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/media?parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/categories?post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pascalscada.com\/pb\/wp-json\/wp\/v2\/tags?post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}