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

螢幕解析度的問題

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



註冊時間: 2007-01-03
文章: 228
來自: 台北市

第 1 樓

發表發表於: 星期一 一月 15, 2007 10:32 am    文章主題: 螢幕解析度的問題 引言回覆

先感謝 版主 及 各位 前輩 有了這個網站 為我解決了不少的問題 相當的感謝各位
螢幕解析度的問題 參考了 此程式 研究了幾天 或許是本人的程度不夠 有些地方無
法理解 程式如下

IF SYSMETRIC(1) <> 800 &&&&&& *-- 重新調整表單的大小和位置
PUBLIC M->SCR_WID , M->SCR_HIG
STORE ( SYSMETRIC(1) / 800 ) TO M->SCR_WID
STORE ( SYSMETRIC(2) / 600 ) TO M->SCR_HIG

WITH THIS
.WIDTH = .WIDTH * M->SCR_WID
.HEIGHT = .HEIGHT * M->SCR_HIG
.LEFT = .LEFT * M->SCR_WID
.TOP = .TOP * M->SCR_HIG

FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR
ENDWITH

WITH THISFORM.SYS_PAGE.客戶管理
FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR
ENDWITH

WITH THISFORM.SYS_PAGE.開立帳單
FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR
ENDWITH

WITH THISFORM.SYS_PAGE.出國行程
FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR
ENDWITH

WITH THISFORM.SYS_PAGE.其他作業
FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR
ENDWITH
ENDIF

************************************************************
問題 1 : 如何將 WITH THISFORM.SYS_PAGE.客戶管理
WITH THISFORM.SYS_PAGE.開立帳單
WITH THISFORM.SYS_PAGE.出國行程
WITH THISFORM.SYS_PAGE.其他作業 這 4 PAGE 程式簡化
像是 WITH 裡的 FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT 而不用每
個 PAGE 都來一次 FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT

問題 2 : FONTSIZE 解決了 但 字型 如何 寫

感謝各位 的再次指導
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
Patrick Wu



註冊時間: 2007-01-03
文章: 228
來自: 台北市

第 2 樓

發表發表於: 星期一 一月 15, 2007 1:02 pm    文章主題: 引言回覆

.BUTTONS[nCONTROLLOOP].FONTNAME = "新細明體"
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 3 樓

發表發表於: 星期一 一月 15, 2007 3:21 pm    文章主題: 引言回覆

建議用副程式解決繁瑣重複的問題. 或是提醒你一下 form 也有 CONTROLCOUNT 就像你用 .controls( ? ) 一樣
thisform.setsize( THISFORM.SYS_PAGE.客戶管理 )
thisform.setsize( THISFORM.SYS_PAGE.開立帳單 )
..
....
*setsize 自定的 method
lpara mobj
with mobj

FOR nCONTROLLOOP = 1 TO .CONTROLCOUNT
.CONTROLS[nCONTROLLOOP].WIDTH = .CONTROLS[nCONTROLLOOP].WIDTH * M->SCR_WID
.CONTROLS[nCONTROLLOOP].HEIGHT = .CONTROLS[nCONTROLLOOP].HEIGHT * M->SCR_HIG
.CONTROLS[nCONTROLLOOP].LEFT = .CONTROLS[nCONTROLLOOP].LEFT * M->SCR_WID
.CONTROLS[nCONTROLLOOP].TOP = .CONTROLS[nCONTROLLOOP].TOP * M->SCR_HIG

IF PEMSTATUS(.CONTROLS[nCONTROLLOOP],"FONTSIZE",5)
.CONTROLS[nCONTROLLOOP].FONTSIZE = .CONTROLS[nCONTROLLOOP].FONTSIZE * M->SCR_HIG
ENDIF
ENDFOR

endwith

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Patrick Wu



註冊時間: 2007-01-03
文章: 228
來自: 台北市

第 4 樓

發表發表於: 星期二 一月 16, 2007 12:42 pm    文章主題: 引言回覆

謝謝 Garfield 的指導 但 LPARAMETERS MOBJ 為何 VFP 不吃 (無效的命令) 請再次提示 謝謝 (或許我的程度真的很低 請不佞指教)
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 5 樓

發表發表於: 星期二 一月 16, 2007 1:52 pm    文章主題: 引言回覆

要在你的 form 裡增加一個自定的"方法程序"(method ) 它的名字叫 setsize
lpara mobj 這行以後的程式碼就放在這個 method 裡面

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Patrick Wu



註冊時間: 2007-01-03
文章: 228
來自: 台北市

第 6 樓

發表發表於: 星期二 一月 16, 2007 2:34 pm    文章主題: 引言回覆

謝謝 Garfield 的指導
在 form 裡增加一個自定的"方法程序"(method ) 它的名字叫 setsize => 我做了 再試試 謝謝
我會努力的學習
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
Patrick Wu



註冊時間: 2007-01-03
文章: 228
來自: 台北市

第 7 樓

發表發表於: 星期二 一月 16, 2007 2:41 pm    文章主題: 引言回覆

謝謝 Garfield 的指導 測試 成功 相當的感謝
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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