 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
CPS0204
註冊時間: 2014-08-24 文章: 475
第 1 樓
|
發表於: 星期六 二月 15, 2025 2:14 pm 文章主題: foxpro9 有定錨及自適應視窗大小功能,很好用anchor |
|
|
問了一下gpt大神,foxpro9 有哪些好用的功能
他說有anchor
隨者form 放大縮小,grid 可以自動適應(anchor=1+2+4+8=15)
其他的請看 gpt 說明:
在 Visual FoxPro 9 (VFP9) 中,Anchor 屬性允許你控制 表單(Form) 上的 控制項(Controls) 在視窗縮放時如何變動位置與大小。這對於 自適應 UI 設計 非常有用。
⚡ 1. ANCHOR 屬性值的計算方式
ANCHOR 屬性是由 位元運算值 (Bitmask) 來控制:
1 = 固定 左 (Anchor to Left)
2 = 固定 上 (Anchor to Top)
4 = 固定 右 (Anchor to Right) → 會影響寬度
8 = 固定 下 (Anchor to Bottom) → 會影響高度
🔹 這些值可以 相加,來實現更複雜的效果:
Anchor 值 效果
3 (1+2) 固定左上角
5 (1+4) 左右延展 (固定高度)
10 (2+ 8 ) 上下延展 (固定寬度)
15 (1+2+ 4+ 8 ) 全螢幕自適應
⚡ 2. 實際範例
假設有一個 表單 (Form),裡面有一個 TextBox1 和 CommandButton1,我們希望:
TextBox1 在 視窗縮放時橫向延展(固定左側和右側)
CommandButton1 固定在 視窗右下角
✍ 設定 ANCHOR 屬性的方法
有兩種方式:(1) 透過屬性窗口,(2) 透過程式碼
(1) 在「屬性視窗」中設定
開啟表單 (Form Designer)
選擇 TextBox1:
在「屬性 (Properties)」窗口中找到 Anchor
設定為 5 (1 + 4),讓 TextBox 左右延展
選擇 CommandButton1:
設定 Anchor = 12 (4 + 8 ),讓按鈕固定在右下角
(2) 用程式碼動態設定
你也可以在 程式碼 中設定 Anchor,通常放在 Init() 事件中:
foxpro
複製
編輯
PROCEDURE Form1.Init
This.TextBox1.Anchor = 5 && 固定左側與右側 (隨視窗縮放變寬)
This.CommandButton1.Anchor = 12 && 固定右下角
ENDPROC
這樣當表單縮放時:
TextBox1 會隨著視窗變寬而變寬
CommandButton1 會一直保持在右下角
⚡ 3. 測試方法
執行表單 (DO FORM)
嘗試 縮放視窗
觀察控制項的大小與位置變化
這樣就可以實現 響應式 UI 了 🎯!
💡 4. ANCHOR 常見應用場景
🔹 擴展式輸入框 (Textbox, Editbox):
Anchor = 5 (1+4 ),讓輸入框可以隨視窗變寬。
🔹 固定按鈕在右下角 (CommandButton):
Anchor = 12 (4+8 ),當視窗變大,按鈕還是保持在右下角。
🔹 表格 (Grid) 的自適應:
Anchor = 15 (1+2+4+8 ),讓 Grid 自動擴展寬度和高度。
✅ 結論
Anchor 讓 VFP9 的表單更具彈性,不需要寫複雜的 Resize 事件。
使用 Anchor 可讓 UI 自適應不同螢幕大小,提高用戶體驗。
可以透過 屬性視窗 或 程式碼 (.Anchor = 值) 設定。 |
|
回頂端 |
|
 |
foxy

註冊時間: 2007-08-16 文章: 258 來自: 泰國
第 2 樓
|
發表於: 星期一 二月 17, 2025 11:17 am 文章主題: |
|
|
Anchor 的確不錯, 但有一個缺點,不能按照元件(object)本來的大小比例來放大
在 textbox (anchor=15) 的 click() 裡面輸入下列代碼:
WAIT WINDOW this.height
WAIT WINDOW thisform.height
WAIT WINDOW thisform.height-this.height
在放大form前後, click textbox, 上面的第3行 WAIT WINDOW thisform.height-this.height 都是固定數值, 沒有按照 textbox 和 form 的原來比列對textbox變更高度 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|