-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path420219d2.1fc194ca.js
1 lines (1 loc) · 25.5 KB
/
420219d2.1fc194ca.js
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{138:function(e,a,t){"use strict";t.r(a),t.d(a,"frontMatter",(function(){return l})),t.d(a,"metadata",(function(){return s})),t.d(a,"rightToc",(function(){return b})),t.d(a,"default",(function(){return d}));var o=t(2),n=t(6),i=(t(0),t(229)),r=t(236),c=t(237),l={id:"delphi",title:"Delphi",hide_title:!0,sidebar_label:"Delphi"},s={id:"Instalacao/delphi",isDocsHomePage:!1,title:"Delphi",description:"Delphi",source:"@site/docs\\Instalacao\\Delphi.md",permalink:"/docs/Instalacao/delphi",sidebar_label:"Delphi",sidebar:"someSidebar",previous:{title:"Ruby",permalink:"/docs/Instalacao/ruby"},next:{title:"Gerar boleto banc\xe1rio",permalink:"/docs/PagamentoBoleto/GerarBoleto"}},b=[{value:"Pr\xe9 Requisitos",id:"pr\xe9-requisitos",children:[]},{value:"Download da SDK Delphi",id:"download-da-sdk-delphi",children:[]},{value:"Como gerar a DLL",id:"como-gerar-a-dll",children:[]},{value:"Como importar a SDK no seu projeto",id:"como-importar-a-sdk-no-seu-projeto",children:[]},{value:"Usando a SDK Gerencianet",id:"usando-a-sdk-gerencianet",children:[{value:"Configurando Proxy",id:"configurando-proxy",children:[]},{value:"Autenticando em Sandbox",id:"autenticando-em-sandbox",children:[]},{value:"Autenticando em Produ\xe7\xe3o",id:"autenticando-em-produ\xe7\xe3o",children:[]}]},{value:"Rodando a aplica\xe7\xe3o Demo",id:"rodando-a-aplica\xe7\xe3o-demo",children:[]}],p={rightToc:b};function d(e){var a=e.components,t=Object(n.a)(e,["components"]);return Object(i.b)("wrapper",Object(o.a)({},p,t,{components:a,mdxType:"MDXLayout"}),Object(i.b)("h1",{className:"titulo"},"Delphi"),Object(i.b)("div",{className:"subtitulo"},Object(i.b)("p",null,"Nossa API \xe9 ",Object(i.b)("a",{href:"https://en.wikipedia.org/wiki/Representational_state_transfer"},"RESTful"),"\ne responde em ",Object(i.b)("a",{href:"https://www.json.org/json-en.html"},"JSON"),". A Gerencianet utiliza ",Object(i.b)("a",{href:"https://oauth.net/"},"OAuth")," para fornecer acesso autorizado \xe0 API.\nNossa SDK de Delphi j\xe1 est\xe1 preparada para realizar essa autentica\xe7\xe3o automaticamente."),Object(i.b)("p",null,"A seguir, confira os procedimentos para instala\xe7\xe3o da SDK da Gerencianet em Delphi:"),Object(i.b)("br",null),Object(i.b)("h2",{id:"pr\xe9-requisitos"},"Pr\xe9 Requisitos"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Aplica\xe7\xf5es que usar\xe3o a SDK devem ser compiladas na plataforma Windows 32-bit."),Object(i.b)("li",{parentName:"ul"},"Apenas aplica\xe7\xf5es Desktop.")),Object(i.b)("br",null),Object(i.b)("h2",{id:"download-da-sdk-delphi"},"Download da SDK Delphi"),Object(i.b)("p",null," SDK Delphi disponibilizada pela Gerencianet \xe9 composta de uma DLL e duas unidades que fazem a comunica\xe7\xe3o da sua aplica\xe7\xe3o com a DLL. Para fazer o download de todo o c\xf3digo fonte da SDK e do projeto de demonstra\xe7\xe3o, ",Object(i.b)("a",{href:"https://github.com/gerencianet/gn-api-sdk-delphi"},"clique neste link"),". Ap\xf3s concluir o download, descompacte o arquivo em um diret\xf3rio/pasta de sua prefer\xeancia."),Object(i.b)("br",null),Object(i.b)("h2",{id:"como-gerar-a-dll"},"Como gerar a DLL"),Object(i.b)("p",null,"Estes passos s\xe3o opcionais, desde que voc\xea baixe a DLL j\xe1 compilada da Gerencianet atrav\xe9s ",Object(i.b)("a",{href:"https://en.wikipedia.org/wiki/Representational_state_transfer"},"deste link"),". Caso voc\xea queira compilar o c\xf3digo da DLL, siga as seguintes instru\xe7\xf5es:"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Acesse o diret\xf3rio que efetuou o download e descompactou o arquivo zip contendo o c\xf3digo fonte da DLL;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Dentro do seu Delphi, abra o projeto localizado no diret\xf3rio ",Object(i.b)("inlineCode",{parentName:"p"},"src/dll-src/"),";")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Dentro do diret\xf3rio ",Object(i.b)("inlineCode",{parentName:"p"},"src/dll-src/"),", crie uma pasta chamada ",Object(i.b)("inlineCode",{parentName:"p"},"output")," e, dentro desta pasta, crie duas subpastas (uma chamada ",Object(i.b)("inlineCode",{parentName:"p"},"release")," e outra chamada ",Object(i.b)("inlineCode",{parentName:"p"},"debug"),");")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"No gerenciador de projetos do seu Delphi (no Delphi Berlin, a janela se chama ",Object(i.b)("em",{parentName:"p"},"Project Manager"),", localizada no canto superior direito - ",Object(i.b)("a",{href:"https://en.wikipedia.org/wiki/Representational_state_transfer"},"veja onde"),"), selecione a edi\xe7\xe3o das configura\xe7\xf5es de ",Object(i.b)("em",{parentName:"p"},"build")," do seu projeto (bot\xe3o direito em ",Object(i.b)("inlineCode",{parentName:"p"},"Build Configurations")," e op\xe7\xe3o ",Object(i.b)("inlineCode",{parentName:"p"},"Edit"),"). Configure os ambientes de compila\xe7\xe3o da seguinte forma:"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"No menu \xe0 esquerda, em ",Object(i.b)("inlineCode",{parentName:"li"},"Delphi Compiler"),", clique no menu ",Object(i.b)("inlineCode",{parentName:"li"},"Target")," e em ",Object(i.b)("inlineCode",{parentName:"li"},"Debug Configuration"),", selecione ",Object(i.b)("inlineCode",{parentName:"li"},"32-bit Windows platform"),". Agora, clique em ",Object(i.b)("inlineCode",{parentName:"li"},"Output directory")," e selecione o diret\xf3rio ",Object(i.b)("inlineCode",{parentName:"li"},"output/debug")," criado no passo 3. Caso tenha d\xfavidas, veja esta imagem;")),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"No menu \xe0 esquerda, em Delphi Compiler, clique no menu Target e em Release configuration, selecione 32-bit Windows platform. Agora, clique em Output directory e selecione o diret\xf3rio output/release criado no passo 3. Caso tenha d\xfavidas, veja esta imagem;"),Object(i.b)("li",{parentName:"ul"},"Clique em OK."))),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Fa\xe7a download do arquivo .zip referente ao projeto ",Object(i.b)("a",{href:"https://github.com/onryldz/x-superobject"},"x-superobject")," e descompacte-o em uma pasta de sua prefer\xeancia;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Adicione no ",Object(i.b)("em",{parentName:"p"},"library path")," do Delphi o caminho da pasta que voc\xea escolheu para armazenar os arquivos da x-superobject, da seguinte forma:"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"No Delphi, clique em ",Object(i.b)("inlineCode",{parentName:"li"},"Tools > Options")," e, na janela que abrir, selecione a op\xe7\xe3o Delphi ",Object(i.b)("inlineCode",{parentName:"li"},"Options > Library")," (veja onde);"),Object(i.b)("li",{parentName:"ul"},"Agora, selecione a edi\xe7\xe3o do campo ",Object(i.b)("inlineCode",{parentName:"li"},"Library path")," clicando no bot\xe3o ... e, em seguida, clique no \xedcone de uma pasta (",Object(i.b)("em",{parentName:"li"},"Browser for folder..."),") (veja onde) e selecione o diret\xf3rio que voc\xea baixou e descompactou o projeto x-superobject;"),Object(i.b)("li",{parentName:"ul"},"Clique no bot\xe3o ",Object(i.b)("inlineCode",{parentName:"li"},"Add")," e feche a janela de op\xe7\xf5es."))),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Selecione o ambiente que voc\xea deseja compilar a DLL (se \xe9 ",Object(i.b)("em",{parentName:"p"},"Release ou Debug"),") e, logo em seguida, clique em ",Object(i.b)("inlineCode",{parentName:"p"},"Run > Run Without Debugging"),". A DLL Gerencianet ser\xe1 gerada em um dos diret\xf3rios criados no passo 3, conforme o ambiente que voc\xea escolheu."))),Object(i.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(o.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(o.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(o.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),"Observa\xe7\xe3o")),Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Originalmente, estes passos foram executados no Delphi Berlin 10.1"))),Object(i.b)("br",null),Object(i.b)("h2",{id:"como-importar-a-sdk-no-seu-projeto"},"Como importar a SDK no seu projeto"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},"Voc\xea precisa copiar a DLL da Gerencianet (arquivo ",Object(i.b)("inlineCode",{parentName:"li"},"GerenciaNet.dll"),") e o arquivo ",Object(i.b)("inlineCode",{parentName:"li"},"config.json")," para o mesmo diret\xf3rio que voc\xea definiu como diret\xf3rio de destino da sua aplica\xe7\xe3o, por exemplo, ",Object(i.b)("inlineCode",{parentName:"li"},"output/debug")," ou ",Object(i.b)("inlineCode",{parentName:"li"},"output/release"),";"),Object(i.b)("li",{parentName:"ol"},"Voc\xea dever\xe1 copiar os arquivos ",Object(i.b)("inlineCode",{parentName:"li"},"src/uGerenciaClient.pas")," e ",Object(i.b)("inlineCode",{parentName:"li"},"src/uGerenciaNetClientUtilities.pas"),", dispon\xedveis no arquivo .zip da SDK que voc\xea baixou, para o diret\xf3rio raiz de seu projeto. Ou seja, no mesmo local em que seus arquivos de extens\xe3o ",Object(i.b)("inlineCode",{parentName:"li"},".pas")," est\xe3o localizados;"),Object(i.b)("li",{parentName:"ol"},"Adicione ao seu projeto os arquivos copiados no passo anterior. Isto pode ser feito clicando em ",Object(i.b)("inlineCode",{parentName:"li"},"Project > Add to Project..."),".")),Object(i.b)("br",null),Object(i.b)("h2",{id:"usando-a-sdk-gerencianet"},"Usando a SDK Gerencianet"),Object(i.b)("p",null,"Importe as unidades principais:"),Object(i.b)("pre",null,Object(i.b)("code",Object(o.a)({parentName:"pre"},{}),"uses uGerenciaClient, uGerenciaNetClientUtilities;\n")),Object(i.b)("div",{className:"admonition admonition-important alert alert--info"},Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(o.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(o.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(o.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Importante")),Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Nos exemplos que fornecemos, voc\xea poder\xe1 notar que as strings JSON que passamos para a SDK s\xe3o geradas atrav\xe9s de concatena\xe7\xe3o, ou seja, sem nenhum uso de bibliotecas para manipula\xe7\xe3o de objetos JSON. No entanto, voc\xea pode escolher a biblioteca que melhor se adapte ao seu projeto e a sua vers\xe3o do Delphi, como por exemplo, a biblioteca ",Object(i.b)("a",{href:"https://github.com/onryldz/x-superobject"},"x-superobject"),"."),Object(i.b)("p",{parentName:"div"},"Desta forma, ap\xf3s gerar o objeto JSON, basta convert\xea-lo em uma string e repass\xe1-lo para a SDK como \xe9 apresentado nos exemplos desta documenta\xe7\xe3o."))),Object(i.b)("br",null),Object(i.b)("h3",{id:"configurando-proxy"},"Configurando Proxy"),Object(i.b)("p",null,"A DLL permite a configura\xe7\xe3o de sa\xedda por proxy em sua aplica\xe7\xe3o Delphi:"),Object(i.b)(r.a,{defaultValue:"delphi",values:[{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(i.b)(c.a,{value:"delphi",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(o.a)({parentName:"pre"},{className:"language-js"}),"ConfigureProxy( ToPAnsiChar( ProxyServer ), ToPAnsiChar( ProxyUsername ), ToPAnsiChar( ProxyPassword ), ProxyPort );\n")))),Object(i.b)("br",null),Object(i.b)("h3",{id:"autenticando-em-sandbox"},"Autenticando em Sandbox"),Object(i.b)(r.a,{defaultValue:"delphi",values:[{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(i.b)(c.a,{value:"delphi",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(o.a)({parentName:"pre"},{className:"language-js"}),"EnableService( 'GerenciaNet.dll' ); // carregando a DLL\nConfigureService( ToPAnsiChar( ClientID ),ToPAnsiChar( ClientSecret ),'sandbox','config.json',ToPAnsiChar(PartnerToken) ); //passando as credenciais para a DLL\nGerenciaNetAuthorize(); //autenticando na API Gerencianet\n")))),Object(i.b)("br",null),Object(i.b)("h3",{id:"autenticando-em-produ\xe7\xe3o"},"Autenticando em Produ\xe7\xe3o"),Object(i.b)(r.a,{defaultValue:"delphi",values:[{label:"Delphi",value:"delphi"}],mdxType:"Tabs"},Object(i.b)(c.a,{value:"delphi",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(o.a)({parentName:"pre"},{className:"language-js"}),"EnableService( 'GerenciaNet.dll' ); // carregando a DLL\nConfigureService( ToPAnsiChar( ClientID ),ToPAnsiChar( ClientSecret ),'api','config.json',ToPAnsiChar(PartnerToken) ); //passando as credenciais para a DLL\nGerenciaNetAuthorize(); //autenticando na API Gerencianet\n")))),Object(i.b)("div",{className:"admonition admonition-important alert alert--info"},Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(o.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(o.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(o.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Importante")),Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Esta DLL foi desenvolvida para ser retrocompat\xedvel, ou seja, compat\xedvel tanto com as vers\xf5es mais recentes do Delphi quanto as vers\xf5es mais antigas, no entanto, a Gerencianet somente ir\xe1 dar suporte \xe0 aplica\xe7\xf5es desktop win-32 desenvolvidas no Delphi Berlin 10.x, visto que esta \xe9 a vers\xe3o mais recente do Delphi e \xe9 a \xfanica vers\xe3o que \xe9 oficial e que ainda est\xe1 sob suporte da Embarcadero, empresa que distribui o Delphi."))),Object(i.b)("br",null),Object(i.b)("h2",{id:"rodando-a-aplica\xe7\xe3o-demo"},"Rodando a aplica\xe7\xe3o Demo"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"No Delphi, abra o projeto ",Object(i.b)("inlineCode",{parentName:"p"},"GerenciaDemo"),", localizado na pasta demo;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Dentro do diret\xf3rio ",Object(i.b)("inlineCode",{parentName:"p"},"demo/"),", crie uma pasta chamada ",Object(i.b)("inlineCode",{parentName:"p"},"output")," e, dentro desta pasta, crie duas subpastas (uma chamada ",Object(i.b)("inlineCode",{parentName:"p"},"release")," e outra chamada ",Object(i.b)("inlineCode",{parentName:"p"},"debug"),");")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Copie os arquivos ",Object(i.b)("inlineCode",{parentName:"p"},"GerenciaNet.dll")," e ",Object(i.b)("inlineCode",{parentName:"p"},"config.json")," para dentro das pastas ",Object(i.b)("inlineCode",{parentName:"p"},"demo/output/debug")," e ",Object(i.b)("inlineCode",{parentName:"p"},"demo/output/release")," criadas anteriormente;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"No gerenciador de projetos do seu Delphi (no Delphi Berlin, a janela se chama ",Object(i.b)("em",{parentName:"p"},"Project Manager"),", localizada no canto superior direito - veja onde), selecione a edi\xe7\xe3o das configura\xe7\xf5es de ",Object(i.b)("em",{parentName:"p"},"build")," do seu projeto (bot\xe3o direito em ",Object(i.b)("inlineCode",{parentName:"p"},"Build Configurations")," e op\xe7\xe3o ",Object(i.b)("inlineCode",{parentName:"p"},"Edit"),"). Configure os ambientes de compila\xe7\xe3o da seguinte forma:"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"No menu \xe0 esquerda, em ",Object(i.b)("inlineCode",{parentName:"li"},"Delphi Compiler"),", clique no menu ",Object(i.b)("inlineCode",{parentName:"li"},"Target")," e em ",Object(i.b)("inlineCode",{parentName:"li"},"Debug Configuration"),", selecione ",Object(i.b)("inlineCode",{parentName:"li"},"32-bit Windows platform"),". Agora, clique em ",Object(i.b)("inlineCode",{parentName:"li"},"Output directory")," e selecione o diret\xf3rio ",Object(i.b)("inlineCode",{parentName:"li"},"output/debug")," criado no passo 2. Caso tenha d\xfavidas, veja esta imagem;"),Object(i.b)("li",{parentName:"ul"},"No menu \xe0 esquerda, em ",Object(i.b)("inlineCode",{parentName:"li"},"Delphi Compiler"),", clique no menu ",Object(i.b)("inlineCode",{parentName:"li"},"Target")," e em ",Object(i.b)("inlineCode",{parentName:"li"},"Release configuration"),", selecione ",Object(i.b)("inlineCode",{parentName:"li"},"32-bit Windows platform"),". Agora, clique em ",Object(i.b)("inlineCode",{parentName:"li"},"Output directory")," e selecione o diret\xf3rio output/release criado no passo 2. Caso tenha d\xfavidas, veja esta imagem;"),Object(i.b)("li",{parentName:"ul"},"Clique em ",Object(i.b)("inlineCode",{parentName:"li"},"OK"),"."))),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Fa\xe7a download do arquivo .zip referente ao projeto ",Object(i.b)("a",{href:"https://github.com/onryldz/x-superobject"},"x-superobject")," e descompacte-o em uma pasta de sua prefer\xeancia;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Adicione no ",Object(i.b)("em",{parentName:"p"},"library path")," do Delphi o caminho da pasta que voc\xea escolheu para armazenar os arquivos da x-superobject:"),Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"No Delphi, clique em ",Object(i.b)("inlineCode",{parentName:"li"},"Tools > Options")," e, na janela que abrir, selecione a op\xe7\xe3o Delphi ",Object(i.b)("inlineCode",{parentName:"li"},"Delphi Options > Library")," (veja onde);"),Object(i.b)("li",{parentName:"ul"},"Agora, selecione a edi\xe7\xe3o do campo ",Object(i.b)("inlineCode",{parentName:"li"},"Library path")," clicando no bot\xe3o ",Object(i.b)("inlineCode",{parentName:"li"},"...")," e, em seguida, clique no \xedcone de uma pasta (",Object(i.b)("em",{parentName:"li"},"Browser for folder..."),") (veja onde) e selecione o diret\xf3rio que voc\xea baixou e descompactou o projeto x-superobject;"),Object(i.b)("li",{parentName:"ul"},"Clique no bot\xe3o ",Object(i.b)("inlineCode",{parentName:"li"},"Add")," e feche a janela de op\xe7\xf5es."))),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Copie os arquivos ",Object(i.b)("inlineCode",{parentName:"p"},"src/uGerenciaClient.pas")," e ",Object(i.b)("inlineCode",{parentName:"p"},"src/uGerenciaNetClientUtilities.pas"),", dispon\xedveis no arquivo .zip da SDK que voc\xea baixou, para dentro da pasta demo/. Ou seja, no mesmo local em que os arquivos de extens\xe3o ",Object(i.b)("inlineCode",{parentName:"p"},".pas")," est\xe3o localizados;")),Object(i.b)("li",{parentName:"ol"},Object(i.b)("p",{parentName:"li"},"Selecione o ambiente que voc\xea deseja compilar a aplica\xe7\xe3o GerenciaDemo (se \xe9 Release ou Debug), e logo em seguida clique em ",Object(i.b)("inlineCode",{parentName:"p"},"Run > Run Without Debugging"),". O arquivo execut\xe1vel ser\xe1 gerado em um dos diret\xf3rios que voc\xea criou no passo 2, dependendo do ambiente que escolhido."))),Object(i.b)("div",{className:"admonition admonition-note alert alert--secondary"},Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(o.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(o.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(o.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})))),"Observa\xe7\xe3o")),Object(i.b)("div",Object(o.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"(*) Se voc\xea deseja criar uma aplica\xe7\xe3o de teste do zero voc\xea s\xf3 precisar\xe1 importar a biblioteca x-superobject se voc\xea for usar as fun\xe7\xf5es de manipula\xe7\xe3o de objecto JSON da mesma. A biblioteca x-superobject ser\xe1 necess\xe1ria, tamb\xe9m, caso voc\xea queira compilar o c\xf3digo fonte da DLL.")))))}d.isMDXComponent=!0},229:function(e,a,t){"use strict";t.d(a,"a",(function(){return p})),t.d(a,"b",(function(){return m}));var o=t(0),n=t.n(o);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);a&&(o=o.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?r(Object(t),!0).forEach((function(a){i(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function l(e,a){if(null==e)return{};var t,o,n=function(e,a){if(null==e)return{};var t,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)t=i[o],a.indexOf(t)>=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)t=i[o],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var s=n.a.createContext({}),b=function(e){var a=n.a.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):c(c({},a),e)),t},p=function(e){var a=b(e.components);return n.a.createElement(s.Provider,{value:a},e.children)},d={inlineCode:"code",wrapper:function(e){var a=e.children;return n.a.createElement(n.a.Fragment,{},a)}},u=n.a.forwardRef((function(e,a){var t=e.components,o=e.mdxType,i=e.originalType,r=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=b(t),u=o,m=p["".concat(r,".").concat(u)]||p[u]||d[u]||i;return t?n.a.createElement(m,c(c({ref:a},s),{},{components:t})):n.a.createElement(m,c({ref:a},s))}));function m(e,a){var t=arguments,o=a&&a.mdxType;if("string"==typeof e||o){var i=t.length,r=new Array(i);r[0]=u;var c={};for(var l in a)hasOwnProperty.call(a,l)&&(c[l]=a[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,r[1]=c;for(var s=2;s<i;s++)r[s]=t[s];return n.a.createElement.apply(null,r)}return n.a.createElement.apply(null,t)}u.displayName="MDXCreateElement"},233:function(e,a,t){"use strict";function o(e){var a,t,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(a=0;a<e.length;a++)e[a]&&(t=o(e[a]))&&(n&&(n+=" "),n+=t);else for(a in e)e[a]&&(n&&(n+=" "),n+=a);return n}a.a=function(){for(var e,a,t=0,n="";t<arguments.length;)(e=arguments[t++])&&(a=o(e))&&(n&&(n+=" "),n+=a);return n}},234:function(e,a,t){"use strict";var o=t(0);const n=Object(o.createContext)({tabGroupChoices:{},setTabGroupChoices:()=>{},isAnnouncementBarClosed:!1,closeAnnouncementBar:()=>{}});a.a=n},235:function(e,a,t){"use strict";var o=t(0),n=t(234);a.a=function(){return Object(o.useContext)(n.a)}},236:function(e,a,t){"use strict";var o=t(0),n=t.n(o),i=t(235),r=t(233),c=t(92),l=t.n(c);const s=37,b=39;a.a=function(e){const{block:a,children:t,defaultValue:c,values:p,groupId:d}=e,{tabGroupChoices:u,setTabGroupChoices:m}=Object(i.a)(),[j,O]=Object(o.useState)(c);if(null!=d){const e=u[d];null!=e&&e!==j&&p.some(a=>a.value===e)&&O(e)}const N=e=>{O(e),null!=d&&m(d,e)},h=[];return n.a.createElement("div",null,n.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(r.a)("tabs",{"tabs--block":a})},p.map(({value:e,label:a})=>n.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":j===e,className:Object(r.a)("tabs__item",l.a.tabItem,{"tabs__item--active":j===e}),key:e,ref:e=>h.push(e),onKeyDown:e=>((e,a,t)=>{switch(t.keyCode){case b:((e,a)=>{const t=e.indexOf(a)+1;e[t]?e[t].focus():e[0].focus()})(e,a);break;case s:((e,a)=>{const t=e.indexOf(a)-1;e[t]?e[t].focus():e[e.length-1].focus()})(e,a)}})(h,e.target,e),onFocus:()=>N(e),onClick:()=>N(e)},a))),n.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},o.Children.toArray(t).filter(e=>e.props.value===j)[0]))}},237:function(e,a,t){"use strict";var o=t(0),n=t.n(o);a.a=function(e){return n.a.createElement("div",null,e.children)}}}]);