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

也是container的問題

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



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 1 樓

發表發表於: 星期一 十二月 20, 2010 7:49 pm    文章主題: 也是container的問題 引言回覆

借問一下,我在grid中,放了一個Container,奇怪的是...
當我改變column寬度時..Container,並不會跟著改變...
當然,我試了很多種方式,查了好幾小時的網頁...
都找不到資料...
想請教一下各位有經驗的同好們...你們可有方法解決此問題...
謝謝

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 2 樓

發表發表於: 星期二 十二月 21, 2010 4:43 pm    文章主題: 引言回覆

呼,終於試出來了
說明一下,為了方便英文語系的人也查得到
先定TITLE: Resize Container in the grid.

在class 中 設定新類別 NContainer
有1個textbox Name [CntInputBox]
有1個command Buttom Name [Qbuttom]

在NContainer的Resize 中寫
LPARAMETERS _width,_Height
=DODEFAULT()
WITH this
LOCAL Ln_width,Ln_height,Ln_pos
IF VARTYPE(_width)="L"
Ln_width=.Width
Ln_height=.Height
ELSE
Ln_width=_width
Ln_height=_Height
ENDIF
WITH .Objects[1]
.Width=Ln_width- 26 &&INT(Ln_width*0.8477)
.Height=Ln_height-1
Ln_pos=(.Width)+2
ENDWITH
WITH .Objects[2]
.Left=LN_POS
.Height=Ln_height-1
ENDWITH
ENDWITH
編寫完成後,儲存

把 NContainer 放入Grid 中的任一 Column中 假設名稱為 [CntColumn]

在CntColumn的resize 中加入
=DODEFAULT()
this.Refresh
THIS.NContainer.Resize()

在NContainer 的INIT 中加入
WITH this

.Width=THISFORM.GRID.CntColumn.Width-1
.Height=THISFORM.GRID.RowHeight
ENDWITH
=DODEFAULT()
在NContainer 的RESIZE 中加入
LPARAMETERS _width,_Height
WITH THISFORM.GRID
LOCAL Ln_width,Ln_height
Ln_width=.SGOODS_NO.Width
*!* .Width=Ln_width-1 &&無法執行的所在 ERROR
LN_HEIGHT=.RowHeight
*!* .Height=Ln_height-1 &&無法執行的所在 ERROR

=DODEFAULT(Ln_width,LN_HEIGHT)
.refresh
ENDWITH

也許先前我在問問題時漏了什麼,所以跑不出來,但是以上的結果,是我自己測出來的,我查了網頁,也有人在問類似的問題,大同小異,但無結果.
所以把他貼出來吧,不確定有沒有漏了什麼,如果有的話,請見諒...
最後的心得是...不要在意CONTAINER在GRID當中的尺寸,直接對它底下的物件進行控制即可...(不曉得有沒有說錯)

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 3 樓

發表發表於: 星期三 十二月 22, 2010 9:06 am    文章主題: 引言回覆

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

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



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 4 樓

發表發表於: 星期三 十二月 22, 2010 11:16 am    文章主題: 引言回覆

早上又測了一次
發現上面說的也只作了一半的工作而已,若是滑鼠移到grid左邊的資料列大小調整區拉動時,
container 的內容沒有跟著變動
所以又參考了這個網頁http://vfp.sunyear.com.tw/viewtopic.php?t=2597&highlight=GridHitTest
作了以下測試
給予一個公用變數 Ln_hitmark
在grid 的mousedown 事件中寫入

LPARAMETERS nButton, nShift, nXCoord, nYCoord
Ln_hitmark=0
LOCAL nWhere_Out, nRelRow_Out, nRelCol_Out
This.GridHitTest(nXCoord, nYCoord,@nWhere_Out, @nRelRow_Out, @nRelCol_Out)
IF nButton=1 AND nWhere_Out=14 &&左鍵和編調整區時
Ln_hitmark=14
ENDIF

在grid 的mousedup 事件中寫入
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton=1 AND Ln_hitmark=14 &&左鍵
this.CntColumn.Resize()
ENDIF

以上程式,即可徹底解決container在grid 中以mouse 拉放的問題...

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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