OSDN Git Service

タグを打ち忘れていたついでに、html版ドキュメントを追加しました。
[ring-lang-081/ring.git] / docs / build / html / whatisnew4.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>Ring 1.4 の変更履歴 &mdash; プログラミング言語 Ring 1.12 取扱説明書</title>
10     
11     <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    './',
17         VERSION:     '1.12',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="_static/jquery.js"></script>
24     <script type="text/javascript" src="_static/underscore.js"></script>
25     <script type="text/javascript" src="_static/doctools.js"></script>
26     <script type="text/javascript" src="_static/translations.js"></script>
27     <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
28     <link rel="next" title="Ring 1.3 の変更履歴" href="whatisnew3.html" />
29     <link rel="prev" title="Ring 1.5 の変更履歴" href="whatisnew5.html" />
30     <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
31
32   </head>
33   <body role="document">
34 <div class="topbar">
35   <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">&#x1f369;Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
36   <ul>
37     
38     <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
39     <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
40     <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
41     <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
42     <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
43     <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
44     
45     <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46     <li><a title="総合索引" href="genindex.html">Index</a></li>
47     <li>
48       
49       
50 <form action="search.html" method="get">
51   <input type="text" name="q" placeholder="Search" />
52   <input type="hidden" name="check_keywords" value="yes" />
53   <input type="hidden" name="area" value="default" />
54 </form>
55       
56     </li>
57   </ul>
58 </div>
59
60 <div class="related">
61     <h3>ナビゲーション</h3>
62     <ul>
63       <li class="right">
64         <a href="whatisnew3.html" title="Ring 1.3 の変更履歴">
65           next &raquo;
66         </a>
67       </li>
68       <li class="right">
69         <a href="whatisnew5.html" title="Ring 1.5 の変更履歴">
70           &laquo; previous
71         </a>
72          |
73       </li>
74       <li>
75         <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
76          &raquo;
77       </li>
78       
79       <li>Ring 1.4 の変更履歴</li> 
80     </ul>
81 </div>
82   
83
84     <div class="document">
85       <div class="documentwrapper">
86         <div class="bodywrapper">
87           <div class="body" role="main">
88             
89   <div class="section" id="ring-1-4">
90 <span id="index-0"></span><h1>Ring 1.4 の変更履歴<a class="headerlink" href="#ring-1-4" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>Ring 1.4 公開版の新機能と変更点を学びます。</p>
92 <div class="section" id="index-1">
93 <span id="id1"></span><h2>新機能と変更リスト<a class="headerlink" href="#index-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
94 <p>Ring 1.4 の新機能!</p>
95 <ul class="simple">
96 <li>変更: 基本拡張機能を Ring VM から分離</li>
97 <li>自然言語ライブラリ</li>
98 <li>Ring ノートパッドへ新しいスタイルを追加</li>
99 <li>RingREPL</li>
100 <li>数値とバイト間の変換</li>
101 <li>StdLib の改良</li>
102 <li>WebLib の改良</li>
103 <li>RingQt の改良</li>
104 <li>Qt クラスコンバーター</li>
105 </ul>
106 </div>
107 <div class="section" id="ring-vm">
108 <span id="index-2"></span><h2>変更: 基本拡張機能を Ring VM から分離<a class="headerlink" href="#ring-vm" title="このヘッドラインへのパーマリンク">¶</a></h2>
109 <p>Ring 1.4 では、このライブラリが Ring VM から分離されました。</p>
110 <ul class="simple">
111 <li>RingODBC</li>
112 <li>RingMySQL</li>
113 <li>RingSQLite</li>
114 <li>RingOpenSSL</li>
115 <li>RingInternet</li>
116 </ul>
117 <p>下記のライブラリは Load 命令で使用可能になります。</p>
118 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;odbclib.ring&quot;</span>
119 <span class="c"># ODBC 関数</span>
120 </pre></div>
121 </div>
122 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;mysqllib.ring&quot;</span>
123 <span class="c"># MySQL 関数</span>
124 </pre></div>
125 </div>
126 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;sqlitelib.ring&quot;</span>
127 <span class="c"># SQLite 関数</span>
128 </pre></div>
129 </div>
130 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;openssllib.ring&quot;</span>
131 <span class="c"># OpenSSL 関数  (ハッシュとセキュリティ関数)</span>
132 </pre></div>
133 </div>
134 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;internetlib.ring&quot;</span>
135 <span class="c"># インターネット関数 ( Download() と SendEmail() )</span>
136 </pre></div>
137 </div>
138 <p>上記のライブラリを全て使う場合、 stdlib.ring を指定することにより
139 odbclib.ring, mysqllib.ring, sqlitelib.ring, opensslib.ring
140 そして internetlib.ring ファイルを読み込みます。</p>
141 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;stdlib.ring&quot;</span>
142 </pre></div>
143 </div>
144 </div>
145 <div class="section" id="index-3">
146 <span id="id2"></span><h2>自然言語ライブラリ<a class="headerlink" href="#index-3" title="このヘッドラインへのパーマリンク">¶</a></h2>
147 <p>Ring 1.4 では命令グループがある言語を手軽に定義するために、
148 自然言語ライブラリがあります。</p>
149 <p>例えば、テキストファイル program.txt に自然言語コードを記述します。</p>
150 <p>ファイル: program.txt</p>
151 <div class="highlight-none"><div class="highlight"><pre>Welcome to the Ring programming language!
152 What you are reading now is not comments, I swear!
153
154 After many years of programming I decided to think different about
155 programming and solve the problems in a better way.
156
157 We are writing commands or code and the Ring language is reading
158 it to understand us! Sure, What you are seeing now is
159 just ***part of the code - Not the Complete Program***
160 You have to write little things before and after this
161 part to be able to run it!
162
163 It is the natural part of our code where we can write in English,
164 Arabic or any Natural Language Then we will tell the computer
165 through the Ring language what must happens! in a way that we can scale
166 for large frameworks and programs.
167
168 Just imagine what will happens to the world of programming once
169 we create many powerful frameworks using the Ring language that
170 uses this way (Natural Programming).
171
172 For example When we say Hello to the Machine, It can reply! and when we
173 say count from 1 to 5 it will understand us, Also if
174 we said count from 5 to 1 it will
175 understand us too! You can see the Output window!
176
177 This Goal is not new, but the Ring language comes
178 with an innovative solution to this problem.
179 </pre></div>
180 </div>
181 <p>実行結果:</p>
182 <div class="highlight-none"><div class="highlight"><pre>Hello, Sir!
183
184
185 The Numbers!
186
187 1
188
189 2
190
191 3
192
193 4
194
195 5
196
197 I will count Again!
198
199 5
200
201 4
202
203 3
204
205 2
206
207 1
208 </pre></div>
209 </div>
210 <p>自然言語コードを実行するには、 start.ring を実行します。</p>
211 <p>start.ring には言語と命令が定義されています。</p>
212 <p>ファイル: start.ring</p>
213 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;stdlib.ring&quot;</span>
214 <span class="k">load</span> <span class="s">&quot;naturallib.ring&quot;</span>
215
216 <span class="k">New</span> <span class="n">NaturalLanguage</span> <span class="p">{</span>
217         <span class="n">SetLanguageName</span><span class="p">(:</span><span class="n">MyLanguage</span><span class="p">)</span>
218         <span class="n">SetCommandsPath</span><span class="p">(</span><span class="n">CurrentDir</span><span class="p">()</span><span class="o">+</span><span class="s">&quot;/../command&quot;</span><span class="p">)</span>
219         <span class="n">SetPackageName</span><span class="p">(</span><span class="s">&quot;MyLanguage.Natural&quot;</span><span class="p">)</span>
220         <span class="n">UseCommand</span><span class="p">(:</span><span class="n">Hello</span><span class="p">)</span>
221         <span class="n">UseCommand</span><span class="p">(:</span><span class="n">Count</span><span class="p">)</span>
222         <span class="n">RunFile</span><span class="p">(</span><span class="s">&quot;program.txt&quot;</span><span class="p">)</span>
223 <span class="p">}</span>
224 </pre></div>
225 </div>
226 <p>これで MyLanguage 言語名は定義済みになり、言語命令用のフォルダが指定されます。</p>
227 <p>命令ごとに MyLanguage.Natural パッケージへ所属するクラスを定義します。</p>
228 <p>Hello および Count を命令として二つ定義します。</p>
229 <p>したがって、命令を定義するために CurrentDir()+”/../command” フォルダには二つのファイルが必要です。</p>
230 <p>ファイル: hello.ring</p>
231 <div class="highlight-ring"><div class="highlight"><pre><span class="n">DefineNaturalCommand</span><span class="p">.</span><span class="n">SyntaxIsKeyword</span><span class="p">(</span><span class="o">[</span>
232         <span class="p">:</span><span class="n">Package</span> <span class="o">=</span> <span class="s">&quot;MyLanguage.Natural&quot;</span><span class="p">,</span>
233         <span class="p">:</span><span class="n">Keyword</span> <span class="o">=</span> <span class="p">:</span><span class="n">hello</span><span class="p">,</span>
234         <span class="p">:</span><span class="n">Function</span> <span class="o">=</span> <span class="k">func</span> <span class="p">{</span>
235                 <span class="k">See</span>  <span class="s">&quot;Hello, Sir!&quot;</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span> <span class="n">nl</span>
236         <span class="p">}</span>
237 <span class="o">]</span><span class="p">)</span>
238 </pre></div>
239 </div>
240 <p>ファイル: count.ring</p>
241 <div class="highlight-ring"><div class="highlight"><pre><span class="n">DefineNaturalCommand</span><span class="p">.</span><span class="n">SyntaxIsKeywordNumberNumber</span><span class="p">(</span><span class="o">[</span>
242         <span class="p">:</span><span class="n">Package</span> <span class="o">=</span> <span class="s">&quot;MyLanguage.Natural&quot;</span><span class="p">,</span>
243         <span class="p">:</span><span class="n">Keyword</span> <span class="o">=</span> <span class="p">:</span><span class="n">count</span><span class="p">,</span>
244         <span class="p">:</span><span class="n">Function</span> <span class="o">=</span> <span class="k">func</span> <span class="p">{</span>
245                 <span class="k">if</span> <span class="ow">not</span> <span class="n">isattribute</span><span class="p">(</span><span class="n">self</span><span class="p">,:</span><span class="n">count_times</span><span class="p">)</span> <span class="p">{</span>
246                         <span class="n">AddAttribute</span><span class="p">(</span><span class="n">self</span><span class="p">,:</span><span class="n">count_times</span><span class="p">)</span>
247                         <span class="n">Count_Times</span> <span class="o">=</span> <span class="mi">0</span>
248                 <span class="p">}</span>
249                 <span class="k">if</span> <span class="n">Expr</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">Expr</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
250                         <span class="n">nStep</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
251                 <span class="k">else</span>
252                         <span class="n">nStep</span> <span class="o">=</span> <span class="mi">1</span>
253                 <span class="p">}</span>
254                 <span class="k">if</span> <span class="n">Count_Times</span> <span class="o">=</span> <span class="mi">0</span> <span class="p">{</span>
255                         <span class="k">see</span> <span class="n">nl</span><span class="o">+</span><span class="s">&quot;The Numbers!&quot;</span> <span class="o">+</span> <span class="n">nl</span>
256                         <span class="n">Count_Times</span><span class="o">++</span>
257                 <span class="k">else</span>
258                         <span class="k">see</span> <span class="n">nl</span> <span class="o">+</span> <span class="s">&quot;I will count Again!&quot;</span> <span class="o">+</span><span class="n">nl</span>
259                 <span class="p">}</span>
260                 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="n">Expr</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">to</span> <span class="n">Expr</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="k">step</span> <span class="n">nStep</span> <span class="p">{</span>
261                         <span class="k">see</span> <span class="n">nl</span><span class="o">+</span><span class="n">x</span><span class="o">+</span><span class="n">nl</span>
262                 <span class="p">}</span>
263                 <span class="n">CommandReturn</span><span class="p">(</span><span class="n">fabs</span><span class="p">(</span><span class="n">Expr</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">Expr</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
264         <span class="p">}</span>
265 <span class="o">]</span><span class="p">)</span>
266 </pre></div>
267 </div>
268 </div>
269 <div class="section" id="ring">
270 <span id="index-4"></span><h2>Ring ノートパッドへ新しいスタイルを追加<a class="headerlink" href="#ring" title="このヘッドラインへのパーマリンク">¶</a></h2>
271 <p>Ring ノートパッドへ表示 - スタイル - モダンスタイルの選択を追加しました。</p>
272 <p>スクリーンショット:</p>
273 <img alt="Ring ノートパッドの用法 - モダンスタイル" src="_images/rnotemodernstyle.png" />
274 </div>
275 <div class="section" id="ringrepl">
276 <span id="index-5"></span><h2>RingREPL<a class="headerlink" href="#ringrepl" title="このヘッドラインへのパーマリンク">¶</a></h2>
277 <p>application フォルダには、 RingREPL (Read-Eval-Print-Loop) があります。</p>
278 <p>Ring ノートパッド (メニューバー - ツール) からも実行できます。</p>
279 <p>スクリーンショット:</p>
280 <img alt="RingREPL の用法" src="_images/ringrepl.png" />
281 </div>
282 <div class="section" id="index-6">
283 <span id="id3"></span><h2>数値とバイト間の変換<a class="headerlink" href="#index-6" title="このヘッドラインへのパーマリンク">¶</a></h2>
284 <p>Ring 1.4 では、数値とバイト間の変換をするために、下記の関数があります。</p>
285 <ul class="simple">
286 <li>Int2Bytes()</li>
287 <li>Float2Bytes()</li>
288 <li>Double2Bytes()</li>
289 <li>Bytes2Int()</li>
290 <li>Bytes2Float()</li>
291 <li>Bytes2Double()</li>
292 </ul>
293 <p>用例:</p>
294 <div class="highlight-ring"><div class="highlight"><pre><span class="k">see</span> <span class="s">&quot;Test Int2Bytes() and Bytes2Int() - Value : 77&quot;</span> <span class="o">+</span> <span class="n">nl</span>
295 <span class="n">r</span> <span class="o">=</span> <span class="n">Int2Bytes</span><span class="p">(</span><span class="mi">77</span><span class="p">)</span>
296 <span class="k">see</span> <span class="s">&quot;Int Size : &quot;</span> <span class="o">+</span> <span class="n">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
297 <span class="k">see</span> <span class="n">r</span> <span class="o">+</span> <span class="n">nl</span>
298 <span class="k">see</span> <span class="n">Bytes2Int</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
299 <span class="k">see</span> <span class="s">&quot;Test Float2Bytes() and Bytes2Float() - Value 77.12&quot;</span> <span class="o">+</span> <span class="n">nl</span>
300 <span class="n">r</span> <span class="o">=</span> <span class="n">Float2Bytes</span><span class="p">(</span><span class="mf">77.12</span><span class="p">)</span>
301 <span class="k">see</span> <span class="s">&quot;Float Size : &quot;</span> <span class="o">+</span> <span class="n">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
302 <span class="k">see</span> <span class="n">r</span> <span class="o">+</span> <span class="n">nl</span>
303 <span class="k">see</span> <span class="n">Bytes2Float</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
304 <span class="k">see</span> <span class="s">&quot;Test Double2Bytes() and Bytes2Double() - Value 9999977.12345&quot;</span> <span class="o">+</span> <span class="n">nl</span>
305 <span class="n">r</span> <span class="o">=</span> <span class="n">Double2Bytes</span><span class="p">(</span><span class="mf">9999977.12345</span><span class="p">)</span>
306 <span class="k">see</span> <span class="s">&quot;Double Size : &quot;</span> <span class="o">+</span> <span class="n">len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
307 <span class="k">see</span> <span class="n">r</span> <span class="o">+</span> <span class="n">nl</span>
308 <span class="n">decimals</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
309 <span class="k">see</span> <span class="n">Bytes2Double</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
310 </pre></div>
311 </div>
312 </div>
313 <div class="section" id="stdlib">
314 <span id="index-7"></span><h2>StdLib の改良<a class="headerlink" href="#stdlib" title="このヘッドラインへのパーマリンク">¶</a></h2>
315 <p>StdLib に関数を実装するために FSize() 関数を更新しました。</p>
316 <p>print() 関数でローカル変数を受け入れられるように更新しました。</p>
317 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">&quot;stdlib.ring&quot;</span>
318
319 <span class="k">func</span> <span class="n">main</span>
320         <span class="n">print</span><span class="p">(</span><span class="s">&quot;Enter your name : &quot;</span><span class="p">)</span>     <span class="p">;</span>
321         <span class="n">Name</span> <span class="o">=</span> <span class="n">getString</span><span class="p">()</span>              <span class="p">;</span>
322         <span class="n">print</span><span class="p">(</span> <span class="s">&quot;Hello : #{Name} &quot;</span><span class="p">)</span>      <span class="p">;</span>
323         <span class="k">return</span>                          <span class="p">;</span>
324 </pre></div>
325 </div>
326 </div>
327 <div class="section" id="weblib">
328 <span id="index-8"></span><h2>WebLib の改良<a class="headerlink" href="#weblib" title="このヘッドラインへのパーマリンク">¶</a></h2>
329 <p>WebLib を更新しました</p>
330 <ul class="simple">
331 <li>エラーメッセージの実装</li>
332 </ul>
333 <ol class="arabic simple">
334 <li>Error (WebLib-1) : REQUEST_METHOD is empty ! - Run this script from the browser</li>
335 <li>Error (DataLib-1) : Can&#8217;t connect to the database server!</li>
336 </ol>
337 <ul class="simple">
338 <li>Template() 関数の改良 - 第二仮引数でオブジェクトの代わりに NULL を受け入れることができるようになりました。</li>
339 </ul>
340 <div class="highlight-ring"><div class="highlight"><pre><span class="n">html</span><span class="p">(</span><span class="n">template</span><span class="p">(</span><span class="s">&quot;main.rhtml&quot;</span><span class="p">,</span><span class="kp">NULL</span><span class="p">))</span>
341 </pre></div>
342 </div>
343 <ul class="simple">
344 <li>“target”属性への対応のために Form クラスを更新</li>
345 </ul>
346 <div class="highlight-ring"><div class="highlight"><pre><span class="n">BootStrapWebPage</span><span class="p">()</span>
347 <span class="p">{</span>
348         <span class="n">Title</span> <span class="o">=</span> <span class="s">&quot;The Ring Programming Language&quot;</span>
349         <span class="n">html</span><span class="p">(</span><span class="n">template</span><span class="p">(</span><span class="s">&quot;main.rhtml&quot;</span><span class="p">,</span><span class="kp">NULL</span><span class="p">))</span>
350         <span class="n">div</span> <span class="p">{</span>
351                 <span class="n">classname</span> <span class="o">=</span> <span class="p">:</span><span class="n">container</span>
352                 <span class="n">div</span>
353                 <span class="p">{</span>
354                         <span class="n">id</span> <span class="o">=</span> <span class="s">&quot;div3&quot;</span>
355                         <span class="n">color</span> <span class="o">=</span> <span class="s">&quot;black&quot;</span>
356                         <span class="n">backgroundcolor</span> <span class="o">=</span> <span class="s">&quot;white&quot;</span>
357                         <span class="n">width</span> <span class="o">=</span> <span class="s">&quot;100%&quot;</span>
358                         <span class="n">form</span>
359                         <span class="p">{</span>
360                                 <span class="n">method</span> <span class="o">=</span> <span class="s">&quot;POST&quot;</span>
361                                 <span class="n">Action</span> <span class="o">=</span> <span class="n">website</span>
362                                 <span class="n">Target</span> <span class="o">=</span> <span class="s">&quot;codeoutput&quot;</span>
363                                 <span class="n">input</span> <span class="p">{</span> <span class="n">type</span><span class="o">=</span><span class="s">&quot;hidden&quot;</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;page&quot;</span> <span class="n">value</span><span class="o">=</span><span class="mi">1</span> <span class="p">}</span>
364                                 <span class="n">Table</span>
365                                 <span class="p">{</span>
366                                         <span class="n">style</span> <span class="o">=</span> <span class="n">stylewidth</span><span class="p">(</span><span class="s">&quot;100%&quot;</span><span class="p">)</span> <span class="o">+</span>
367                                                 <span class="n">stylegradient</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
368                                         <span class="n">TR</span>
369                                         <span class="p">{</span>
370
371                                                 <span class="n">TD</span> <span class="p">{</span> <span class="n">align</span><span class="o">=</span><span class="s">&quot;center&quot;</span>
372                                                         <span class="n">WIDTH</span><span class="o">=</span><span class="s">&quot;10%&quot;</span>
373                                                          <span class="n">text</span><span class="p">(</span><span class="s">&quot;Code :&quot;</span><span class="p">)</span>
374                                                 <span class="p">}</span>
375                                                 <span class="n">TD</span> <span class="p">{</span>
376                                                         <span class="n">html</span><span class="p">(`</span>
377                                                         <span class="o">&lt;</span><span class="n">textarea</span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;cCode&quot;</span>
378                                                         <span class="n">rows</span><span class="o">=</span><span class="s">&quot;5&quot;</span>
379                                                         <span class="n">style</span><span class="o">=</span><span class="s">&quot;width : 100%; &quot;</span><span class="o">&gt;</span>
380                                                         <span class="k">See</span> <span class="s">&quot;Hello, World!&quot;</span> <span class="o">+</span> <span class="n">nl</span>
381                                                         <span class="o">&lt;/</span><span class="n">textarea</span><span class="o">&gt;</span><span class="p">`)</span>
382                                                 <span class="p">}</span>
383                                         <span class="p">}</span>
384                                 <span class="p">}</span>
385                                 <span class="n">Input</span> <span class="p">{</span> <span class="n">type</span> <span class="o">=</span> <span class="s">&quot;submit&quot;</span>
386                                         <span class="n">classname</span><span class="o">=</span><span class="s">&quot;btn btn-primary btn-block&quot;</span>
387                                                 <span class="n">value</span> <span class="o">=</span> <span class="s">&quot;Execute&quot;</span> <span class="p">}</span>
388                                 <span class="n">Table</span>
389                                 <span class="p">{</span>
390                                         <span class="n">style</span> <span class="o">=</span> <span class="n">stylewidth</span><span class="p">(</span><span class="s">&quot;100%&quot;</span><span class="p">)</span> <span class="o">+</span>
391                                                 <span class="n">stylegradient</span><span class="p">(</span><span class="mi">34</span><span class="p">)</span>
392                                         <span class="n">TR</span>
393                                         <span class="p">{</span>
394
395                                                 <span class="n">TD</span> <span class="p">{</span> <span class="n">align</span><span class="o">=</span><span class="s">&quot;center&quot;</span>
396                                                         <span class="n">WIDTH</span><span class="o">=</span><span class="s">&quot;10%&quot;</span>
397                                                         <span class="n">text</span><span class="p">(</span><span class="s">&quot;Output :&quot;</span><span class="p">)</span>
398                                                 <span class="p">}</span>
399                                                 <span class="n">TD</span> <span class="p">{</span>
400                                                 <span class="n">html</span><span class="p">(`</span>
401                                                 <span class="o">&lt;</span><span class="n">iframe</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;codeoutput&quot;</span>
402                                                 <span class="n">width</span><span class="o">=</span><span class="s">&quot;100%&quot;</span>
403                                                 <span class="n">style</span><span class="o">=</span><span class="s">&quot;background-color:white;&quot;</span><span class="o">&gt;</span>
404                                                 <span class="o">&lt;/</span><span class="n">iframe</span><span class="o">&gt;</span><span class="p">`)</span>
405                                                 <span class="p">}</span>
406                                         <span class="p">}</span>
407                                 <span class="p">}</span>
408
409                         <span class="p">}</span>
410                 <span class="p">}</span>
411
412         <span class="p">}</span>
413         <span class="n">html</span><span class="p">(</span><span class="n">template</span><span class="p">(</span><span class="s">&quot;footer.rhtml&quot;</span><span class="p">,</span><span class="kp">NULL</span><span class="p">))</span>
414 <span class="p">}</span>
415 </pre></div>
416 </div>
417 </div>
418 <div class="section" id="ringqt">
419 <span id="index-9"></span><h2>RingQt の改良<a class="headerlink" href="#ringqt" title="このヘッドラインへのパーマリンク">¶</a></h2>
420 <p>この関数を RingQt へ追加</p>
421 <ul class="simple">
422 <li>SetDialogIcon(cIconFile)</li>
423 <li>MsgInfo(cTitle,cMessage)</li>
424 <li>ConfirmMsg(cTitle,cMessage)</li>
425 <li>InputBox(cTitle,cMessage)</li>
426 <li>InputBoxInt(cTitle,cMessage)</li>
427 <li>InputBoxNum(cTitle,cMessage)</li>
428 <li>InputBoxPass(cTitle,cMessage)</li>
429 </ul>
430 <p>このクラスを RingQt へ追加</p>
431 <ul class="simple">
432 <li>QToolButton</li>
433 <li>QSerialPort</li>
434 <li>QSerialPortInfo</li>
435 </ul>
436 </div>
437 <div class="section" id="qt">
438 <span id="index-10"></span><h2>Qt クラスコンバーター<a class="headerlink" href="#qt" title="このヘッドラインへのパーマリンク">¶</a></h2>
439 <p>Ring 1.4 は Qt クラスを RingQt への移植するための補助ツールがあります。</p>
440 <p>ring/samples/tools/QtClassConverter にあります。</p>
441 <p>オンライン : <a class="reference external" href="https://github.com/ring-lang/ring/tree/master/samples/tools/QtClassConverter">https://github.com/ring-lang/ring/tree/master/samples/tools/QtClassConverter</a></p>
442 <p>スクリーンショット:</p>
443 <img alt="RingQt 移植補助用 Qt クラスコンバーター" src="_images/qtclassconvertor.png" />
444 </div>
445 <div class="section" id="ring-1-4-1">
446 <span id="index-11"></span><h2>Ring 1.4.1 の変更履歴<a class="headerlink" href="#ring-1-4-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
447 <p>このような変更点が Ring 1.4.1 にあります。</p>
448 <ul class="simple">
449 <li>ソースコードからのビルドに使用するスクリプトの改良</li>
450 <li>Ring ノートパッドの Modern Style の配色を改善</li>
451 <li>StdLib の改良</li>
452 <li>RingQt の改良</li>
453 <li>新しいサンプル : Sixteen Puzzle</li>
454 </ul>
455 <p>ソースコードからのビルドで使用するスクリプトの更新</p>
456 <p>Windows, Ubuntu Linux, Linux Mint および macOS で動作確認を行いました。</p>
457 <p>スクリーンショット:</p>
458 <img alt="Linux Mint で Ring を使用" src="_images/linuxmint.png" />
459 <p>Ring ノートパッドでは - モダンスタイルの配色を更新</p>
460 <p>スクリーンショット:</p>
461 <img alt="Ring ノートパッドの使用 - モダンスタイル" src="_images/rnotemodernstyle2.png" />
462 <p>StdLib オブジェクトライブラリへ関数を実装しました。</p>
463 <ul class="simple">
464 <li>TrimLeft()</li>
465 <li>TrimRight()</li>
466 <li>TrimAll()</li>
467 <li>EpochTime()</li>
468 </ul>
469 <p>この関数はウィンドウの前面にダイアログを表示するために更新しました。</p>
470 <ul class="simple">
471 <li>SetDialogIcon(cIconFile)</li>
472 <li>MsgInfo(cTitle,cMessage)</li>
473 <li>ConfirmMsg(cTitle,cMessage)</li>
474 <li>InputBox(cTitle,cMessage)</li>
475 <li>InputBoxInt(cTitle,cMessage)</li>
476 <li>InputBoxNum(cTitle,cMessage)</li>
477 <li>InputBoxPass(cTitle,cMessage)</li>
478 </ul>
479 <p>Applications フォルダへ Sixteen Puzzle を追加しました。</p>
480 <p>スクリーンショット:</p>
481 <img alt="Sixteen Puzzle" src="_images/sixteenpuzzle.jpg" />
482 </div>
483 </div>
484
485
486           </div>
487         </div>
488       </div>
489       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
490         <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
491 <ul>
492 <li><a class="reference internal" href="#">Ring 1.4 の変更履歴</a><ul>
493 <li><a class="reference internal" href="#index-1">新機能と変更リスト</a></li>
494 <li><a class="reference internal" href="#ring-vm">変更: 基本拡張機能を Ring VM から分離</a></li>
495 <li><a class="reference internal" href="#index-3">自然言語ライブラリ</a></li>
496 <li><a class="reference internal" href="#ring">Ring ノートパッドへ新しいスタイルを追加</a></li>
497 <li><a class="reference internal" href="#ringrepl">RingREPL</a></li>
498 <li><a class="reference internal" href="#index-6">数値とバイト間の変換</a></li>
499 <li><a class="reference internal" href="#stdlib">StdLib の改良</a></li>
500 <li><a class="reference internal" href="#weblib">WebLib の改良</a></li>
501 <li><a class="reference internal" href="#ringqt">RingQt の改良</a></li>
502 <li><a class="reference internal" href="#qt">Qt クラスコンバーター</a></li>
503 <li><a class="reference internal" href="#ring-1-4-1">Ring 1.4.1 の変更履歴</a></li>
504 </ul>
505 </li>
506 </ul>
507
508
509   <h4>前のトピックへ</h4>
510   <p class="topless"><a href="whatisnew5.html"
511                         title="前の章へ">Ring 1.5 の変更履歴</a></p>
512   <h4>次のトピックへ</h4>
513   <p class="topless"><a href="whatisnew3.html"
514                         title="次の章へ">Ring 1.3 の変更履歴</a></p>
515   <div role="note" aria-label="source link">
516     <h3>このページ</h3>
517     <ul class="this-page-menu">
518       <li><a href="_sources/whatisnew4.txt"
519             rel="nofollow">ソースコードを表示</a></li>
520     </ul>
521    </div>
522       
523 <form action="search.html" method="get">
524   <input type="text" name="q" placeholder="Search" />
525   <input type="hidden" name="check_keywords" value="yes" />
526   <input type="hidden" name="area" value="default" />
527 </form>
528       
529         </div>
530       </div>
531       <div class="clearer"></div>
532     </div>
533 <footer class="footer">
534   <p class="pull-right">
535     <a href="_sources/whatisnew4.txt"
536        rel="nofollow">Page Source</a> &nbsp;
537     <a href="#">Back to Top</a></p>
538   <p>
539     &copy; Copyright 2016-2020, Ring Team.<br/>
540     Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6. / astropy-sphinx-theme 1.1 (isVowel)
541   </p>
542 </footer>
543   </body>
544 </html>