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

讓表單自動適應螢幕解析度(轉貼)

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



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期三 八月 13, 2003 11:17 am    文章主題: 讓表單自動適應螢幕解析度(轉貼) 引言回覆

讓表單自動適應螢幕解析度
( 作者: 紅虎 )


*-- 自動調整螢幕大小
*
*-- 函數 sysmetric(n)
*-- 參數含義及返回值
* 1 當前螢幕寬度
* 2 當前螢幕高度

*-- 如果當前螢幕的寬度不是預先在設計模式下設定的寬度,則進行對表單上控制項的自動調整
*-- 注釋: _DesignWidth 和 _DesignHeight 是人爲設定的程式運行的默認視窗大小


IF SYSMETRIC(1) <> This._DesignWidth

#DEFINE nHeightFactor SYSMETRIC(2) / This._DesignHeight && 默認爲 480
#DEFINE nWidthFactor SYSMETRIC(1) / This._DesignWidth && 默認爲 640

WITH THIS
*-- 重新調整表單的大小和位置
.Width = .Width && nWidthFactor
.Height = .Height && nHeightFactor
.Left = .Left && nWidthFactor
.Top = .Top && nHeightFactor

*-- 重新調整表單上的控制項的大小和位置
FOR nControlLoop = 1 TO .ControlCount
.Controls[nControlLoop].Width = .Controls[nControlLoop].Width && nWidthFactor
.Controls[nControlLoop].Height = .Controls[nControlLoop].Height && nHeightFactor
.Controls[nControlLoop].Left = .Controls[nControlLoop].Left && nWidthFactor
.Controls[nControlLoop].Top = .Controls[nControlLoop].Top && nHeightFactor

*-- 調整控制項字體大小
IF PEMSTATUS(.Controls[nControlLoop],"FontSize",5)
.Controls[nControlLoop].FontSize = INT(.Controls[nControlLoop].FontSize * nHeightFactor)
ENDIF

ENDFOR
ENDWITH
ENDIF


























VFP中最大化螢幕問題
( 作者: 紅虎 )

  常有人問起如何在VFP中實現螢幕最大化的問題,一次偶然,我發現了這個方法可以實現,遂將之寫下來,希望可以給大家帶來幫助

一、最大化頂層表單thisform.caption=""
thisform.minbutton=.f.
thisform.maxbutton=.f.
thisform.closable=.f.
thisform.movable=.f.
thisform.controlbox=.f.
thisform.borderstyle=0
thisform.height=sysmetric(2)
thisform.width=sysmetric(1)
thisform.left=0
thisform.top=0


二、最大化主窗口_screen.caption=""
_screen.minbutton=.f.
_screen.maxbutton=.f.
_screen.closable=.f.
_screen.movable=.f.
_screen.controlbox=.f.
_screen.borderstyle=0
_screen.height=sysmetric(2)
_screen.width=sysmetric(1)
_screen.left=0
_screen.top=0
另要在config.fpw文件中加入下面兩行
resource= off
sysmenu = off

VFP頂層表單中沒有編輯功能表時的粘貼操作
( 作者: 朱運喜 )

當你將表單設置爲頂層表單並獨立運行於Windows下,就會發現表單中複製粘貼功能失效,給實際工作造成極大的不便,從而使編制的軟體達不到專業水準。通過認真分析與實踐,筆者認爲,造成這一問題的原因是微軟設計VFP時,只考慮了位於系統選單下的表單的複製和粘貼情況,即位于系統選單下的表單可使用複製及粘貼熱鍵,而處於Windows下的表單完全脫離了系統選單的控制,因此複製及粘貼熱鍵失效。

解決的辦法是可在表單的控制項(本文舉例爲文本框)中,爲KeyPress Event編寫如下事件處理程式,該事件處理程式首先將選擇內容複製到Windows剪貼板上,然後再將剪貼板上的內容添加到控制項中。

KeyPress Event
LPARAMETERS nKeyCode, nShiftAltCtrl
if nkeycode=3
&& CTRL+C 複製
_cliptext=this.seltext
endif
if nkeycode=22
&& CTRL+V 粘貼
do case
case this.selstart=0
this.value=-cliptext+this.value
case this.selstart〉=1
and this.selstart〈=len(this.value)
this.value=subs(this.value,1,this.selstart)+
_cliptext+subs(this.value,this.selstart+1)
endcase
endif
thisform.grid1.column1.setfocus()
sele recetem
if not eof()
skip
endif
thisform.refresh

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################


Ruey 在 星期日 八月 24, 2003 10:50 am 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
Austin



註冊時間: 2004-02-21
文章: 20
來自: 台北

第 2 樓

發表發表於: 星期一 二月 23, 2004 6:45 am    文章主題: 自動調整螢幕大小 引言回覆

感謝 Ruey 的轉載文章, 對於新手啟蒙甚至 !
學習上述"自動調整螢幕大小"時, 像似需注意一點細節, 提供給同為新手的朋友參考:
1) 上述的執行, 在表單內的控制項, 其 AutoSize 屬性值需設為 .F. 才能獲得調整, 每本書的介紹控制項都交我們先將此屬性設為 .T.
2) 上述方法似乎只在當表單為最大化時很方便, 若原草擬的表單並非最大化時, 宜先於 Local 變數自設表單的 Top 與 Left 值, 然後用舊值乘以縮放比才獲得新值.
僅供"依樣畫葫蘆"不順的新手朋友參考, 如果我錯了,麻煩將此刪除, 總之, 謝謝 Ruey 與大夥們 !
Austin
回頂端
檢視會員個人資料 發送私人訊息
catjoke



註冊時間: 2003-06-16
文章: 175
來自: 香港

第 3 樓

發表發表於: 星期一 二月 23, 2004 2:09 pm    文章主題: 引言回覆

謝謝 Ruey兄, 請問第一篇 Resize 在 紅虎的那個網頁?
因為我要更正一下!

這種 Resize 不能處理 Container 的物件!
換言之, 如果有 PageFrame, Grid, Commandgroup, OptionalGroup等,
它不會令 PageFrame 內的 page 既 Controls 物件變大小!!
實際上要另加功夫才行!

_________________
喵喎~ 貓當然是 "茅" 的嘛! ^0^;
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


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


第 4 樓

發表發表於: 星期一 二月 23, 2004 5:28 pm    文章主題: 引言回覆

這是我今天才寫的, 還有一些缺點, 參考看看
使用方式, 將這個物件加到FORM中, 要做自動調整SIZE時,執行這個物件的 .start( ) 即可
代碼:

**************************************************
*-- Class:        autoresize (c:\base.vcx)
*-- ParentClass:  shape
*-- BaseClass:    shape
*-- Time Stamp:   02/23/04 05:18:05 PM
*-- 作者: 史嘉富
DEFINE CLASS autoresize AS shape


   Height = 17
   Width = 64
   Visible = .F.
   Name = "autoresize"


   PROCEDURE runresize
      Lpara mobj , mper
      Local mcount, amems , aproperties, i, mbaseclass
      local  mobj2,mcount2, amems2 , i2
      Dime amems[1] , aproperties[1]
      mcount = amembers( amems , mobj , 2)
      With mobj
         For i=1 to mcount      &&--針對這個物件所內含的物件一一設定
            Amembers( aproperties , .&amems[ i ] , 1)      &&--抓出子物件所有的屬性

            If ascan( aproperties , 'HEIGHT' ) > 0      &&-- HEIGHT大寫
               With .&amems[ i ]
                  .height = .height * mper
                  .width = .width * mper
                  .top = .top * mper
                  .left = .left * mper
               Endwith
            Endif
            If ascan( aproperties , 'FONTSIZE' ) > 0      &&-- fontsize 為大寫
               With .&amems[ i ]
                  .fontsize = .fontsize * mper
               Endwith
            Endif

            mbaseClass = upper(.&amems[ i ]..baseClass)
            do case
            case mbaseClass = 'PAGEFRAME'               &&--它的子項目有多個PAGE須設定
               Dime amems2[1]
               mobj2 = .&amems[ i ]
               mcount2 = amembers( amems2 , mobj2 , 2)
               With mobj2
                  for i2=1 to mcount2         &&--所有的PAGE都要做一次
                     *wait windows aproperties2[ j ]
                     **遞迴呼叫,設定它內含的物件
                     .&amems2[ i2 ]..fontsize = .&amems2[ i2 ]..fontsize * mper
                     This.runresize( .&amems2[ i2 ] , mper )
                  next
               endwith
            case mBaseClass $ 'FORM,COMMANDGROUP,CONTAINER,GRID,COLUMN,COMMANDBUTTON,OPTIONGROUP'      &&--須設定它的子項 , 請注意如果是用 CONTROL 這個物件是無法抓出它內含的物件
               **遞迴呼叫, 設定它內含的物件
               This.runresize( .&amems[ i ] , mper )
            Endcase
         Next
      Endwith
   ENDPROC


   PROCEDURE start
      with thisform
         local mper
         mper = thisform.width /.mAutoAdjFormSize
         if mper # 1
            .LockScreen = .T.
            this.runresize( thisform , mper )
            .LockScreen = .F.
            this.init( )
         endif
      endwith
   ENDPROC


   PROCEDURE Init
      with thisform
         .addproperty('mautoadjformSize')
         .mAutoAdjFormSize = thisform.width
         * 只針對FORM寬度有變動者做位置的調整
         * 程式未完成部份:   須將在 form.init( ) 中來執行一個可以將FORM中所有的物件的有關SIZE部份的資料先存起來一份
         *                再在次調整SIZE時皆可以以最原始的部份做比率的換算, 才不會多調幾次做失真的情形
         *               另外調整比率沒有超過10 % 可以設成不調整
      endwith
   ENDPROC


ENDDEFINE
*
*-- EndDefine: autoresize
**************************************************

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.


garfield 在 星期四 二月 03, 2005 4:23 pm 作了第 3 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
catjoke



註冊時間: 2003-06-16
文章: 175
來自: 香港

第 5 樓

發表發表於: 星期一 二月 23, 2004 5:43 pm    文章主題: 引言回覆

沒有這麼簡單啊!

Container 種類煩多:
CommandGroup, OptionalGroup 用的是 Buttons(), ButtonCount
Grid 用的是 Columns(), ColumnCount
....
你要一一處理它, 而非單一處理 pageframe -> pages(), pagecount
page 內也是 controls(), controlcount..
但若 page 內才有 grid, commandgroup...

不過, 你的嘗試很好, 要利用 recursion 來將 子子孫孫也 resize 清楚..
直至 根清 就止~

_________________
喵喎~ 貓當然是 "茅" 的嘛! ^0^;
回頂端
檢視會員個人資料 發送私人訊息
goto-dream



註冊時間: 2004-05-11
文章: 909


第 6 樓

發表發表於: 星期五 十二月 04, 2009 3:22 am    文章主題: 引言回覆

garfield大.
寶刀未老.依舊是那麼的利害~~~

感恩

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
chilin



註冊時間: 2003-10-01
文章: 79
來自: Taipei,Taiwan

第 7 樓

發表發表於: 星期五 十二月 04, 2009 1:31 pm    文章主題: 引言回覆

前些日子才做出類似FireFox的縮放字體功能,分享之。

使用方法:
快速鍵
[Ctrl +↑] : 放大視窗
[Ctrl +↓] : 縮小視窗
[Ctrl + 0] : 原設計視窗大小


1.底下的程式碼儲存為ZOOMFORM.PRG
引言回覆:

DEFINE CLASS ZOOMFORM AS CUSTOM
OBJDBF=""

**********************************
* 調整目前表單的大小
PROCEDURE RESIZE_NOW
**********************************
PARAMETER _TYPE
LOCAL NFORMS,OFORM

IF _SCREEN.FORMCOUNT=0
RETURN
ENDIF
=THIS.FASTKEY(0)
DO CASE
CASE _TYPE=1
SYS_HEIGHTFACTOR=SYS_HEIGHTFACTOR+0.05
CASE _TYPE=2
SYS_HEIGHTFACTOR=SYS_HEIGHTFACTOR-0.05
OTHERWISE
SYS_HEIGHTFACTOR= 1
ENDCASE
FOR NFORMS=1 TO _SCREEN.FORMCOUNT
OFORM=_SCREEN.FORMS[NFORMS]
=THIS.RESIZE(OFORM)
=THIS.RESIZE(OFORM)
ENDFOR
=THIS.FASTKEY(1)
ENDPROC

PROCEDURE FASTKEY
PARAMETERS _TYPE
IF _TYPE=0
ON KEY LABEL CTRL+0
ON KEY LABEL CTRL+UPARROW
ON KEY LABEL CTRL+DNARROW
ELSE
ON KEY LABEL CTRL+0 ZOOMFORM.RESIZE_NOW(0)
ON KEY LABEL CTRL+UPARROW ZOOMFORM.RESIZE_NOW(1)
ON KEY LABEL CTRL+DNARROW ZOOMFORM.RESIZE_NOW(2)
ENDIF
ENDPROC

****************************
* 重新調整表單的大小和位置
PROCEDURE RESIZE
****************************
PARAMETER O_FORM
LOCAL _OBJ,_OBJNAME,nHeightFactor,nWidthFactor,nControl,T_ALIAS
*RETURN .F.
T_ALIAS=ALIAS()
SELECT 0
IF NOT FILE(THIS.OBJDBF+[.DBF])
CREATE CURSOR OBJDBF (OBJNAME C(150),WIDTH N(10),HEIGHT N(10),LEFT N(10),TOP N(10),FONTSIZE N(10),RHEIGHT N(10),HHEIGHT N(10))
INDEX ON OBJNAME TAG OBJNAME
COPY TO (THIS.OBJDBF) WITH CDX
ENDIF
USE (THIS.OBJDBF) ORDER 1 ALIAS OBJDBF EXCLUSIVE
SELECT 0
SELECT MIN(FONTSIZE) FONTSIZE FROM OBJDBF WHERE FONTSIZE#0 INTO CURSOR OBJDBF1
_FONTSIZE=OBJDBF1.FONTSIZE*SYS_HEIGHTFACTOR
USE IN OBJDBF1
IF _FONTSIZE>0 AND _FONTSIZE<4
SYS_HEIGHTFACTOR=SYS_HEIGHTFACTOR+0.05
WAIT WINDOW [再縮小就看不到了!!!] TIMEOUT 2
USE IN OBJDBF
IF NOT EMPTY(T_ALIAS)
SELE (T_ALIAS)
ENDIF
RETURN .T.
ENDIF
SELECT OBJDBF
nHeightFactor = SYS_HEIGHTFACTOR
nWidthFactor = SYS_HEIGHTFACTOR
WITH O_FORM
.ScaleMode = 3
_OBJNAME=O_FORM.NAME+SPACE(1)
SEEK _OBJNAME
IF NOT FOUND()
APPEND BLANK
REPLACE OBJNAME WITH _OBJNAME
ENDIF
REPLACE WIDTH WITH IIF(EMPTY(WIDTH),.WIDTH,WIDTH)
REPLACE HEIGHT WITH IIF(EMPTY(HEIGHT),.HEIGHT,HEIGHT)
.Width = OBJDBF.Width*nWidthFactor && nWidthFactor
.Height = OBJDBF.Height*nHeightFactor && nHeightFactor
IF .AUTOCENTER=.F.
.Left = .Left*nWidthFactor && nWidthFactor
.Top = .Top*nHeightFactor && nHeightFactor
ENDIF
.FontName = SYS_FONTNAME

FOR nControl = 1 TO .ControlCount
_OBJ=.Controls[nControl]
_PARENT=O_FORM.NAME
=THIS.CHILD(_PARENT,_OBJ)
ENDFOR

IF .AUTOCENTER
.AUTOCENTER=.T.
ENDIF
.REFRESH
ENDWITH
USE IN OBJDBF
IF NOT EMPTY(T_ALIAS)
SELE (T_ALIAS)
ENDIF
RETURN .T.
ENDPROC

****************************
* 重新調整物件的大小和位置
PROCEDURE CHILD
****************************
PARAMETER _PARENTNAME,O_CHILD
LOCAL _PARENT,_OBJ,nHeightFactor,nWidthFactor,nPage,nColumn,nButton,nControl
nHeightFactor = SYS_HEIGHTFACTOR
nWidthFactor = SYS_HEIGHTFACTOR

_PARENT=_PARENTNAME
=THIS.SUBOBJ(_PARENT,O_CHILD,[])

IF UPPER(O_CHILD.BASECLASS)=[GRID]
_PARENT=_PARENTNAME
=THIS.GRID(_PARENT,O_CHILD)
ENDIF

IF INLIST(UPPER(O_CHILD.BASECLASS),[COMMANDGROUP],[OPTIONGROUP])
FOR nButton=1 TO O_CHILD.Buttoncount
_OBJ=O_CHILD.Buttons(nButton)
_PARENT=_PARENTNAME+[.]+O_CHILD.NAME
=THIS.SUBOBJ(_PARENT,_OBJ,[])
=THIS.SUBOBJ(_PARENT,_OBJ,[FONTSIZE])
ENDFOR
ENDIF

IF PEMSTATUS(O_CHILD,"ControlCount",5)
FOR nControl = 1 TO O_CHILD.ControlCount
_OBJ=O_CHILD.Controls[nControl]
_PARENT=_PARENTNAME+[.]+O_CHILD.NAME
=THIS.CHILD(_PARENT,_OBJ)
ENDFOR
ENDIF

IF UPPER(O_CHILD.BASECLASS)=[PAGEFRAME]
FOR nPage=1 TO O_CHILD.PageCount
_OBJ=O_CHILD.Pages[nPage]
_PARENT=_PARENTNAME+[.]+O_CHILD.NAME
=THIS.CHILD(_PARENT,_OBJ)
ENDFOR
ENDIF

IF PEMSTATUS(O_CHILD,"FontSize",5) AND NOT INLIST(UPPER(O_CHILD.BASECLASS),[GRID])
_PARENT=_PARENTNAME
=THIS.SUBOBJ(_PARENT,O_CHILD,[])
=THIS.SUBOBJ(_PARENT,O_CHILD,[FONTSIZE])
ENDIF
ENDPROC

****************************
* 重新調整子物件的大小和位置
PROCEDURE SUBOBJ
****************************
PARAMETERS PARENT_NAME,O_OBJ,O_TYPE
LOCAL _OBJ,_OBJ1,nHeightFactor,nWidthFactor,_OBJNAME
nHeightFactor = SYS_HEIGHTFACTOR
nWidthFactor = SYS_HEIGHTFACTOR
_OBJ=O_OBJ
_OBJNAME=PARENT_NAME+[.]+_OBJ.NAME+SPACE(1)
SELECT OBJDBF
SEEK _OBJNAME
IF NOT FOUND()
APPEND BLANK
REPLACE OBJNAME WITH _OBJNAME
ENDIF
IF PEMSTATUS(_OBJ,"FontSize",5) AND O_TYPE=[FONTSIZE]
REPLACE FONTSIZE WITH IIF(EMPTY(FONTSIZE),_OBJ.FONTSIZE,FONTSIZE)
_OBJ.FontSize = INT(OBJDBF.FontSize*nHeightFactor)
_OBJ.FontName = SYS_FONTNAME
RETURN
ENDIF
IF PEMSTATUS(_OBJ,"Width",5)
REPLACE WIDTH WITH IIF(EMPTY(WIDTH),_OBJ.WIDTH,WIDTH)
_OBJ.Width = OBJDBF.Width*nWidthFactor
ENDIF
IF PEMSTATUS(_OBJ,"Height",5)
REPLACE HEIGHT WITH IIF(EMPTY(HEIGHT),_OBJ.HEIGHT,HEIGHT)
_OBJ.Height = OBJDBF.Height*nHeightFactor
ENDIF
IF PEMSTATUS(_OBJ,"Left",5)
REPLACE LEFT WITH IIF(EMPTY(LEFT),_OBJ.LEFT,LEFT)
_OBJ.Left = OBJDBF.Left*nWidthFactor
ENDIF
IF PEMSTATUS(_OBJ,"Top",5)
REPLACE TOP WITH IIF(EMPTY(TOP),_OBJ.TOP,TOP)
_OBJ.Top = OBJDBF.Top*nHeightFactor
ENDIF
IF PEMSTATUS(_OBJ,"Alignment",5)
IF _OBJ.Alignment=1
_OBJ.LEFT=((OBJDBF.LEFT+OBJDBF.WIDTH)*nWidthFactor)-_OBJ.WIDTH
ENDIF
ENDIF
ENDPROC

****************************
* 重新調整GRID的大小和位置
PROCEDURE GRID
****************************
PARAMETERS PARENT_NAME,O_OBJ
LOCAL _OBJ,_OBJ1,nHeightFactor,nWidthFactor,_OBJNAME,_OBJ2,J2,_PARENT,_OBJ3,nColumn,nButton,nControl
nHeightFactor = SYS_HEIGHTFACTOR
nWidthFactor = SYS_HEIGHTFACTOR
_OBJ=O_OBJ
_OBJNAME=PARENT_NAME+[.]+_OBJ.NAME+SPACE(1)
SELECT OBJDBF
SEEK _OBJNAME
IF NOT FOUND()
APPEND BLANK
REPLACE OBJNAME WITH _OBJNAME
ENDIF
REPLACE RHEIGHT WITH IIF(EMPTY(RHEIGHT),_OBJ.ROWHEIGHT,RHEIGHT)
REPLACE HHEIGHT WITH IIF(EMPTY(HHEIGHT),_OBJ.HEADERHEIGHT,HHEIGHT)
_OBJ.ROWHEIGHT=OBJDBF.RHEIGHT*nHeightFactor
_OBJ.HEADERHEIGHT=OBJDBF.HHEIGHT*nHeightFactor
FOR nColumn=1 TO _OBJ.ColumnCount
_OBJ1=_OBJ.Columns[nColumn]
FOR J2=1 TO _OBJ1.ControlCount
_OBJ2=_OBJ1.Controls[J2]
_PARENT=PARENT_NAME+[.]+_OBJ.NAME+[.]+_OBJ1.NAME
=THIS.SUBOBJ(_PARENT,_OBJ2,[FONTSIZE])
IF INLIST(UPPER(_OBJ2.BASECLASS),[HEADER])
_OBJ2.Alignment=2
ENDIF
IF INLIST(UPPER(_OBJ2.BASECLASS),[COMMANDGROUP],[OPTIONGROUP])
FOR nButton=1 TO _OBJ2.Buttoncount
_OBJ3=_OBJ2.Buttons(nButton)
_PARENT=PARENT_NAME+[.]+_OBJ.NAME+[.]+_OBJ1.NAME+[.]+_OBJ2.NAME
=THIS.SUBOBJ(_PARENT,_OBJ3,[])
=THIS.SUBOBJ(_PARENT,_OBJ3,[FONTSIZE])
ENDFOR
ENDIF
ENDFOR
_OBJNAME=PARENT_NAME+[.]+_OBJ.NAME+[.]+_OBJ1.NAME+SPACE(1)
SEEK _OBJNAME
IF NOT FOUND()
APPEND BLANK
REPLACE OBJNAME WITH _OBJNAME
ENDIF
REPLACE WIDTH WITH IIF(EMPTY(WIDTH),_OBJ1.WIDTH,WIDTH)
_OBJ1.WIDTH=OBJDBF.WIDTH*nWidthFactor*1
IF PEMSTATUS(_OBJ1,"FontSize",5)
REPLACE FONTSIZE WITH IIF(EMPTY(FONTSIZE),_OBJ1.FONTSIZE,FONTSIZE)
_OBJ1.FontSize = INT(OBJDBF.FontSize*nHeightFactor)
_OBJ1.FontName = SYS_FONTNAME
ENDIF
ENDFOR
_OBJ.SCROLLBARS=_OBJ.SCROLLBARS
ENDPROC

**********************
PROCEDURE RELEASE
**********************
THIS.FASTKEY(0)
IF FILE(THIS.OBJDBF+[.DBF])
ERASE (THIS.OBJDBF+[.*])
ENDIF
IF TYPE([ZOOMFORM])=[O]
RELEASE ZOOMFORM
ENDIF
ENDPROC


ENDDEFINE


2.在你的主要PRG裡設置底下的程式碼
引言回覆:

PUBLIC SYS_FONTNAME,SYS_HEIGHTFACTOR
SYS_FONTNAME=[Arial]
SYS_HEIGHTFACTOR = SYSMETRIC(2) / 768 &&768 表示你表單設計最大區域的高度
SET PROCEDURE TO ZOOMFORM.PRG ADDITIVE
ZOOMFORM = CREATEOBJECT("ZOOMFORM")
ZOOMFORM.OBJDBF="_"+STRTRAN(TIME(),":","")+"-"+RIGHT(SYS(2015),7) &&暫存檔
IF FILE(ZOOMFORM.OBJDBF+[.DBF])
SELECT 0
USE (OBJDBF) EXCLUSIVE
ZAP
USE
ENDIF
ZOOMFORM.FASTKEY(1)


3.在你的FORM.INIT()裡加入
引言回覆:

WITH ZOOMFORM
.FASTKEY(0)
.RESIZE(THISFORM.NAME)
.FASTKEY(1)
ENDWITH


4.結束程式時記得
引言回覆:
ZOOMFORM.RELEASE



Good Luck !

_________________
一個喜愛Latte的男人
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
mp484



註冊時間: 2006-08-08
文章: 84


第 8 樓

發表發表於: 星期一 十月 01, 2012 11:53 am    文章主題: 引言回覆

測試以後發現會出現 o_form 資料型態不正確。

o_Form 不是一個物件!

請問該修正哪裡?
回頂端
檢視會員個人資料 發送私人訊息
chilin



註冊時間: 2003-10-01
文章: 79
來自: Taipei,Taiwan

第 9 樓

發表發表於: 星期二 十月 02, 2012 1:04 pm    文章主題: 引言回覆

FORM.INIT()

WITH ZOOMFORM
.FASTKEY(0)
.RESIZE(THISFORM) &&修正
.FASTKEY(1)
ENDWITH

_________________
一個喜愛Latte的男人
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
ezpos



註冊時間: 2011-04-20
文章: 323


第 10 樓

發表發表於: 星期四 七月 23, 2015 4:53 pm    文章主題: 引言回覆

請問大大

如何拉大 _SCREEN 框的大小
裡面的 form 自動跟著調整大小.....

_________________
ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我

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

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


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