unit UnitMain;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Menus, ComCtrls, ExtCtrls, DB, ADODB,Dialogs;type
  TFrmMain = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    N18: TMenuItem;
    N19: TMenuItem;
    N22: TMenuItem;
    menu: TADOQuery;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    Procedure ADDItem;
    { Private declarations }
  public
    { Public declarations }
    Bitmap: TBitmap;
    Loged: integer;
    UserName: string;
    procedure Init(P: integer);
  end;var
  FrmMain: TFrmMain;
  aItems: array of TMenuItem;implementationuses UnitLogin, UnitYiBiao , unitkufang ,unitddiao ,
 unitdm,UNittranse, querytranse,unitxitong, qdiandiao ,
 fYIBIAOQUERY,querykufang,unituser,unitrizhi,rizhiquery,unitabout;
{$R *.dfm}procedure TFrmMain.N2Click(Sender: TObject);
begin
  FrmLogin := TFrmLogin.Create(application);
  With FrmLogin do
  Try
     Init(ShowModal)
  finally
      Free;
  end;
end;procedure TFrmMain.N3Click(Sender: TObject);
begin
  if MessageBox(Handle, '是否真要退出?', '提示', MB_ICONQUESTION or MB_YESNO) = idYes then
    Close;
end;procedure TFrmMain.Init(P: integer);
begin
  case P of
    0:
      begin
        N2.Enabled := True;
        N20.Enabled := False;
        N3.Enabled := True;
       
        N18.Enabled := False;
        N22.Enabled := False;
        StatusBar1.Panels[0].Text := '无用户登陆';
      end;
    1:
      begin
        N2.Enabled := True;
        N20.Enabled := True;
        N3.Enabled := True;
        N8.Enabled := True;
        N9.Enabled := True;
        
        N17.Enabled := True;
        N18.Enabled := true;
        N22.Enabled := True;
        StatusBar1.Panels[0].Text := '超级用户';
        StatusBar1.Panels[1].Text := '当前用户:' + UserName;
      end;
    2:
      begin
        N2.Enabled := True;
        N20.Enabled := False;
        N3.Enabled := True;
        N8.Enabled := True;
        N9.Enabled := True;
        N10.Enabled := True;
        
        N18.Enabled := False;
        N22.Enabled := True;
        StatusBar1.Panels[0].Text := '管理用户';
        StatusBar1.Panels[1].Text := '当前用户:' + UserName;
      end;
    3:
      begin
        N2.Enabled := True;
        N20.Enabled := False;
        N3.Enabled := True;
        N22.Enabled := True;
        StatusBar1.Panels[0].Text := '普通用户';
        StatusBar1.Panels[1].Text := '当前用户:' + UserName;
      end;
  end;
end;procedure TFrmMain.FormCreate(Sender: TObject);
var
  year, month, day: word;
begin
  Bitmap := TBitmap.Create;
  Bitmap.LoadFromFile('images\background.bmp');
  Loged := 0;
  Init(Loged);
  decodedate(date, year, month, day);
  StatusBar1.Panels[2].Text := '     ' + IntToStr(year) + '年' +
    IntToStr(month) + '月' + IntToStr(day) + '日' + '      ';
  StatusBar1.Panels[3].Text := formatdatetime('hh:nn:ss', time);
end;procedure TFrmMain.FormDestroy(Sender: TObject);
begin
  Bitmap.Free;
end;procedure TFrmMain.FormPaint(Sender: TObject);
var
  x, y: integer;
begin
  y := 0;
  while y < ClientHeight do
  begin
    x := 0;
    while x < ClientWidth do
    begin
      Canvas.Draw(x, y, Bitmap); 
      x := x + Bitmap.Width;
    end;
    y := y + Bitmap.Height;
  end;
end;procedure TFrmMain.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[3].Text := FormatDateTime('hh:nn:ss', time);
end;procedure Tfrmmain.Pro_Click;
begin
    transe:=Ttranse.Create(application);
    transe.show;
    transe.Caption  :=(Sender as TMenuItem).caption;
end;procedure TFrmMain.ADDItem;
var I:integer;
begin
if (loged=1) or (loged=2) then
  begin
  with menu do
  begin
    close;
    SQL.clear;
    sql.add(' select * from 传输系统 order by xuhao ');
    Open;
    SetLength(aItems,recordCount);
    for i:=0 to recordCount-1 do
    begin
     aItems[i]:=TMenuItem.Create(N4);
     aItems[i].Name :='m'+trim(Fieldbyname('xuhao').asstring);
     aItems[i].Caption :=    trim(Fieldbyname('name').asstring);
     aItems[i].OnClick:=Pro_Click;
     N4.Add(aItems[i]);
    Next;
 end;
    end ;
    end ;end;procedure TFrmMain.FormShow(Sender: TObject);
begin
  ADDItem;
end;
end.
请教上面,procedure TFrmMain.Init(P: integer);
begin
  case P of
中p的值是哪里来的,从那个地方的到的,我想把他在付给loged变量,怎么做!

解决方案 »

  1.   

    P就是Init(P: integer);loged:=p;  就可以了
      

  2.   

    procedure TFrmMain.ADDItem;
    var I:integer;
    begin
    if loged in [1,2] then  //请高手指教,错了吗
      begin
      with menu do
      begin
        close;
        SQL.clear;
        sql.add(' select * from 传输系统 order by xuhao ');
        Open;
        SetLength(aItems,recordCount);
        for i:=0 to recordCount-1 do
        begin
         aItems[i]:=TMenuItem.Create(N4);
         aItems[i].Name :='m'+trim(Fieldbyname('xuhao').asstring);
         aItems[i].Caption :=    trim(Fieldbyname('name').asstring);
         aItems[i].OnClick:=Pro_Click;
         N4.Add(aItems[i]);
        Next;
     end;
        end ;
        end ;end;
    //if loged in [1,2] then  //如果注释掉,程序正常!,是在不知道怎么搞的!
      

  3.   

    procedure TFrmMain.Init(P: integer);
    begin
      case P of
        0:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := False;
            N10.Enabled := False;
            N11.Enabled := False;
            N12.Enabled := False;
            N13.Enabled := False;
            N14.Enabled := False;
            N16.Enabled := False;
            N17.Enabled := False;
            N18.Enabled := False;
            N22.Enabled := False;
            loged:=p;
            StatusBar1.Panels[0].Text := '无用户登陆';
          end;
        1:
          begin
            N2.Enabled := True;
            N20.Enabled := True;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := True;
            N10.Enabled := True;
            N11.Enabled := True;
            N12.Enabled := True;
            N13.Enabled := True;
            N14.Enabled := True;
            N16.Enabled := True;
            N17.Enabled := True;
            N18.Enabled := true;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '超级用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName ;
          end;
        2:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := True;
            N10.Enabled := True;
            N11.Enabled := True;
            N12.Enabled := True;
            N13.Enabled := True;
            N14.Enabled := True;
            N15.Enabled := True;
            N16.Enabled := false;
            N17.Enabled := True;
            N18.Enabled := False;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '管理用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName;
          end;
        3:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := False;
            N10.Enabled := True;
            N11.Enabled := False;
            N12.Enabled := True;
            N13.Enabled := False;
            N14.Enabled := True;
            N15.Enabled := True;
            N16.Enabled := false;
            N17.Enabled := True;
            N18.Enabled := False;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '普通用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName;
          end;
      end;
    end;
    procedure TFrmMain.ADDItem;
    var I:integer;
    begin
    if loged in [1,2] then  //请高手指教,错了吗
      begin
      with menu do
      begin
        close;
        SQL.clear;
        sql.add(' select * from 传输系统 order by xuhao ');
        Open;
        SetLength(aItems,recordCount);
        for i:=0 to recordCount-1 do
        begin
         aItems[i]:=TMenuItem.Create(N4);
         aItems[i].Name :='m'+trim(Fieldbyname('xuhao').asstring);
         aItems[i].Caption :=    trim(Fieldbyname('name').asstring);
         aItems[i].OnClick:=Pro_Click;
         N4.Add(aItems[i]);
        Next;
     end;
        end ;
        end ;end;
    //if loged in [1,2] then  //如果注释掉,程序正常!,是在不知道怎么搞的!
    这是全部,你看看!
      

  4.   

    unit UnitMain;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Menus, ComCtrls, ExtCtrls, DB, ADODB,Dialogs;type
      TFrmMain = class(TForm)
        MainMenu1: TMainMenu;
        N1: TMenuItem;
        N2: TMenuItem;
        N3: TMenuItem;
        N4: TMenuItem;
        N5: TMenuItem;
        N6: TMenuItem;
        N7: TMenuItem;
        N8: TMenuItem;
        N9: TMenuItem;
        N10: TMenuItem;
        N11: TMenuItem;
        N12: TMenuItem;
        N13: TMenuItem;
        N14: TMenuItem;
        N15: TMenuItem;
        N16: TMenuItem;
        N17: TMenuItem;
        N20: TMenuItem;
        N21: TMenuItem;
        StatusBar1: TStatusBar;
        Timer1: TTimer;
        N18: TMenuItem;
        N19: TMenuItem;
        N22: TMenuItem;
        menu: TADOQuery;
        procedure N2Click(Sender: TObject);
        procedure N3Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormPaint(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
        procedure N11Click(Sender: TObject);
        procedure N9Click(Sender: TObject);
        procedure N13Click(Sender: TObject);
        procedure Pro_Click(sender:tobject);
        procedure FormShow(Sender: TObject);
        procedure N22Click(Sender: TObject);
        procedure N10Click(Sender: TObject);
        procedure N12Click(Sender: TObject);
        procedure N14Click(Sender: TObject);
        procedure N20Click(Sender: TObject);
        procedure N18Click(Sender: TObject);
        procedure N16Click(Sender: TObject);
        procedure N17Click(Sender: TObject);
        procedure N8Click(Sender: TObject);
      private
        Procedure ADDItem;
        { Private declarations }
      public
        { Public declarations }
        Bitmap: TBitmap;
        Loged: integer;
        UserName: string;
        procedure Init(P: integer);
      end;var
      FrmMain: TFrmMain;
      aItems: array of TMenuItem;implementationuses UnitLogin, UnitYiBiao , unitkufang ,unitddiao ,
     unitdm,UNittranse, querytranse,unitxitong, qdiandiao ,
     fYIBIAOQUERY,querykufang,unituser,unitrizhi,rizhiquery,unitabout;
    {$R *.dfm}procedure TFrmMain.N2Click(Sender: TObject);
    begin
      FrmLogin := TFrmLogin.Create(application);
      With FrmLogin do
      Try
         Init(ShowModal)
      finally
          Free;
      end;
    end;procedure TFrmMain.N3Click(Sender: TObject);
    begin
      if MessageBox(Handle, '是否真要退出?', '提示', MB_ICONQUESTION or MB_YESNO) = idYes then
        Close;
    end;procedure TFrmMain.Init(P: integer);
    begin
      case P of
        0:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := False;
            N10.Enabled := False;
            N11.Enabled := False;
            N12.Enabled := False;
            N13.Enabled := False;
            N14.Enabled := False;
            N16.Enabled := False;
            N17.Enabled := False;
            N18.Enabled := False;
            N22.Enabled := False;
            loged:=p;
            StatusBar1.Panels[0].Text := '无用户登陆';
          end;
        1:
          begin
            N2.Enabled := True;
            N20.Enabled := True;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := True;
            N10.Enabled := True;
            N11.Enabled := True;
            N12.Enabled := True;
            N13.Enabled := True;
            N14.Enabled := True;
            N16.Enabled := True;
            N17.Enabled := True;
            N18.Enabled := true;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '超级用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName ;
          end;
        2:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := True;
            N10.Enabled := True;
            N11.Enabled := True;
            N12.Enabled := True;
            N13.Enabled := True;
            N14.Enabled := True;
            N15.Enabled := True;
            N16.Enabled := false;
            N17.Enabled := True;
            N18.Enabled := False;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '管理用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName;
          end;
        3:
          begin
            N2.Enabled := True;
            N20.Enabled := False;
            N3.Enabled := True;
            N8.Enabled := True;
            N9.Enabled := False;
            N10.Enabled := True;
            N11.Enabled := False;
            N12.Enabled := True;
            N13.Enabled := False;
            N14.Enabled := True;
            N15.Enabled := True;
            N16.Enabled := false;
            N17.Enabled := True;
            N18.Enabled := False;
            N22.Enabled := True;
            loged:=p;
            StatusBar1.Panels[0].Text := '普通用户';
            StatusBar1.Panels[1].Text := '当前用户:' + UserName;
          end;
      end;
    end;procedure TFrmMain.FormCreate(Sender: TObject);
    var
      year, month, day: word;
    begin
      Bitmap := TBitmap.Create;
      Bitmap.LoadFromFile('images\background.bmp');
      Loged := 0;
      Init(Loged);
      decodedate(date, year, month, day);
      StatusBar1.Panels[2].Text := '     ' + IntToStr(year) + '年' +
        IntToStr(month) + '月' + IntToStr(day) + '日' + '      ';
      StatusBar1.Panels[3].Text := formatdatetime('hh:nn:ss', time);
    end;
      

  5.   

    procedure TFrmMain.FormDestroy(Sender: TObject);
    begin
      Bitmap.Free;
    end;procedure TFrmMain.FormPaint(Sender: TObject);
    var
      x, y: integer;
    begin
      y := 0;
      while y < ClientHeight do
      begin
        x := 0;
        while x < ClientWidth do
        begin
          Canvas.Draw(x, y, Bitmap); //注意
          x := x + Bitmap.Width;
        end;
        y := y + Bitmap.Height;
      end;
    end;procedure TFrmMain.Timer1Timer(Sender: TObject);
    begin
      StatusBar1.Panels[3].Text := FormatDateTime('hh:nn:ss', time);
    end;procedure TFrmMain.N11Click(Sender: TObject);
    begin
       FrmYiBiao :=TFrmYiBiao.Create(Application);
       FrmYiBiao.Show;
    end;procedure TFrmMain.N9Click(Sender: TObject);
    begin
    diandiao:=Tdiandiao.Create(application);
    diandiao.Show;
    end;procedure TFrmMain.N13Click(Sender: TObject);
    begin
    kufang:=tkufang.Create(application);
    kufang.Show;
    end;procedure Tfrmmain.Pro_Click;
    begin
        transe:=Ttranse.Create(application);
        transe.show;
        transe.Caption  :=(Sender as TMenuItem).caption;
    end;
    procedure TFrmMain.ADDItem;
    var I:integer;
    begin
    if loged in [1,2] then
      begin
      with menu do
      begin
        close;
        SQL.clear;
        sql.add(' select * from 传输系统 order by xuhao ');
        Open;
        SetLength(aItems,recordCount);
        for i:=0 to recordCount-1 do
        begin
         aItems[i]:=TMenuItem.Create(N4);
         aItems[i].Name :='m'+trim(Fieldbyname('xuhao').asstring);
         aItems[i].Caption :=    trim(Fieldbyname('name').asstring);
         aItems[i].OnClick:=Pro_Click;
         N4.Add(aItems[i]);
        Next;
     end;
        end ;
        end ;end;procedure TFrmMain.FormShow(Sender: TObject);
    begin
      ADDItem;
    end;procedure TFrmMain.N22Click(Sender: TObject);
    var
      querychuanshu: Tquerychuanshu;
    begin
    querychuanshu:= tquerychuanshu.create(application);
    querychuanshu.show;
    end;procedure TFrmMain.N10Click(Sender: TObject);
    begin
    queryddiao:=tqueryddiao.Create(application);
    queryddiao.Show;
    end;procedure TFrmMain.N12Click(Sender: TObject);
    begin
       frmYIBIAOQUERY:=tfrmYIBIAOQUERY.create(application);
       frmyibiaoquery.show;
    end;procedure TFrmMain.N14Click(Sender: TObject);
    begin
    qkufang:=tqkufang.Create(application);
    qkufang.Show;
    end;procedure TFrmMain.N20Click(Sender: TObject);
    begin
        form2:=tform2.Create(application);
        form2.Show;
    end;procedure TFrmMain.N18Click(Sender: TObject);
    begin
    Form3:=tform3.Create(application);
    form3.Show;
    end;procedure TFrmMain.N16Click(Sender: TObject);
    begin
      Form4:=tform4.Create(application);
      form4.Show;
    end;procedure TFrmMain.N17Click(Sender: TObject);
    begin
    form5:=tform5.Create(application);
    form5.Show;
    end;procedure TFrmMain.N8Click(Sender: TObject);
    begin
      guanyu:=tguanyu.Create(application);
      guanyu.Show;
    end;end.
    看看错!//if loged in [1,2] then  //如果注释掉,程序正常!,是在不知道怎么搞的!
    这是全部,你看看!
      

  6.   

    p是一个调用Init(P: integer)函数的传输变量。
    是调用时赋值的