菜單權限設定 問題 |
缺席
|
dengguo
一般會員 發表:41 回覆:49 積分:23 註冊:2004-01-09 發送簡訊給我 |
我在做菜單權限控制時,將菜單項存入數據庫如(N1,N2,N5...等等MENU菜單名稱)
然後在登錄後主FORM建立時,取出相應用戶的權限項...
ADOQUERY1.FIELDBYNAME('權限').ASSTRING這樣的類型,不能使用(提示類型不符)
ADOQUERY1.FIELDBYNAME('權限').ASSTRING.ENABLED:=FALSE;
(程序中可用N1.ENABLED:=FALSE;來讓菜單不能被操作)
請問我要如何轉換才能改變MENU菜單的ENABLED屬性,從而使不具備該權限的用戶MENU菜單不可用...
謝謝!! ###############################
初學delphi,請各位多多提點!謝謝!
###############################
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
dengguo
一般會員 發表:41 回覆:49 積分:23 註冊:2004-01-09 發送簡訊給我 |
timhuang,謝謝你的回復,我已用另一方法將此問題解決
-----------------------------------------
procedure TForm2.bsSkinButton1Click(Sender: TObject);
var
SL1,SL2:TstringList;
i:integer;
begin
ADOquery1.close;
ADOquery1.sql.text:='select * from loginuser where username='''+bsSkinEdit1.text+'''';
ADOquery1.open;
if ADOQuery1.eof then
begin
application.MessageBox(pchar('用戶名有誤,請重新輸入!'),'登錄失敗',mb_iconError);
abort;
end;
if ADOQuery1.fieldbyname('pwd').asstring<>bsSkinPasswordEdit1.text then
begin
application.MessageBox(pchar('密碼有誤,請重新輸入!'),'登錄失敗',mb_iconError);
abort;
end;
if ADOQuery1.fieldbyname('pwd').asstring=bsSkinPasswordEdit1.text then
begin
form1:=tform1.create(application);
SL1:=TstringList.Create;
ExtractStrings([','],[' '],pchar(ADOQuery1.fieldbyname('qx').asstring),SL1);
for i:=0 to SL1.Count-1 do
begin
SL2:=TstringList.Create;
ExtractStrings(['-'],[' '],pchar(SL1.strings[i]),SL2);
form1.bsSkinMainMenu1.Items[strtoint(SL2.strings[0])].Items[strtoint(SL2.strings[1])].Enabled:=false;
SL2.Free;
end;
SL1.Free;
form1.show;
form2.Visible := false;
end;
end; ###############################
初學delphi,請各位多多提點!謝謝!
###############################
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |