VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

怎样枚举出窗体中所有的控件

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
forest



註冊時間: 2009-05-29
文章: 8


第 1 樓

發表發表於: 星期五 六月 19, 2009 11:49 pm    文章主題: 怎样枚举出窗体中所有的控件 引言回覆

有没有象VB中的语法
for each ctl in form.controls

next ctl
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 2 樓

發表發表於: 星期六 六月 20, 2009 2:36 am    文章主題: 引言回覆

就 FORM.CONTROLS

HELP 很重要

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
CCB2000



註冊時間: 2009-03-25
文章: 97


第 3 樓

發表發表於: 星期一 六月 22, 2009 9:54 am    文章主題: 引言回覆

please reference:

DEFINE class custom_setreadonly AS custom

FUNCTION savereadonly

PARAMETER q_container,m.q_containername

* q_container =
* m.q_containername =

this.setreadonly("SAVE",q_container,m.q_containername)

RETU

* END OF FUNCTION SAVEREADONLY.

FUNCTION setreadonly

PARAMETER m.q_readonly,q_container,m.q_containername

* m.q_readonly =
* q_container =
* m.q_containername =

IF TYPE("m.q_containername")#"C"
m.q_containername=""
ENDI

IF ALLTRIM(m.q_containername)==""
q_container=thisform
m.q_containername="THISFORM"
ENDI

IF !(TYPE("q_container")="O".AND.!isnull(q_container))
RETU
ENDI

PRIVATE q_controlparent,m.q_controlparentname
q_controlparent=q_container
m.q_controlparentname=m.q_containername

IF UPPE(ALLTRIM(q_controlparent.class))==UPPE(ALLTRIM("Custom_setreadonly"))
RETU
ENDI

PRIVATE m.q_ctrlcount
m.q_ctrlcount=0
DO CASE
CASE UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Pageframe"))
m.q_ctrlcount=q_controlparent.pagecount
PRIVATE m.q_nn
m.q_nn=1
DO WHILE m.q_nn<=m.q_ctrlcount
this.setreadonly(m.q_readonly,q_controlparent.pages(m.q_nn),m.q_controlparentname+".PAGES("+LTRIM(STR(m.q_nn,64))+")")
m.q_nn=m.q_nn+1
ENDDO
CASE UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Optiongroup")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Commandgroup"))
m.q_ctrlcount=q_controlparent.buttoncount
PRIVATE m.q_nn
m.q_nn=1
DO WHILE m.q_nn<=m.q_ctrlcount
this.setreadonly(m.q_readonly,q_controlparent.buttons(m.q_nn),m.q_controlparentname+".BUTTONS("+LTRIM(STR(m.q_nn,64))+")")
m.q_nn=m.q_nn+1
ENDDO
CASE UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Grid"))
m.q_ctrlcount=q_controlparent.columncount
PRIVATE m.q_nn
m.q_nn=1
DO WHILE m.q_nn<=m.q_ctrlcount
this.setreadonly(m.q_readonly,q_controlparent.columns(m.q_nn),m.q_controlparentname+".COLUMNS("+LTRIM(STR(m.q_nn,64))+")")
m.q_nn=m.q_nn+1
ENDDO
CASE UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Column"))
m.q_ctrlcount=q_controlparent.controlcount
PRIVATE m.q_nn
m.q_nn=1
DO WHILE m.q_nn<=m.q_ctrlcount
this.setreadonly(m.q_readonly,q_controlparent.controls(m.q_nn),m.q_controlparentname+".CONTROLS("+LTRIM(STR(m.q_nn,64))+")")
m.q_nn=m.q_nn+1
ENDDO
IF UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Column"))
DO CASE
CASE TYPE("m.q_readonly")="C".AND.UPPE(ALLTRIM(m.q_readonly))==UPPE(ALLTRIM("SAVE"))
IF TYPE("q_controlparent.READONLY")="L"
q_controlparent.addproperty("f_readonlydata")
q_controlparent.f_readonlydata=q_controlparent.readonly
ENDI
CASE TYPE("m.q_readonly")="L".AND.m.q_readonly=.T.
IF TYPE("q_controlparent.READONLY")="L"
q_controlparent.readonly=.T.
ENDI
CASE TYPE("m.q_readonly")="L".AND.!m.q_readonly=.T.
IF TYPE("q_controlparent.READONLY")="L"
IF TYPE("q_controlparent.f_readonlydata")="L"
q_controlparent.readonly=q_controlparent.f_readonlydata
ENDI
ENDI
ENDC
ENDI
CASE TYPE("q_controlparent.CONTROLCOUNT")="N"
m.q_ctrlcount=q_controlparent.controlcount
PRIVATE m.q_nn
m.q_nn=1
DO WHILE m.q_nn<=m.q_ctrlcount
this.setreadonly(m.q_readonly,q_controlparent.controls(m.q_nn),m.q_controlparentname+".CONTROLS("+LTRIM(STR(m.q_nn,64))+")")
m.q_nn=m.q_nn+1
ENDDO
OTHER
IF UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("CheckBox")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("ComboBox")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("EditBox")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("Spinner")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("TextBox"))
DO CASE
CASE TYPE("m.q_readonly")="C".AND.UPPE(ALLTRIM(m.q_readonly))==UPPE(ALLTRIM("SAVE"))
IF TYPE("q_controlparent.READONLY")="L"
q_controlparent.addproperty("f_readonlydata")
q_controlparent.f_readonlydata=q_controlparent.readonly
ENDI
CASE TYPE("m.q_readonly")="L".AND.m.q_readonly=.T.
IF TYPE("q_controlparent.READONLY")="L"
q_controlparent.readonly=.T.
ENDI
CASE TYPE("m.q_readonly")="L".AND.!m.q_readonly=.T.
IF TYPE("q_controlparent.READONLY")="L"
IF TYPE("q_controlparent.f_readonlydata")="L"
q_controlparent.readonly=q_controlparent.f_readonlydata
ENDI
ENDI
ENDC
ENDI
IF UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("*CheckBox")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("ComboBox")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("*Spinner")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("OLEBoundControl")).OR.;
UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("OptionButton"))
DO CASE
CASE TYPE("m.q_readonly")="C".AND.UPPE(ALLTRIM(m.q_readonly))==UPPE(ALLTRIM("SAVE"))
IF TYPE("q_controlparent.ENABLED")="L"
q_controlparent.addproperty("f_enableddata")
q_controlparent.f_enableddata=q_controlparent.enabled
ENDI
CASE TYPE("m.q_readonly")="L".AND.m.q_readonly=.T.
IF TYPE("q_controlparent.ENABLED")="L"
q_controlparent.enabled=.F.
ENDI
CASE TYPE("m.q_readonly")="L".AND.!m.q_readonly=.T.
IF TYPE("q_controlparent.ENABLED")="L"
IF TYPE("q_controlparent.f_enableddata")="L"
q_controlparent.enabled=q_controlparent.f_enableddata
ENDI
ENDI
ENDC
ENDI
IF UPPE(ALLTRIM(q_controlparent.baseclass))==UPPE(ALLTRIM("OLEControl"))
DO CASE
CASE TYPE("m.q_readonly")="C".AND.UPPE(ALLTRIM(m.q_readonly))==UPPE(ALLTRIM("SAVE"))
IF TYPE("q_controlparent.ENABLED")="L"
q_controlparent.addproperty("f_enableddata")
q_controlparent.f_enableddata=q_controlparent.enabled
ENDI
CASE TYPE("m.q_readonly")="L".AND.m.q_readonly=.T.
IF TYPE("q_controlparent.ENABLED")="L"
q_controlparent.enabled=.F.
ENDI
IF TYPE("q_controlparent.OBJECT.ENABLED")="L"
q_controlparent.object.enabled=.F.
ENDI
CASE TYPE("m.q_readonly")="L".AND.!m.q_readonly=.T.
IF TYPE("q_controlparent.ENABLED")="L"
IF TYPE("q_controlparent.f_enableddata")="L"
q_controlparent.enabled=q_controlparent.f_enableddata
ENDI
ENDI
IF TYPE("q_controlparent.OBJECT.ENABLED")="L"
IF TYPE("q_controlparent.f_enableddata")="L"
q_controlparent.object.enabled=q_controlparent.f_enableddata
ENDI
ENDI
ENDC
ENDI
ENDCASE

RETU

* END OF FUNCTION SETREADONLY.

enddefine

_________________
VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作