認識fChart流程圖與程式碼編輯器(Blockly版)
==============================================================================
fChart是一個流程圖直譯器，可以自行繪製流程圖，和執行繪製的流程圖.
在4.5版新增源至Min C# Lab的程式碼編輯器，fChart已經轉變成為整合開發環境，
不只可以編輯 C、Java、C#和Visual Basic程式碼，更可以直接編譯和執行 C、
Java(需自行安裝JDK)、 C#和Visual Basic語言的程式，Blockly 版進一步支援 Python 
和 JavaScript 語言，HTML+JavaScript是啟動預設瀏覽器來預覽執行結果。

HTML+JS版本來是為了教學所需建立的特別版本(沒有公開)，內建 Blcokly 積木程式編輯器
可以幫助初學者建立出完整JavaScript程式碼，Windows 作業系統需要安裝 Google Chrome
瀏覽器來啟動 Blockly。JavaScript程式碼可以使用功能表命令插入常用程式碼片段，
也可以按[Blockly]鈕啟動 Blockly 使用積木來拚出程式，在自動轉換成 JavaScript 
程式碼後，我們可以複製回fChart程式碼編輯器進行測試執行，或進一步修改JavaScript程式碼。

因為 Blockly 支援 Python 語言，所以 fChart 再整合成 Blockly 版，除了 JavaScript 
新增支援使用 Blockly　建立 Python 程式，然後複製回fChart程式碼編輯器測試執行 
Python程式，內建支援 Python 3.5 直譯器(WinPython)，換句話說，fChart程式碼編輯器
也支援 Python 程式碼的編輯和直譯執行，當然也提供程式碼片段的功能表命令來
快速輸入程式碼。

Blockly 版是使用全新程式設計教學方式來幫助初學者寫出完整的程式碼，寫程式的步驟為：
首先使用fChart可執行流程圖來了解演算法和執行流程後，啟動fChart程式碼編輯器，
依據流程圖符號從功能表命令插入程式片段來寫出完整的程式碼，如果仍然有困難，
按下方[Blockly]鈕啟動 Blockly 改用積木建立程式來轉換成 JavaScript 和 Python 程式，
再回到fChart程式碼編輯器進一步編輯修改程式碼，並且測試執行 JavaScript 和 Python 程式。

* 離線版Blockly程式積木編輯器是使用修改源於"雲林SONG"的精簡版本，只保留Code部分
* 謝謝 Ping-Lun Liao的授權使用。

2017/05 : 整合 IBM 的 Node-RED 物聯網開發工具
---------------------------------------------
Blockly v3版: 新增 Node.js 應用程式開發，和 Node-RED 物聯網開發工具。
              並且內建 HTML 網頁編輯工具TinyMCE，這是Web介面隨看即所得的HTML工具。              
              * 在HTML+JavaScript新增HTML表單標籤，TinyMCE 和 Node-RED工具。
              * Blockly會依選擇語言自動切換轉換成Python或JavaScript程式碼。
              * Python語言支援PyFirmata模組，Node.js支援Johnny-Five來控制
                Arduino開發板。
              * Node-RED支援Arduino in/out節點。
              * 如果有選取文字，當使用功能表插入程式碼會自動重設游標位置，
                從選取文字的開頭插入，而不是選取文字的最後位置。
              * 內建編譯/直譯器:
                 - C語言: TCC
                 - Python語言: WinPython
                 - Node語言: NodePortable
                 
Node-RED 物聯網開發工具提供http節點，可以輕鬆使用流程建立 Web 應用程式，結合 
Blockly 積木建立 JavaScript 程式碼和 TinyAMC 建立 HTML 範本，讓初學者只需學習
基礎 JavaScript和HTML，就足以自行建立存取 Open Data 的 Web 應用程式，例如:
查詢股票和天氣資訊。更進一步，因為支援 Arduino 節點，可以讓我們整合 Web 應用程式
來遠端控制 Arduino 開發板，輕鬆使用流程和少少的程式碼來建立物聯網應用程式。  

使用fChart流程圖直譯器
==============================================================================
1. 啟動fChart：我們有兩種方式來啟動fChart流程圖直譯器，如下所示：

   方法一：請開啟fChart所在的資料夾，按二下執行[RunfChart.exe]後，按【是】鈕。
   
   方法二：請開啟fChart所在資料夾，因為檔案權限問題，
           請在【FlowProgramming_Edit.exe】上，執行滑鼠【右】鍵
           快顯功能表的【以系統管理員身份執行】命令來執行fChart後，按【是】鈕。

   說明: 指定FlowProgramming_Edit.exe永遠使用【以系統管理員身份執行】執行，
         請在執行檔上，執行[右]鍵快顯功能表的[內容]命令，選[相容性]標籤，
         在下方勾選[以系統管理員的身份執行此程式]後，按[確定]鈕完成設定。

   * Windows XP需安裝.NET Framework 2.0以上版本，如果使用方法一，不需按【是】鈕。
     方法二，只需按二下【FlowProgramming_Edit.exe】執行檔，就可以啟動fChart。

2. 離開fChart：請執行「檔案>結束」命令，或按視窗右上角【X】鈕。

3. 新增流程圖符號：在左邊工具列點選欲新增的流程圖符號，移動
   符號圖示至編輯區域的欲插入位置，點選一下，可以開啟編輯符號
   的對話方塊來編輯符號內容。

4. 連接2個流程圖符號：請在欲連接的2個符號各點選一下（順序是
   先點選開始符號，然後結束符號）後，在沒有符號區域，執行
   滑鼠【右】鍵快顯功能表的【連接區塊】命令來建立連接箭頭線。

5. 刪除連接箭頭線：請分別點選一下連接線兩端的流程圖符號（順序沒有關係
   ），在沒有符號區域，執行滑鼠【右】鍵快顯功能表的【刪除連接線】
   命令來刪除連接線。

6. 刪除流程圖符號：沒有任何連接線時，才能刪除流程圖符號，
   請點選一下欲刪除符號後，在沒有符號區域，執行滑鼠【右】鍵快顯功能表
   的【刪除區塊】命令。

7. 執行流程圖：在上方執行工具列，按【執行】鈕執行流程圖。

8. 逐步執行流程圖：當將延遲時間的捲動軸調整至最大時，就是切換至逐步
   執行模式，此時按【執行】鈕執行流程圖，就是一次一步來逐步執行流程圖，
   請重複按【逐步執行】鈕來執行流程圖的下一步。

9. 顯示變數視窗：按【變數】鈕顯示「變數」視窗，其內容是執行過程的變數值。

10. 顯示堆疊視窗：按【堆疊】鈕顯示「堆疊」視窗，如果是函數呼叫，
    就在此視窗顯示保留的區域變數值。

使用fChart程式碼編輯器
==============================================================================
1. 啟動fChart程式碼編輯器：在fChart按上方【程式碼編輯器】鈕啟動fChart程式碼
   編輯器，或直接執行【fChartCodeEditor.exe】程式來執行fChart程式碼編輯器。

2. 離開fChart程式碼編輯器：請執行「檔案>結束」命令，或按視窗右上角【X】鈕。

3. 在編輯區域的右下方切換使用的程式語言；左下方按鈕編譯和執行程式。

4. 執行上方功能表命令可以依據流程圖符號來插入指定程式語言的程式片段。

5. 執行「檔案>設為預設程式語言」命令指定預設的程式語言。

6. Java語言需自行安裝JDK，然後執行「檔案>設定JDK目錄」命令，指定JDK安裝目錄。

7. 編輯HTML+JavaScript程式碼可以執行「HTML標籤」功能表命令快速插入常用HTML標籤
   和HTML表單標籤，並且提供命令啟動HTML和Node-RED工具, 說明如下所示:
   
   * 啟動 Web 介面 HTML 編輯器 : 預設使用 Chrome 載入 HTML 編輯器
   * Node-RED 命令有2個 : Step 1 啟動 Node-RED 伺服器
                          Step 2 預設使用 Chrome 載入 Node-RED 工具 
                          http://localhost:1880

8. Python和JavaScript語言可以按下方[Blockly]鈕啟動 Blockly積木程式編輯器，
   使用積木來建立程式碼，Node可以按下方[Node CLI]鈕啟動Node的命令提示字元視窗。

