ObjBase类

 
  1. package org.geom
  2. {
  3.   public class ObjBase 
  4.   {
  5.     
  6.     public function ObjBase() {}
  7.     
  8.     //清除对象中特定类型对象
  9.     public static function cleanObjByType(type:*, container:*) {
  10.       //对象为空返回
  11.       if (container.numChildren == 0) { return; }
  12.        //清除布局内容
  13.       var clearObjBox:Array=[]
  14.       for (var j = 0; j < container.numChildren;j++ ) {
  15.          var item:*= container.getChildAt(j)
  16.          if (item is type==true)
  17.          {   
  18.            clearObjBox.push(item)
  19.          }
  20.          }    
  21.       if (clearObjBox.length == 0) { return; }  
  22.       
  23.       for (var k = 0; k < clearObjBox.length;k++ ) {   
  24.          container.removeChild(clearObjBox[k])
  25.           }
  26.       }
  27.       
  28.     //从父容器中清除
  29.     public static function cleanObj(obj:*) {
  30.       
  31.       if (obj == null) { return; }
  32.       if (obj.parent == null) { return; }
  33.       
  34.       obj.parent.removeChild(obj)
  35.       
  36.       }  
  37.       
  38.     //清除对象所有子对象
  39.     public static function cleanAll(container:*) {
  40.       //对象为空返回
  41.       if (container.numChildren == 0) { return null; }
  42.       
  43.       var clearObjBox:Array = []
  44.       
  45.       for (var j = 0; j < container.numChildren;j++ ) {
  46.          var item:*=container.getChildAt(j)
  47.          clearObjBox.push(item)
  48.          }
  49.          
  50.       if (clearObjBox.length == 0) { return; }
  51.          
  52.       for (var k = 0; k < clearObjBox.length;k++ ) {   
  53.         container.removeChild(clearObjBox[k])
  54.           }
  55.       }  
  56.     
  57.     //获取某类对象集合
  58.     public static function getObjs(type:*, container:*):Array {
  59.       //对象为空返回
  60.       if (container.numChildren == 0) { return null; }
  61.        //清除布局内容
  62.       var ObjBox:Array = []
  63.       
  64.       for (var j = 0; j < container.numChildren;j++ ) {
  65.          var item:*= container.getChildAt(j)
  66.          if (item is type ==true)
  67.          {   
  68.            ObjBox.push(item)
  69.          }
  70.         }
  71.       if (ObjBox.length == 0) { return null }
  72.       return ObjBox
  73.       }
  74.         
  75.      //清除除某类对象之外的所有对象
  76.      public static function cleanAllBesideType(type:*,container:*) {
  77.       //对象为空返回
  78.       if (container.numChildren == 0) { return null; }
  79.       
  80.       var clearObjBox:Array = []
  81.       
  82.       for (var j = 0; j < container.numChildren;j++ ) {
  83.          var item:*= container.getChildAt(j)
  84.          if (item is type==false)clearObjBox.push(item)
  85.          }
  86.       if (clearObjBox.length == 0) { return; }
  87.          
  88.       for (var k = 0; k < clearObjBox.length;k++ ) {   
  89.         container.removeChild(clearObjBox[k])
  90.           }
  91.       }  
  92.        
  93.     //除指定对象可见外其他对象不可见
  94.     public static function setObjShow(container:*) {
  95.       //对象为空返回
  96.       if (container == null) { return null; }
  97.       
  98.       //对象为空返回
  99.       if (container.numChildren == 0) { return null; }
  100.       
  101.       for (var j = 0; j < container.numChildren;j++ ) {
  102.          var item:*= container.getChildAt(j)
  103.          item.visible=true
  104.           
  105.          }
  106.       }
  107.       
  108.         //除指定对象不可见外其他对象可见
  109.     public static function setObjHide(container:*) {
  110.       //对象为空返回
  111.       if (container == null) { return null; }
  112.       
  113.       //对象为空返回
  114.       if (container.numChildren == 0) { return null; }
  115.       
  116.       for (var j = 0; j < container.numChildren;j++ ) {
  117.          var item:*= container.getChildAt(j)
  118.          item.visible=false
  119.         
  120.          }
  121.       }
  122.   }
  123.   
  124. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最简单的dll并不比c的helloworld难,只要一个DllMain函数即可,包含objbase.h头文件(支持COM技术的一个头文件)。若你觉得这个头文件名字难记,那么用windows.H也可以。源代码如下:dll_nolib.cpp #include #include BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) { HANDLE g_hModule; switch(dwReason) { case DLL_PROCESS_ATTACH: cout<<"Dll is attached!"<<endl; g_hModule = (HINSTANCE)hModule; break; case DLL_PROCESS_DETACH: cout<<"Dll is detached!"<<endl; g_hModule=NULL; break; } return true; } 其中DllMain是每个dll的入口函数,如同c的main函数一样。DllMain带有三个参数,hModule表示本dll的实例句柄(听不懂就不理它,写过windows程序的自然懂),dwReason表示dll当前所处的状态,例如DLL_PROCESS_ATTACH表示dll刚刚被加载到一个进程中,DLL_PROCESS_DETACH表示dll刚刚从一个进程中卸载。当然还有表示加载到线程中和从线程中卸载的状态,这里省略。最后一个参数是一个保留参数(目前和dll的一些状态相关,但是很少使用)。 从上面的程序可以看出,当dll被加载到一个进程中时,dll打印"Dll is attached!"语句;当dll从进程中卸载时,打印"Dll is detached!"语句。 编译dll需要以下两条命令: cl /c dll_nolib.cpp 这条命令会将cpp编译为obj文件,若不使用/c参数则cl还会试图继续将obj链接为exe,但是这里是一个dll,没有main函数,因此会报错。不要紧,继续使用链接命令。 Link /dll dll_nolib.obj 这条命令会生成dll_nolib.dll。 注意,因为编译命令比较简单,所以本文不讨论nmake,有兴趣的可以使用nmake,或者写个bat批处理来编译链接dll。 加载DLL(显式调用)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值