Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1260411
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-02-19 17:03:24



下面兩段代碼如何轉成   delphi   的,多謝  
   
  1.  
   
  int   Command,   i;  
      AnsiString   Name,Desc;  
      TLocateOptions   Opts;  
      Opts.Clear();  
      Opts   <<   loCaseInsensitive;  
   
      for   (i   =   0;   i   <   ComponentCount;   i++)  
          {  
          if   (dynamic_cast(Components[i]))  
                {  
                if   (!MENUENABLEDataSet->Locate("MENU",dynamic_cast(Components[i])->Name,Opts))  
                    {  
                      dynamic_cast(Components[i])->Enabled   =   false;  
                    }  
                }  
            }  
   
   
  2.  
   
        int   i,Command;  
        AnsiString   Name,Desc;  
        for   (i=0;i                 {  
                  if   (dynamic_cast(Components[i]))  
                      {         //<指標   void*   定義過的類別>     (指標   參考)  
                          Command   =   dynamic_cast(Components[i])->Command;  
                          Desc   =   dynamic_cast(Components[i])->Caption;  
                          Name   =   dynamic_cast(Components[i])->Name;  
                          MENUDataSet->InsertRecord(ARRAYOFCONST((Command,Name,Desc)));  
                      }  
                }  
        ShowMessage("菜單重置完成!");  
 

unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   DB,   DBTables,   Menus;  
   
  type  
      TForm1   =   class(TForm)  
          MENUENABLEDataSet:   TTable;         //测试用  
          MENUDataSet:   TTable;                     //测试用  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
          procedure   Proc1;  
          procedure   Proc2;  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  //uses   DB;  
   
  {$R   *.dfm}  
   
  {   TForm1   }  
   
  procedure   TForm1.Proc1;  
  var  
      i:   Integer;  
      Opts:   TLocateOptions;  
  //     Name,   Desc:   string;  
  begin  
      Opts   :=   [];  
      Include(Opts,   loCaseInsensitive);  
      for   i   :=   0   to   ComponentCount   -   1   do  
      begin  
          if   Components[i]   is   TMenuItem   then  
                if   not   MENUENABLEDataSet.Locate('MENU',   TMenuItem(Components[i]).Name,   Opts)   then  
                      TMenuItem(Components[i]).Enabled   :=   False;  
      end;  
  end;  
   
  procedure   TForm1.Proc2;  
  var  
      Command,   i:   Integer;  
      Name,   Desc:   string;  
  begin  
      for   i   :=   0   to   ComponentCount   -   1   do  
      begin  
          if   Components[i]   is   TMenuItem   then  
          begin  
                              //<指標   void*   定義過的類別>     (指標   參考)  
                          Command   :=   TMenuItem(Components[i]).Command;  
                          Desc   :=   TMenuItem(Components[i]).Caption;  
                          Name   :=   TMenuItem(Components[i]).Name;  
                          MENUDataSet.InsertRecord([Command,Name,Desc]);  
          end;  
      end;  
      ShowMessage('菜單重置完成!');  
  end;  
   
  end.  
 

注意,前面2个TTable元件只是为求代码通过加上去的,如果使用它们会出错;过程名称随便取的;只是直接将代码移植过来,其它未加考虑。

 
  還沒空測試,先買單,多謝了!



--------------------------
新闻:专注、极致、快、口碑 互联网创业的葵花宝典
导航:博客园首页  知识库  新闻  招聘  社区  小组  博问  网摘  找找看
阅读(482) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~