Skip to content

lunasoft/sw-sdk-visual-delphi

Repository files navigation

<title>sw-sdk-visual-delphi/README.md at 0.0.3.1 · lunasoft/sw-sdk-visual-delphi</title>
<meta content="https://avatars0.githubusercontent.com/u/6212462?v=4&amp;s=400" property="og:image" /><meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="lunasoft/sw-sdk-visual-delphi" property="og:title" /><meta content="https://github.com/lunasoft/sw-sdk-visual-delphi" property="og:url" /><meta content="sw-sdk-visual-delphi - SW SmarterWeb Client Library for Visual Delphi" property="og:description" />

  <meta name="hostname" content="github.com">
  <meta name="expected-hostname" content="github.com">
<meta name="js-proxy-site-detection-payload" content="Y2RiZmI1N2M4ZDhlMTVmNGMyYjU1ZmQ4ZDhhZmQ2YWE4MWI1YzY4NDUwYzhiMjFkNzQ1NzI1Y2E4YmNhNmMzM3x7InJlbW90ZV9hZGRyZXNzIjoiMTQ4LjI0MC4yMDAuMTgwIiwicmVxdWVzdF9pZCI6IkM3ODU6NzNGNDoxNDIxRkY5OjIzNURFQUM6NTlBOUIxQjEiLCJ0aW1lc3RhbXAiOjE1MDQyOTMyOTcsImhvc3QiOiJnaXRodWIuY29tIn0=">

<meta name="enabled-features" content="UNIVERSE_BANNER">
  <link href="https://github.com/lunasoft/sw-sdk-visual-delphi/commits/0.0.3.1.atom" rel="alternate" title="Recent Commits to sw-sdk-visual-delphi:0.0.3.1" type="application/atom+xml">

<link rel="canonical" href="https://github.com/lunasoft/sw-sdk-visual-delphi/blob/0.0.3.1/README.md" data-pjax-transient>
Skip to content
</div>

<div class="HeaderMenu d-flex flex-justify-between flex-auto">
  <div class="d-flex">
        <div class="">
          <div class="header-search scoped-search site-scoped-search js-site-search" role="search">
<label class="form-control header-search-wrapper js-chromeless-input-container">
    <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/blob/0.0.3.1/README.md" class="header-search-scope no-underline">This repository</a>
  <input type="text"
    class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
    data-hotkey="s"
    name="q"
    value=""
    placeholder="Search"
    aria-label="Search this repository"
    data-unscoped-placeholder="Search GitHub"
    data-scoped-placeholder="Search"
    autocapitalize="off">
    <input type="hidden" class="js-site-search-type-field" name="type" >
</label>
        </div>

      <ul class="d-flex pl-2 flex-items-center text-bold list-style-none" role="navigation">
        <li>
          <a href="https://github.com/pulls" aria-label="Pull requests you created" class="js-selected-navigation-item HeaderNavlink px-2" data-ga-click="Header, click, Nav menu - item:pulls context:user" data-hotkey="g p" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls">
            Pull requests

  • Issues
  • Marketplace
  • Explore
  •   <div class="d-flex">
    
        <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/logout" class="sr-only right-0" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="gQPOkAOe/XF9085zrk2YpvB/EK05j+zuFxnL3HnGuKvJ5MY6jL3qf72Goabgtvkr6wHr24tClpppkAzLxg/04g==" /></div>
          <button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout">
            Sign out
          </button>
    
    <div id="js-flash-container">
    
    <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav">
      <div class="container repohead-details-container">
    
        <ul class="pagehead-actions">
    
  •     <div class="select-menu js-menu-container js-select-menu">
          <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/subscription"
            class="btn btn-sm btn-with-count select-menu-button js-menu-target"
            role="button"
            aria-haspopup="true"
            aria-expanded="false"
            aria-label="Toggle repository notifications menu"
            data-ga-click="Repository, click Watch settings, action:blob#show">
            <span class="js-select-button">
                <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                Watch
            </span>
          </a>
            <a class="social-count js-social-count"
              href="https://github.com/lunasoft/sw-sdk-visual-delphi/watchers"
              aria-label="5 users are watching this repository">
              5
            </a>
    
        <div class="select-menu-modal-holder">
          <div class="select-menu-modal subscription-menu-modal js-menu-content">
            <div class="select-menu-header js-navigation-enable" tabindex="-1">
              <svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
              <span class="select-menu-title">Notifications</span>
            </div>
    
              <div class="select-menu-list js-navigation-container" role="menu">
    
                <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0">
                  <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                  <div class="select-menu-item-text">
                    <input checked="checked" id="do_included" name="do" type="radio" value="included" />
                    <span class="select-menu-item-heading">Not watching</span>
                    <span class="description">Be notified when participating or @mentioned.</span>
                    <span class="js-select-button-text hidden-select-button-text">
                      <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                      Watch
                    </span>
                  </div>
                </div>
    
                <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
                  <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                  <div class="select-menu-item-text">
                    <input id="do_subscribed" name="do" type="radio" value="subscribed" />
                    <span class="select-menu-item-heading">Watching</span>
                    <span class="description">Be notified of all conversations.</span>
                    <span class="js-select-button-text hidden-select-button-text">
                      <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
                        Unwatch
                    </span>
                  </div>
                </div>
    
                <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0">
                  <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
                  <div class="select-menu-item-text">
                    <input id="do_ignore" name="do" type="radio" value="ignore" />
                    <span class="select-menu-item-heading">Ignoring</span>
                    <span class="description">Never be notified.</span>
                    <span class="js-select-button-text hidden-select-button-text">
                      <svg aria-hidden="true" class="octicon octicon-mute" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
                        Stop ignoring
                    </span>
                  </div>
                </div>
    
              </div>
    
            </div>
          </div>
        </div>
    
  • Unstar 0
    Star 0
  • Fork
          <div id="fork-destination-box" style="display: none;">
            <h2 class="facebox-header" data-facebox-id="facebox-header">Where should we fork this repository?</h2>
            <include-fragment src=""
                class="js-fork-select-fragment fork-select-fragment"
                data-url="/lunasoft/sw-sdk-visual-delphi/fork?fragment=1">
              <img alt="Loading" height="64" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-128.gif" width="64" />
            </include-fragment>
          </div>
    
    <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/network" class="social-count"
       aria-label="0 users forked this repository">
      0
    </a>
    
  •     <h1 class="public ">
    

    /sw-sdk-visual-delphi

      </div>
      <div class="container">
    
    <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
      <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/issues" class="js-selected-navigation-item reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /lunasoft/sw-sdk-visual-delphi/issues" itemprop="url">
        <svg aria-hidden="true" class="octicon octicon-issue-opened" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="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"/></svg>
        <span itemprop="name">Issues</span>
        <span class="Counter">0</span>
        <meta itemprop="position" content="2">
    

    <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/projects" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /lunasoft/sw-sdk-visual-delphi/projects">
      <svg aria-hidden="true" class="octicon octicon-project" height="16" version="1.1" viewBox="0 0 15 16" width="15"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
      Projects
      <span class="Counter" >0</span>
    
    Wiki Settings
      </div>
    </div>
    

    Permalink

    type="button" aria-label="Switch branches or tags" aria-expanded="false" aria-haspopup="true"> <i>Branch:</i> <span class="js-select-button css-truncate-target">0.0.3.1</span>
    <div class="select-menu-modal">
      <div class="select-menu-header">
        <svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
        <span class="select-menu-title">Switch branches/tags</span>
      </div>
    
      <div class="select-menu-filters">
        <div class="select-menu-text-filter">
          <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Find or create a branch…">
        </div>
        <div class="select-menu-tabs">
          <ul>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="branches" data-filter-placeholder="Find or create a branch…" class="js-select-menu-tab" role="tab">Branches</a>
            </li>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
            </li>
          </ul>
        </div>
      </div>
    
      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
    
        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
    
    
            <a class="select-menu-item js-navigation-item js-navigation-open selected"
               href="https://github.com/lunasoft/sw-sdk-visual-delphi/blob/0.0.3.1/README.md"
               data-name="0.0.3.1"
               data-skip-pjax="true"
               rel="nofollow">
              <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
              <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
                0.0.3.1
              </span>
            </a>
            <a class="select-menu-item js-navigation-item js-navigation-open "
               href="https://github.com/lunasoft/sw-sdk-visual-delphi/blob/develop/README.md"
               data-name="develop"
               data-skip-pjax="true"
               rel="nofollow">
              <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
              <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
                develop
              </span>
            </a>
            <a class="select-menu-item js-navigation-item js-navigation-open "
               href="https://github.com/lunasoft/sw-sdk-visual-delphi/blob/master/README.md"
               data-name="master"
               data-skip-pjax="true"
               rel="nofollow">
              <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
              <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
                master
              </span>
            </a>
        </div>
    
          <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lunasoft/sw-sdk-visual-delphi/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="236n1wymxOcS3PEme/IwC0NPcQGZlz59JGcYV5VRpDFIxAdUnCaNVumwgxXSIiW5EJ2iKxa2wB76R38EglS+oQ==" /></div>
          <svg aria-hidden="true" class="octicon octicon-git-branch select-menu-item-icon" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path fill-rule="evenodd" d="M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 0 0-1-3.72C.88 1 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
            <div class="select-menu-item-text">
              <span class="select-menu-item-heading">Create branch: <span class="js-new-item-name"></span></span>
              <span class="description">from ‘0.0.3.1’</span>
            </div>
            <input type="hidden" name="name" id="name" class="js-new-item-value">
            <input type="hidden" name="branch" id="branch" value="0.0.3.1">
            <input type="hidden" name="path" id="path" value="README.md">
    
      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
    
    
            <a class="select-menu-item js-navigation-item js-navigation-open "
              href="https://github.com/lunasoft/sw-sdk-visual-delphi/tree/v0.0.2.1/README.md"
              data-name="v0.0.2.1"
              data-skip-pjax="true"
              rel="nofollow">
              <svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
              <span class="select-menu-item-text css-truncate-target" title="v0.0.2.1">
                v0.0.2.1
              </span>
            </a>
        </div>
    
        <div class="select-menu-no-results">Nothing to show</div>
      </div>
    
    </div>
    
    <div class="BtnGroup float-right">
      <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/find/0.0.3.1"
            class="js-pjax-capture-input btn btn-sm BtnGroup-item"
            data-pjax
            data-hotkey="t">
        Find file
      </a>
      <button aria-label="Copy file path to clipboard" class="js-zeroclipboard btn btn-sm BtnGroup-item tooltipped tooltipped-s" data-copied-hint="Copied!" type="button">Copy path</button>
    </div>
    <div class="breadcrumb js-zeroclipboard-target">
      <span class="repo-root js-repo-root"><span class="js-path-segment"><a href="https://github.com/lunasoft/sw-sdk-visual-delphi/tree/0.0.3.1"><span>sw-sdk-visual-delphi</span></a></span></span><span class="separator">/</span><strong class="final-path">README.md</strong>
    </div>
    
    ca0721b Aug 31, 2017
    <div class="commit-tease-contributors">
      <button type="button" class="btn-link muted-link contributors-toggle" data-facebox="#blob_contributors_box">
        <strong>2</strong>
         contributors
      </button>
          <a class="avatar-link tooltipped tooltipped-s" aria-label="alxcodes" href="https://github.com/lunasoft/sw-sdk-visual-delphi/commits/0.0.3.1/README.md?author=alxcodes"><img alt="@alxcodes" class="avatar" height="20" src="https://avatars1.githubusercontent.com/u/23086346?v=4&amp;s=40" width="20" /> </a>
    <a class="avatar-link tooltipped tooltipped-s" aria-label="ecs515" href="https://github.com/lunasoft/sw-sdk-visual-delphi/commits/0.0.3.1/README.md?author=ecs515"><img alt="@ecs515" class="avatar" height="20" src="https://avatars2.githubusercontent.com/u/30845192?v=4&amp;s=40" width="20" /> </a>
    
    
    </div>
    
    <div id="blob_contributors_box" style="display:none">
      <h2 class="facebox-header" data-facebox-id="facebox-header">Users who have contributed to this file</h2>
      <ul class="facebox-user-list" data-facebox-id="facebox-description">
          <li class="facebox-user-list-item">
            <img alt="@alxcodes" height="24" src="https://avatars3.githubusercontent.com/u/23086346?v=4&amp;s=48" width="24" />
            <a href="https://github.com/alxcodes">alxcodes</a>
          </li>
          <li class="facebox-user-list-item">
            <img alt="@ecs515" height="24" src="https://avatars0.githubusercontent.com/u/30845192?v=4&amp;s=48" width="24" />
            <a href="https://github.com/ecs515">ecs515</a>
          </li>
      </ul>
    </div>
    
    <div class="BtnGroup">
      <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/raw/0.0.3.1/README.md" class="btn btn-sm BtnGroup-item" id="raw-url">Raw</a>
        <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/blame/0.0.3.1/README.md" class="btn btn-sm js-update-url-with-hash BtnGroup-item" data-hotkey="b">Blame</a>
      <a href="https://github.com/lunasoft/sw-sdk-visual-delphi/commits/0.0.3.1/README.md" class="btn btn-sm BtnGroup-item" rel="nofollow">History</a>
    </div>
    
        <a class="btn-octicon tooltipped tooltipped-nw"
           href="https://desktop.github.com"
           aria-label="Open this file in GitHub Desktop"
           data-ga-click="Repository, open with desktop, type:windows">
            <svg aria-hidden="true" class="octicon octicon-device-desktop" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"/></svg>
        </a>
    
        <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lunasoft/sw-sdk-visual-delphi/edit/0.0.3.1/README.md" class="inline-form js-update-url-with-hash" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="Q2xWUmwu/UUArnfRM8OuylJ78SF2iLTtDtYbFe6Q/a/3u5mPk34CXm13TwvcUg1Ezd6MShppcybnEOg+xI0cWw==" /></div>
          <button class="btn-octicon tooltipped tooltipped-nw" type="submit"
            aria-label="Edit this file" data-hotkey="e" data-disable-with>
            <svg aria-hidden="true" class="octicon octicon-pencil" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
          </button>
    
    263 lines (166 sloc) 8.48 KB

    Para utilizar los servicios de SW con Delphi se debe tener primeramente el fichero DLL correspondiente a SWServices.dll y su dependencia MSXML2_TLB.dcu.

    IDE Compatible

    • Para poder correr el ejemplo necesitas tener instalado Embarcadero® Delphi 10.2

    Pasos Previos

    Interfaz

    El proyecto de ejemplo cuenta con un formulario principal el cual tiene botones referentes a los servicios Autenticar, Timbrado, Cancelacion y Consulta de Saldo

    Para incluir la DLL de nuestro servicio es necesaria indicarla de la siguiente manera:

    function Authentication(User, Password, URL: String):String; stdcall external 'SWServices.dll';
    function StampV1(URL, XML, Token: String):String; stdcall external 'SWServices.dll';
    function StampV2(URL, XML, Token: String):String; stdcall external 'SWServices.dll';
    function StampV3(URL, XML, Token: String):String; stdcall external 'SWServices.dll';
    function StampV4(URL, XML, Token: String):String; stdcall external 'SWServices.dll';
    function CancelByPFX (Token, URL, PFX, UUID, PasswordKey, RFC: String):String; stdcall external 'SWServices.dll';
    function CancelByXML (Token, URL, XML: String):String; stdcall external 'SWServices.dll';
    function CancelByCSD (Token, URL, UUID, PasswordKey, RFC, Cer, Key: String):String; stdcall external 'SWServices.dll';
    function AccountBalance(Token, URL: String):String; stdcall external 'SWServices.dll';
    

    Dentro de nuestro proyecto declararemos las constantes siguientes

     User : String = 'demo';
     Password : String = '123456789';
     URL : String = 'http://services.test.sw.com.mx';
    

    Función de Autenticacion

    • El String User recibe el Usuario que se utilizara para autenticarse el cual en nuestro ambiente de pruebas seria 'demo'
    • El String Password recibe la Contraseña que necesita para poder obtener el token el cual seria '123456789'
    • El URL User recibe la Url a donde apuntara el servicio la cual en nuestro ambiente de prueba sería 'http://services.test.sw.com.mx/security/authenticate'

    ShowMessage(Authentication(User, Password, URL) );

    • El ShowMessage arroja el resultado del servicio de autenticación

    Funciónes de Timbrado

    • Aquí tenemos cuatro formas de timbrado(V1, V2, V3, V4) todos los metodos necesitan de un XML ya selllado

    • En todos los metódos enviaremos los parametros en el siguiente orden: URL, XML y Autenticación, esta última podemos acceder a ella mediante la función de Authentication

    • Timbrado Versión 1 devuelve solo el TFD de la factura

    	
    	XML: String;
    
    FileStream : TFileStream;
    
    Bytes: TBytes;
    
    Respuesta: String; 
    
    begin
    
    
    FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\cancelar.xml', fmOpenRead or fmShareDenyWrite);
      SetLength(Bytes, FileStream.Size);
      FileStream.Read(Bytes[0], FileStream.Size);
    XML :=  TEncoding.ASCII.GetString(Bytes);
    FileStream.Free;
    ShowMessage(StampV1(URL, XML, Token) );
    
    • Timbrado Versi&oacute;n 2 devuelve solo el TFD y el CFDI de la factura

    	XML: String;
    	FileStream : TFileStream;
    	Bytes: TBytes;
    	Respuesta: String;
    begin
    	FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\cancelar.xml', fmOpenRead or fmShareDenyWrite);
      	SetLength(Bytes, FileStream.Size);
      	FileStream.Read(Bytes[0], FileStream.Size);
    	XML :=  TEncoding.ASCII.GetString(Bytes);
    FileStream.Free;
    ShowMessage(StampV2(URL, XML, Token) );
    
    • Timbrado Versión 3 devuelve solo el TFD y el TFD ya unidos de la factura
    
    
    var
    
    	XML: String;
    	FileStream : TFileStream;
    	Bytes: TBytes;
    	Respuesta: String;
    begin
    	FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\cancelar.xml', fmOpenRead or fmShareDenyWrite);
      	SetLength(Bytes, FileStream.Size);
      	FileStream.Read(Bytes[0], FileStream.Size);
    	XML :=  TEncoding.ASCII.GetString(Bytes);
    	FileStream.Free;
    	ShowMessage(Stampv3(URL, XML, Token) );
    end;
    

    En caso

    • Timbrado Versi&oacute;n 4 este servicio devuelve CFDI, TFD, CadenaOriginal, noCertificadoSat, noCertificadoCFDI, UUID, selloSAT, selloCFDI, fechaTimbrado y QR. Este servicio recibe el comprobante ya sellado.

    var
    
    	XML: String;
    	FileStream : TFileStream;
    	Bytes: TBytes;
    	Respuesta: String;
    begin
    	FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\cancelar.xml', fmOpenRead or fmShareDenyWrite);
      	SetLength(Bytes, FileStream.Size);
      	FileStream.Read(Bytes[0], FileStream.Size);
    	XML :=  TEncoding.ASCII.GetString(Bytes);
    	FileStream.Free;
    	ShowMessage(Stampv4(URL, XML, Token) );
    

    Funciones de cancelación

    • Cancelación por CSD Como su nombre lo indica, este servicio recibe todos los elementos que componen el CSD en base64 los cuales son los siguientes:

      Certificado (.cer)

      Key (.key)

      Password del archivo key

      RFC emisor

      var XML, UUID, Cer, Key, PasswordKey, RFC: String; FileStream : TFileStream; Bytes: TBytes; begin

        UUID := '091f85fb-6b7b-4738-ad41-da42752af610';
        RFC := 'LAN7008173R5';
      

      FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\XML.xml', fmOpenRead or fmShareDenyWrite); SetLength(Bytes, FileStream.Size); FileStream.Read(Bytes[0], FileStream.Size); XML := TEncoding.ASCII.GetString(Bytes); FileStream.Free;

      FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\RFC.cer', fmOpenRead or fmShareDenyWrite); SetLength(Bytes, FileStream.Size); FileStream.Read(Bytes[0], FileStream.Size); Cer := TEncoding.ASCII.GetString(Bytes); FileStream.Free;

      FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\RFC.key', fmOpenRead or fmShareDenyWrite); SetLength(Bytes, FileStream.Size); FileStream.Read(Bytes[0], FileStream.Size); Key := Base64Encode(TEncoding.ASCII.GetString(Bytes)); FileStream.Free;

      ShowMessage(CancelByCSD(Authentication(User, Password, URL), URL, UUID, PasswordKey, RFC, Cer, Key));

      end;

    • Cancelación por XML

    Como su nombre lo indica, este servicio recibe únicamente el XML sellado con los UUID a cancelar.

    var
    	XML: String;
    	FileStream : TFileStream;
    	Bytes: TBytes;
    begin
    	FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\cancelar.xml', fmOpenRead or fmShareDenyWrite);
      	SetLength(Bytes, FileStream.Size);
      	FileStream.Read(Bytes[0], FileStream.Size);
    	XML :=  TEncoding.ASCII.GetString(Bytes);
    	FileStream.Free;
    
    ShowMessage(CancelByXML(Authentication(User, Password, URL),URL, XML));
    

    end;

    • Cancelacion por PFX

    Como su nombre lo indica, este servicio recibe todos los elementos que componen el PFX los cuales son los siguientes:

    PFX

    Password del archivo key

    RFC emisor

    Enviaremos los siguientes parametros

    var
    	XML, PFX, UUID, PasswordKey, RFC: String;
    	FileStream : TFileStream;
    	Bytes: TBytes;
    begin
    	RFC := 'LAN7008173R5';
    	PasswordKey := '12345678a';
    	UUID := '091f85fb-6b7b-4738-ad41-da42752af610';
    
    FileStream := TFileStream.Create( 'C:\Users\office-user\Documents\Embarcadero\Studio\Projects\Timbrado\Data\certificado.pfx', fmOpenRead or fmShareDenyWrite);
    SetLength(Bytes, FileStream.Size);
    FileStream.Read(Bytes[0], FileStream.Size);
    PFX :=  Base64Encode(TEncoding.ASCII.GetString(Bytes));
    FileStream.Free;
    		
    ShowMessage(CancelByPFX(Authentication(User, Password, URL), URL, PFX, UUID, PasswordKey, RFC));
    

    end;

    • Consulta de Saldo

    Este servicio recibe el token y genera los elementos que componen la consulta de saldos:

    begin	
    	ShowMessage(AccountBalance(Authentication(User, Password, URL),URL));
    end;
    

    Jump to Line

    Go
    </div>
    
    <a href="https://github.com" aria-label="Homepage" class="footer-octicon" title="GitHub">
      <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
    
    You can't perform that action at this time.
    <script crossorigin="anonymous" integrity="sha256-ADlWtmO0Qfn/6JFR8DV8xKaQfuJQgDIYo/A0n82SxfQ=" src="https://assets-cdn.github.com/assets/frameworks-003956b663b441f9ffe89151f0357cc4a6907ee250803218a3f0349fcd92c5f4.js"></script>
    
    <script async="async" crossorigin="anonymous" integrity="sha256-MPSh3jBvoVPCMsiIExfnJPw7HK2nk4BuVM4pHCrAaRI=" src="https://assets-cdn.github.com/assets/github-30f4a1de306fa153c232c8881317e724fc3b1cada793806e54ce291c2ac06912.js"></script>
    
    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

    About

    Librería para el consumo de los servicios de SmarterWeb a través de Delphi.

    Topics

    Resources

    License

    Stars

    Watchers

    Forks

    Packages

    No packages published

    Contributors 7

    Languages