跳轉到內容

Gambas/FAQ

來自華夏公益教科書

返回 Gambas

參見 http://sourceforge.net/mailarchive/forum.php?forum=gambas-user

如果你想在專案中使用一些熱鍵,你可以編寫以下程式碼

Public sub Form_KeyPress ()
 If key.code = ... then
 Something happens

不幸的是,這隻有在窗體沒有按鈕和其他控制元件的情況下才能工作。如果窗體有其他控制元件,並且其中一個控制元件獲得了焦點,則它將無法工作。

QT 元件中還沒有用於全域性攔截鍵盤事件的介面,但有一個技巧

如果你在窗體中有一個選單,它的鍵盤快捷鍵將被全域性管理。因此,你可以向窗體新增一個隱藏的選單來解決你的問題。

KDE 面板小程式 ?

[編輯 | 編輯原始碼]

是否可以使用 Gambas 編寫 KDE 面板小程式?

不,目前還不能做到。KDE 面板小程式作為具有特定介面的共享庫實現。

列表檢視

[編輯 | 編輯原始碼]

如何在一個現有項之後新增列表檢視項,如果缺失了一個項

錯誤:Listview.add("Key","Name",,"Key2") -- 錯誤:缺少逗號。

你必須將 NULL 作為圖片引數傳遞。在 Gambas 中呼叫函式時,你不能“跳過”引數。

Listview.add("Key","Name",NULL,"Key2")

Gambas 支援結構化資料型別嗎?

[編輯 | 編輯原始碼]

在某些版本的 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 支援包含檔案嗎?

[編輯 | 編輯原始碼]

gambas 支援條件編譯指令嗎?

[編輯 | 編輯原始碼]

應用程式啟動

[編輯 | 編輯原始碼]

從主例程啟動應用程式

[編輯 | 編輯原始碼]

在 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
華夏公益教科書