Gambas/FAQ
返回 Gambas
參見 http://sourceforge.net/mailarchive/forum.php?forum=gambas-user
如果你想在專案中使用一些熱鍵,你可以編寫以下程式碼
Public sub Form_KeyPress () If key.code = ... then Something happens
不幸的是,這隻有在窗體沒有按鈕和其他控制元件的情況下才能工作。如果窗體有其他控制元件,並且其中一個控制元件獲得了焦點,則它將無法工作。
QT 元件中還沒有用於全域性攔截鍵盤事件的介面,但有一個技巧
如果你在窗體中有一個選單,它的鍵盤快捷鍵將被全域性管理。因此,你可以向窗體新增一個隱藏的選單來解決你的問題。
是否可以使用 Gambas 編寫 KDE 面板小程式?
不,目前還不能做到。KDE 面板小程式作為具有特定介面的共享庫實現。
如何在一個現有項之後新增列表檢視項,如果缺失了一個項
錯誤:Listview.add("Key","Name",,"Key2") -- 錯誤:缺少逗號。
你必須將 NULL 作為圖片引數傳遞。在 Gambas 中呼叫函式時,你不能“跳過”引數。
Listview.add("Key","Name",NULL,"Key2")
在某些版本的 basic 中,可以使用型別定義來建立結構化資料型別,如下所示
' This will not work in Gambas TYPE rhubarbstructure foo AS STRING * 32 bar AS INTEGER END TYPE
PUBLIC rhubarb AS rhubarbstructure
目前,Gambas 不支援 TYPE 關鍵字。相反,你可以使用 STRUCT 或 STRUCT[] 關鍵字。
此外,還可以使用類定義 來達到相同的效果。
在 gambas 中,要從主例程啟動應用程式
- 建立一個名為 MMain 的新模組
- 在 MMain 模組中,建立一個名為 Main 的公共子程式,如下所示
PUBLIC SUB Main() ' This is the start of the program END
- 右鍵單擊 MMain 模組,然後從上下文選單中選擇啟動類
PUBLIC SUB main()
' This reads and displays the command line parameters
DIM l AS Integer
DIM numparms AS Integer
DIM parm AS String
numparms = Application.Args.Count
FOR l = 0 TO numparms - 1
parm = Application.Args[l]
PRINT l; " : "; parm
NEXT
END SUB
在 gambas 中,確定適合螢幕的最大視窗大小的技巧是建立一個最大化的窗體,然後從 Form_Resize() 事件中查詢其尺寸。請注意,在這個過程中窗體可以是不可見的,通常我們會使用主模態視窗(在本例中為 FMain)。
從專案中建立一個窗體(FMain),並設定以下屬性
FMain.Maximized = True FMain.Visible = False ' The form can be invisible
從專案檢視中,右鍵單擊 FMain 窗體並從上下文選單中選擇“編輯類”。這將顯示一個窗體類檔案 (FMain.class),如下所示
PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
END
現在,我們可以將 Form_Resize() 事件新增到類檔案中,並新增必要的程式碼來獲取螢幕尺寸,如下所示
PUBLIC SUB Form_Resize() PRINT "The maximum window size that can be used is "; FMain.Width; " x "; FMain.Height END