标题:詳解VFP編程之一:創建項目
取消只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
 问题点数:0 回复次数:2 
詳解VFP編程之一:創建項目
從零開始,創建一個項目(Project):

啟動VFP,在命令窗口鍵入如下指令:
CREATE PROJECT "D:\Test\Test"


這條指令的意思,是創建(create)一個工程項目(project),項目的名稱叫Test,對應項目文件test.pjx和test.pjt(前者是一個數據表dbf,後者是這個dbf附屬的備註文檔dbt),這個項目建立在文件夾D:\Test子目錄下。

需要注意的是,文件夾D:\Test必須事先存在,若不存在,應先建立之,命令如下:
MD "D:\Test"        && MD是Make Directory的意思,建立目錄


以上命令,與使用菜單<File><New><Project>的效果相同,當你點選菜單或按下Ctrl+N之後,會在命令窗口看到對應的命令行(這是學習VFP指令的辦法之一)。若是用對話框,參考下圖:


創建項目之後,在界面上我們會看到如下畫面:


[此贴子已经被作者于2016-2-3 23:08编辑过]

搜索更多相关主题的帖子: create 工程 
2016-02-03 23:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
創建項目之後,應該調整一下其屬性。在項目框的空白處,點擊鼠標右鍵,選Project Info...,彈出如下對話框:


這裏,解釋一下用得著的屬性:

Author: 軟件作者
Company: 軟件公司
Home: 項目所在的目錄
Debug Info: 允許調試程序
Encrypted: 對編譯過的偽代碼簒入亂碼進行加密
Attach Icon: 編譯後軟件的圖標

Home是很關鍵的屬性,當你的程序在VFP Screen開發環境(IDE)中執行時,可以使用這個屬性獲取項目的文件夾,而不是使用VFP默認在系統文件夾中的目錄。這個目錄可以通過Application對象的屬性獲得,即Application.ActiveProject.HomeDir,當代碼把SET DEFAULT TO指向到這個目錄時,它就是本項目的默認目錄,創建和讀寫文件優先在這個文件夾中。應在代碼中使用這個屬性獲取目錄,不要寫硬代碼把路徑嵌入在程序中,這樣才可以使你的軟件讓用戶安裝在任意目錄。

Debug Info允許調試程序,它會在編譯後的可執行代碼中嵌入調試信息,那麽即使你把程序編譯爲獨立可執行.exe文件,也仍然可以被別人從VFP IDE中調試它,從而源代碼暴露無遺。通常,在開發階段,我們開啟這個開關,在最終完成發佈時,關閉它。帶調試代碼的.exe文件比不帶的要稍大一些。

Encrypted是加密編譯開關,它阻止.exe程序被反編譯。但是,經我測試,某些強力反編譯工具可以反編譯加密後的VFP9程序,但僅限於其中SCX寫的部分,對用PRG寫的代碼,它是反編譯不了的。

[此贴子已经被作者于2016-2-3 23:32编辑过]


授人以渔,不授人以鱼。
2016-02-03 23:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用mywisdom88在2016-2-4 09:49:34的发言:


对于红色部分,比如我安装程序在 D:\Test中,Application.ActiveProject.HomeDir的值不是D:\Test
如果把把这个目录复制到E盘去运行,如 E:\Test,此时,Application.ActiveProject.HomeDir是?D:\Test还是E:\Test

我那段説了,這是在VFP開發IDE中用的。這個屬性記錄在.pjx/.pjt表中,是靜態的,當你把項目复製到別的目錄,表中的數據並沒有改動,則仍然指向原來的目錄。我還説了,你要主動用才有用,當你把SET DEFAULT TO指向這個目錄時,才起那樣的作用。但是,我們發佈程序,是不會把項目源代碼發出去的,release時必定編譯爲獨立可執行文件,在此狀態下不存在這個對象(ActiveProject)也沒有這個屬性。所以在我們的源代碼中,首先要判斷程序是在VFP IDE中執行還是在.exe中執行,具體示範用法在我以前發過的代碼中有。

程序編譯爲獨立.exe形式,它的默認當前目錄是這個.exe文件自身所在的目錄。

用法代碼:
程序代码:
    IF Application.StartMode == 0
        SET DEFAULT TO (Application.ActiveProject.HomeDir)
        SET PATH TO ADDBS(Application.ActiveProject.HomeDir) + "Source" ADDITIVE 
    ENDIF 



[此贴子已经被作者于2016-2-4 13:53编辑过]


授人以渔,不授人以鱼。
2016-02-04 13:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-461562-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.175322 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved