Menu Login 問題 |
尚未結案
|
GDMichael
一般會員 發表:27 回覆:36 積分:12 註冊:2004-10-13 發送簡訊給我 |
小弟有個main menu,當user login後會先將menu所有功能disable,然後再跟據user的right去enable那些function,然而每一個menu item都可能有數層的menu item所作成..意思是最後一個的menu item可能是之前的menu item的sub menu,情況如下: System - Login
- Logout
- Exit Operation - Quotation
- Procedure - Purchase Order
- Sales Order
- Invoice 正如上面的例子...purchase order和quotation都是對應用戶作出顯示不同form的動作...但它們郤不是同一個level的... 我曾經寫個一個function,就係先處理只有一層的menu(即使用menu.item.count的方法),然後處理第二層,如此理推...如果下面一層的menu item全都是disable,那麼對應的上一層也會跟著disable,即是話,如果purchase order和sales order也是disable,那麼procedure也會跟著disable,反之亦然.... 但我的做法是要處理不同階層的menu,每層也要寫著相同的code,分別只是item要"."多少..即是MainMenu.Items[0].Items[0] 或 MainMenu.Items[0].. 請問各位有冇好方法可以增加效率呢?因為這樣作,如果sub menu的層數越多..那就越大堆相似的code... 請各位幫一幫忙,謝
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Recursion? e.g.
function IsItemEnabled(MenuItem: TMenuItem): boolean; var i: integer; begin Result := False; for i := 0 to MenuItem.Count-1 do Result := Result or IsItemEnabled(MenuItem.Items[i]); Result := Result or MenuItem.Enabled; end;Of course above codes are not tested < face='Lucida Console'>http://pywong.hk.st http://www.lazybones.ca 發表人 - william 於 2004/10/26 17:53:01 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |