天天看點

實作一個模拟CMD.exe指令編輯模式執行與顯示的Delphi控件

  cmd.exe這個東西是Windows系統自帶的執行Dos的一個灰常好的人機指令互動的執行方式,現在很多腳本語言也都帶有這種即時解釋的人機模式。當下由于工程的需要,也要做一個類似指令解釋顯示的編輯器,基本上完全模拟Cmd.exe的這種互動模式,昨天,基本上搞定了這種指令行的編輯器,這個東西的複雜之處就是在于編輯文字的處理,顯示相對來說要容易的多,而編輯中最麻煩的一環就是多種處理模式,比如選中,粘貼,複制等,選中相對來說應該是最麻煩的,我這個也暫時沒實作這幾個編輯功能。文字的插入相對比較容易點,記錄位置,插入就行了。實際上在中文的輸入處理上應該也很麻煩(如果你用的是Delphi2009之前的版本的話),不過,現在用的是Delphi XE作為開發工具,相對來說就要容易很多很多了,因為有了Unicode的支援,可以直接通過WM_Char來獲得漢字了,不像以前要處理很多很多代碼的。至于指令的顯示,就更容易了,計算位置,插入,顯示,這個編輯器就完成了,如果加上類似文本編輯器的那種編輯操作的話,就更爽了,如果在加上一個和Delphi寫代碼一樣有代碼提示這種指令提示功能就更加爽大發咯!呵呵,不過那些都是後話,目前也就僅僅完成一個基本功能,算是能模拟cmd.exe這種編輯器的90%的功能了吧。目前的控件,算是實作了一個個小小的目的了吧,記錄一下日志。同時拟定一個下一步目标,就是編輯功能完善,指令代碼提示功能實作。(不過也不曉得要到什麼時候了,可能需要這種功能的時候才會要去繼續添加這種方式的實作了,畢竟是比較複雜的玩意,就那個選擇的,我本來打算實作的,想了一下,多行選擇,單行選擇,選擇文字和非選擇文字的截斷,分段繪制,我都蛋疼了,是以就暫時不想去實作,也是自己懶吧,^_^!不過無所謂了,目前功能基本上夠用了。使用本指令編輯器基本上可以模拟Python,Erlang等直接指令行表達式的執行的小型指令行解釋器了,呵呵)來兩個圖

<a href="http://files.cnblogs.com/DxSoft/DxCmd.rar">Demo.exe下載下傳</a>

這就是這個指令編輯器的基本模式,指令可以自己随意定義響應了。然後我通過這個基本模式的控件繼承實作了一個Cmd.exe的編輯器控件,可以直接模拟Cmd.exe的指令輸入與顯示了

設計界面如下

運作的樣子

本文轉自 不得閑 部落格園部落格,原文連結:   http://www.cnblogs.com/DxSoft/archive/2011/06/07/2074720.html,如需轉載請自行聯系原作者

繼續閱讀