2009-09-07 27 views

回答

2

如果你添加了代碼你有你的問題,它會更具描述性。

我寫一些代碼來證明撕紙菜單與GTKAda的使用,它不是那麼困難,但它可能是很難找到它的文檔:

function CreateFileMenu(tearOff : boolean) return Gtk_Menu is 
    fileMenu : Gtk_Menu; 
    newFile, loadFile, saveFile, saveAs, close : Gtk_Menu_Item; 
begin 
    -- Create the menu: 
    Gtk_New(fileMenu); 

    -- Add the tear off item to the menu if required: 
    if tearOff then 
     declare 
      tear : Gtk_Tearoff_Menu_Item; 
     begin 
      Gtk_New(tear); 
      Append fileMenu, tear); 
      Show(tear); 
     end; 
    end if; 

    -- Create the rest of the menu items: 
    Gtk_New_With_Mnemonic(newFile, "_New"); 
    Gtk_New_With_Mnemonic(loadFile, "_Load"); 
    Gtk_New_With_Mnemonic(saveFile, "_Save"); 
    Gtk_New_With_Mnemonic(saveAs, "Save _as..."); 
    Gtk_New_With_Mnemonic(close, "_Close"); 

    -- Add the items to the menu: 
    Add(fileMenu, newFile); 
    Add(fileMenu, loadFile); 
    Add(fileMenu, saveFile); 
    Add(fileMenu, saveAs); 
    Add(fileMenu, close); 

    return fileMenu; 
end CreateFileMenu; 

declare/begin/end結構允許您在運行時聲明變量。

boolean參數允許您在創建時決定是否要將其作爲撕下菜單。該功能只是創建菜單,因此您稍後必須將其添加到菜單欄(例如)。

+0

它確實有效!謝謝! – Carl 2009-09-07 13:00:21

1

不知道這是你在找什麼,但GtkAda參考手冊says

所有在GtkAda菜單可以「撕下」菜單,即你可以從他們的父母分開它們(無論是菜單欄還是其他菜單)都可以讓它們始終顯示在屏幕上)。

因此,聽起來好像你不必做任何事情。

+0

是的,但它們並沒有撕掉菜單,撕下菜單是一種可以將自己從菜單欄中分離出來並始終保持可見的菜單。 – Carl 2009-09-07 11:16:01

+0

但這正是參考手冊所說的。 – 2009-09-07 11:37:24

+0

感謝您的評論,但我會繼續關注它。 – Carl 2009-09-07 11:49:46