日志存档:11, 2006

(转)Windows XP系统应用技巧

2006-11-27,星期一 | 分类:系统集成|病毒安全 | 115 views

Windows XP系统应用技巧

 
    XP系统信息详细看 

  在Windows XP中,如果要查看详细的系统信息,如虚拟内存、补丁安装等信息时,可单击“开始→所有程序→附件→命令提示符”,然后键入“systeminfo”,按下Enter键。怎么样,看到所需的信息了吧。   卸载软件后光驱无法自动播放了 

  微软提供了一个小工具Autoplay Repair Wizard,用于解决自动播放的问题。运行这个工具,根据向导的提示就能够修复因自动播放出现问题导致的故障。 

  

Windows XP系统失去记忆功能 

  使用的Windows XP SP1系统,有时也会失忆,例如以前每次用软件的“打开”菜单打开文件时,“打开”对话框中显示的都是上一次所进入的目录,可现在只要重启后,再执行上面的操作,“打开”对话框中显示的却是软件所在目录。另外在“开始→运行”里输入过的命令也随着关机被清除了,那么该怎么办呢?

  答案就是:在运行regedit打开注册表编辑器。定位到HKEY_LOCAL_MACHINESoftwareMicroso   ftWindowsCurrentVersionPoliciesExplorer,删除右边的ClearRecentDocsOnExit值,重新启动系统即可。 

  去掉任务栏里的“过去的项目” 

  在Windows XP系统任务栏上单击鼠标右键选择“属性”,在“任务栏”的“通知区域”中勾选“隐藏不活动的图标”,再点“自定义”,会弹出一个对话框,里面有“当前项目”和“过去的项目”,该如何才能删掉过去项目中的所有记录呢? 

  打开注册表编辑器,定位到HKEY_CURRENT_USERSoftwareMicrosoftWindowsC 

  urrentVersionExplorerTrayNotify,删除右边的IconStreams和PastIconsStream,然后打开任务管理器,切换到进程选项卡,找到并选择Explorer.exe进程,点击“结束进程”,然后点击任务管理器的“文件→运行”,输入explorer,点击确定即可。 
提示“16位MS-DOS子系统” 

  每次进入Windows XP系统或安装软件就出现提示框,标题是“16位MS-DOS子系统”。内容是“16位WindowsInternet.exe NTVDM CPU遇到无效指令,选择关闭终止应用程序”。如果点忽略,就一直保持命令提示符状态,请问我该怎么办? 

  这是16位模式程序运行出错造成的提示。由于Windows XP默认情况下不应该存在internet.exe这个文件,因此你的电脑可能被病毒所感染,建议使用最新版本的杀毒软件检查。 

  启动后提示找不到Autochk.exe 

  我使用的是Windows XP SP1系统,最近不知什么原因,每次启动时,在Windows XP的滚动条过后,总是蓝屏,显示如下提示:SystemRootWindowsSystem32Autochk.exe Program not found-skipping AUTOCHECK,但进入系统后均使用正常,请问有没有办法去掉这个提示? 

  你可以从Windows XP SP1 安装光盘i386目录里面提取Autochk.exe文件,然后放到WindowsSystem32目录里面即可。 

 

  恢复注册表后光驱盘符不见了 

  我的操作系统是Windows XP,今天我因为无法进入系统而重装了系统,但在我导入了重装以前备份的注册表重启后,在“我的电脑”中就没有了光驱的盘符,在使用“系统还原”后系统又恢复了正常,但我又很想使用备份的注册表,请问我该怎么办?   在Windows XP面,是不能通过注册表编辑器的导入功能恢复整个注册表的,因为部分正在被系统使用的注册表是不能被写的。如果你恢复部分注册表信息后,系统运行正常,而且还能在设备管理器里面看到你的光驱信息,那么你可以在“控制面板→管理工具→计算机管理”里面的“储存→磁盘管理”里面点击光驱,选择更改驱动器名和路径,重新指派一个驱动器号。 

  “揪出”被Windows XP隐藏的输入法 

  最近碰到Windows XP中任务栏的输入法出现问题,只有全拼,热键无法切换至其他的输入法。依次打开“开始→控制面板→区域和语言选项→详细信息→设置→首选项→语言栏”,勾选“在桌面上显示语言栏”。可语言栏仍然是灰色状态,无法进入。后来在“区域和语言选项”中打开“详细信息→文字服务和输入语言→高级”,取消对“系统配置”的选择,重新进入输入法设置,“语言栏”终于由灰色变为黑色可选状态,任务栏上的输入法终于找回来了。 

 

配置Microsoft Visual SourceSafe 2005的Internet访问

2006-11-27,星期一 | 分类:编 程|VisualBasic | 149 views

配置Microsoft Visual SourceSafe 2005Internet访问   

VSS2005发布以后,早就听说可以支持Internet访问,这是一个很有意思的特性。前两天有空,就安装配置了一下,成功访问。现在安装过程发布出来,大家共享。   

步骤0:安装前的准备事项   

服务器端: 

因为Internet访问是通过Web Service实现的,所以安装前要先配置安装好IIS 

安装VSS2005好像可以自动安装.Net Framework 2.0,不过,我是事先安装好.Net Framework 2.0并启用Asp.Net 2.0的。   

客户端: 

只有Visual Studio 2005默认支持VSSInternet访问,所以客户端还要安装VS2005   

步骤1:安装VSS2005   

安装VSS2005一路NextOK了。服务器和客户端都要安装。   

步骤2:创建VSS数据库,并启用Internet访问   

这一步最关键,如果配置没问题就成功了一半。   

1、  启动Microsoft Visual SourceSafe Administrator 

2、  创建VSS数据库   

一路NextOK。截图如下: 

  

 

  

 

 

 

3、  启用Internet访问 

  

  • 选择菜单Server –〉Configure…,弹出Server Configuration对话框 

 

  • Enable SourceSafe Internet for this computerEnable SourceSafe Internet for this database打上勾,输入服务器的IP地址。按确定,My God,不行。 

 

  • 系统提示要用Share路径访问。重来! 
  • 首先到资源管理器,把VSS数据库的路径共享,设置好用户的共享访问权限。 
  • 然后再进入Microsoft Visual SourceSafe Administrator 
  • 选择菜单File –〉Open SourceSafe Database…,弹出一个对话框 
  • 点击Add…按钮,按下一步,在需要指定Location的时候输入\\server\vss 
  •  
    最后选择新加的库,点击
    Open,重新执行步骤12 
  • 中间会有一些提示,不管他,回答yes就是了。 
  • 没有提示错误的话,你的服务器端就配置好了。 

 
 
 

 

 

4、  客户端通过Internet访问 

  

  • 安装好VSS2005 
  • 打开Visual Studio 2005 
  • 选择菜单Tools –〉 Options –〉 Source Control –〉 Plug-in Selection 
  • 选择Microsoft Visual SourceSafe (Internet) 
  •  

    选择菜单Tools à Options à Source Control à Plug-in Settings à Advanced… 

  • 去掉Always use SSL to connect to the server前面那个勾 
  • 随便打开一个项目,选择菜单File à Source Control à Add Project to Source Control 
  • 系统打开Open SourceSafe Database对话框 
  • 点击Add…按钮 
  • 你会发现第二步变成了要输入AddressFolder了。输入服务器的IP地址,和共享的目录名(例如:\\server\vss 
  •  

    点击Open,出现登录对话框,输入你在服务器上的账号和密码。 

  •  

    如果成功登录,就会出现Add to SourceSafe Internet对话框。 

 

你就可以把项目加入Internet了。Done。哈哈。 

——————————————————————
公告栏
———————————
留言板
———————————
看广告玩游戏送QQ币

创业失败主要原因!与正在创业的程序员共勉!

2006-11-26,星期天 | 分类:未分类 | 111 views

创业失败主要原因!与正在创业的程序员共勉!

1) 没有明确的生活目标。没有奋斗的中心目标或明确的努力主向,就没有成功的希望。
2) 没有非同寻常的雄心抱负。
如果对凡事漠不关心,不想在人生中求发展,不愿付出代价,那么这样的人也将成功无望。
3) 缺乏自律。
纪律来自自我控制,这意味着人必须控制所有的消极思想,只能先控制自己,才能控制环境。自制是人类面对的最艰巨任务,如果无法战胜自我,就会被自我征服。
4) 拖拉。
这是失败最普遍的原因之一,拖拉“老人”存在于每个人心中的阴暗角落,正是因为一直都在等待“适当时机”,才开始做那些值得做的事情,其实时机永远不会“适当”。
5) 缺乏毅力。
不管做什么,大部份人开始时都满怀信心,但却不能善始善终。大部份人一遇到失败就容易放弃。毅力是不可取代的。把毅力当座右铭奉行到底的人,发现失败会自行退下,失败是无法对抗毅力的。
6) 消极的个性。
因为消极的个性,而将别人拒于千里之外者,不会有成功的希望。成功来自力量的运用,而力量又来自与他人的合作,消极的个性无法促成合作。
7) 无法克制“不劳而获”的欲望。这种机体本能使很多人走向失败。
8) 缺乏果断的决策力。
成功的人士会果断决策,然后如果有必要,再慢慢改进。失败者往往花很长时间才能作出决策,但很快就需要修改,而且要频繁修改。犹豫和拖拉是一对双包胎,只要找到其中一个就一定能找到另一个,所以必须趁它们没有将你完全束缚在失败的车轮上,果断地把它们消灭。
9) 过度谨慎。
不主动抓住机会的人往往只能捡别人挑剩的机会,过度谨慎和不够谨慎都不可取,人生本来就充满偶然成分。
10) 迷信与偏见。
迷信是恐惧的一种形式,也是无知的表现,成功人士心胸宽广,无所畏惧。
11) 目标不专。“万事通,万事松”,要全心全意专注于一个主要目标。
12) 缺乏热情。
没有热情,一个人就没有说服力,而且热情有一种感染力,一个人如果拥有热情,并能适当控制热情,往往会受到人们的欢迎。
13) 偏执。心胸狭窄很难取得任何进步,偏执说明一个人不积极获取知识。
14) 蓄意不忠。
诚实是一种不可替代的品质,受无法控制的环境所迫,一个人可能一时不忠诚,也不会带来永久的破坏。但是,如果一个人蓄意不忠,则无药可救。他的得行为迟早会被发现,他负出的代价可能是失去信誉,甚至失去自由。
15) 自私和虚荣。这些品质问题好比亮起红灯,让人不敢靠近,是妨碍成功的致命因素。
16) 猜测而不思考。
多数人往往漫不经心或者过于懒惰,不愿费心获取用于准确思考的事实。他们喜欢根据猜测或仓促得出的“结论”了事。观念改变人生!选择决定未来!行动决定成败!

来源:CSDN

对象

2006-11-26,星期天 | 分类:未分类 | 112 views

 对象object是一些相关的变量和方法的软件集。软件对象经常用于模仿现实世界中我们身边的一些对象。对象是理解面向对象技术的关键。你在学习之前可以看看现实生活中的对象,比如狗、桌子、电视、自行车等等。你可以发现现实世界中的对象有两个共同特征:它们都有状态和行为。比如狗有自己的状态(比如名字、颜色、生育以及饥饿等等)和行为(比如摇尾巴等等)。同样自行车也有自己的状态(比如当前档位、两个轮子等等)和行为(比如刹车、加速、减速以及改变档位等等)。

  而软件对象实际上是现实世界对象的造型,因为它同样有状态和行为。一个软件对象利用一个或者多个变量来维持它的状态。变量是由用户标识符来命名的数据项。软件对象用它的方法来执行它的行为。方法是跟对象有关联的函数(子程序)。

  你可以利用软件对象来代表现实世界中的对象。你可能想用一个动画程序来代表现实世界中的狗,或者用可以控制电子自行车的程序来代表现实世界的自行车。同样你可以使用软件对象来造型抽象的概念,比如,事件是一个用在GUI窗口系统的公共对象,它可以代表用户按下鼠标按钮或者键盘上的按键的反应。

如图1是一个软件对象的公共可视代表。


(图1)

  软件对象的状态和行为都可以用在对象中的变量和方法来表达。构造现实世界的自行车的软件对象要有指示自行车的当前状态的变量:速度为20mph,它的当前档位为第三档。这些变量就是我们熟知的实例变量,因为它们包含了用于特殊自行车对象的状态,并且在面向对象技术中,特殊的对象称为实例。

如图2所示,是作为软件对象的自行车造型。

(图2)

除了变量,软件自行车同样有用于刹车、改变踏板步调以及改变档位的方法。这些方法就是熟知的实例方法因为它们检查或者改变特殊自行车实例的状态。

  以上的对象图显示了对象的变量组成了圆心部分。方法处在变量的四周并且在程序中从其它对象隐藏了对象的核心。用保护方法的方法来包装对象的变量称为封装。这个对象图就是对象理想的表示法,也是面向对象系统设计者努力的最后目标。然而这并不是全部的内容。通常,出于某种现实的理由,对象可能暴露它的一些变量或者隐藏一些方法。在JAVA编程语言中,一个对象可以为变量和方法指定四种访问等级中的一种。这个访问等级决定哪个对象和可以访问变量或者方法。在JAVA中访问变量和方法可以转换为控制访问类的成员函数。封装相关的变量和方法到一个简洁的软件集是一个简单而且强有力的方法,它为软件开发者提供了两个主要好处:

      模块性:对象的源代码可以独立于其它的对象源代码来进行编写和维护。同样,对象可以很容易地在系统中传递。你可以将你的自行车对象给其它的对象,它仍然可以正常工作。

      信息隐藏:一个对象如果有一个公共的界面,那么其它的对象就可以与之进行通讯。这个对象可以维护私人的信息和方法,它可以在任何时候被改变而不影响依耐于它的其它对象。所以你不必理解自行车中齿轮的机理就可以使用它。

为什么创建自己的对象?

      自定义对象本身不会自动地在代码中加入新功能。通常情况下,为达到相同的效果,可以使用另一种不涉及创建对象的方法。这些对象所能做的就是使复杂的操作看起来更简单,使复杂的应用程序更加具有自我说明性和可维护性,使需要几小时才能编完代码的程序对您自己和其他程序员而言可重复利用性更强。实际上,创建自定义对象是一种将代码包装起来供其他 Microsoft® Visual Basic® for Applications (VBA) 程序员使用的完美方法,因为与其指出如何调用您的代码,不如使他们能象使用任何内置对象一样使用您的自定义对象。

      您可以创建完整的自定义对象模型,这些模型在后台有复杂的代码,但显示给程序员的应只是相对简单和直观的对象语法。事实上,这就是所有 Microsoft® Office 和 VBA 对象模型为您所做的一切,它们把复杂的操作包装在易于使用的对象、方法、属性和事件中。例如,当您将 Microsoft® Excel 对象的 Visible 属性设为 False 时,不必担心 VBA、Excel 和 Windows 如何协作以隐藏该对象。您可以把精力集中在创建应用程序这一更高目标上。

      简单性和可重复利用性自然要有代价。创建自定义对象和对象模型需要一种思考方法,这种方法比起您在 VBA 中已经习惯的那种编程思考方法是不同的,甚至可能是革命性的不同。掌握它会花一些时间。但从长远来看,用对象编代码可以提高效率,磨练设计技巧,更容易重复利用代码,从而能使您成为更好的程序员。

2006-11-26,星期天 | 分类:未分类 | 130 views

  Class)实际上是对某种类型对象定义变量和方法的原型。

      类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。

      可以把类看作“理论上”的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。

      Microsoft(r) Visual Basic(r) for Applications (VBA) 工程中可包含两种不同类型的类模块:没有任何一种与其关联的用户界面的基本类模块;与窗体或其它组件关联的类模块。例如,与窗体相关联的类模块,它们和基本类模块相同,只是它们只有在那个窗体存在于内存中时,才存在于内存中。拥有相关联的类模块的对象的示例是“用户窗体”、Microsoft(r) Access 窗体和报表、Microsoft(r) Word 的 ThisDocument 对象,Microsoft(r) Excel 的 ThisWorkbook 和 SheetN 对象。

      在现实世界中,你经常看到相同类型的许多对象。比如 ,你的自行车只是现实世界中许多自行车的其中一辆。使用面向对象技术,我们可以说你的自行车是自行车对象类的一个实例。通常,自行车有一些状态(当前档位、两个轮子等等)以及行为(改变档位、刹车等等)。但是,每辆自行车的状态都是独立的并且跟其它自行车不同。

      当厂家制造自行车的时候,厂商利用了自行车共有的特性来根据相同的蓝图制造许多自行车。如果制造一辆自行车就要产生一个新蓝图,那效率就太低了。

      在面向对象软件中,同样地,可以让相同种类地许多对象来共有一些特性,比如矩形、雇员记录、视频夹等等。就象自行车制造商人,你可以利用相同种类的对象是相似的事实并且你可以为这些对象创建一个蓝图。对对象的软件蓝图叫做类。

      自行车的类需要定义一些实例变量来包括当前档位、当前速度等等。这个类将为实例方法定义和提供实施方法,它允许骑车者改变档位、刹车以及改变脚踏板的节奏,如图1所示:

(图1)

      当你创建了自行车类以后,你可以从这个类创建任意个自行车对象。当你创建了一个类的实例后,系统将为这个对象和的实例变量分配内存。每个实例将给所有实例变量的副本定义在类中。如图2所示:

 

(图2)

      除了实例变量,类还要定义类的变量。类变量包含了被类所有实例共享的信息。比如,假设所有的自行车有相同的档位数。在本例子中,要定义一个实例变量来容纳档位数。每一个实例都会有变量的副本,但是在每一个实例中数值都是相同的。在这样的情况下,你可以定义一个类变量来包含档位数,这样所有的类的实例都共享这个变量。如果一个对象改变了变量,它就为改变那个类的所有对象。类同样可以定义类方法。你可以直接从类中调用类方法,然而你必须在特定的实例中调用实例方法。如图3所示。

 


来源:http://www.itisedu.com/

(转)VB编程的七个优良习惯02

2006-11-25,星期六 | 分类:未分类 | 113 views

VB编程的七个优良习惯02

作者:木子

1、"&"替换"+" 2、变量命名大小写,语句错落有秩,源代码维护方面
3、请养成以下的“对象命名约定”良好习惯 4、在简单的选择条件情况下,使用IIf()函数
5、尽量使用Debug.Print进行调试 6、在重复对某一对象的属性进行修改时,尽量使用With….End With
7、MsgBox中尽量使用消息图标,这样程序比较有规范 8、在可能的情况下使用枚举

常量和变量命名约定

除了对象之外,常量和变量也需要良好格式的命名约定。本节列出了 Visual Basic 支持的常量和变量的推荐约定。并且讨论标识数据类型和范围的问题。

变量应该总是被定义在尽可能小的范围内。全局 (Public) 变量可以导致极其复杂的状态机构,并且使一个应用程序的逻辑非常难于理解。全局变量也使代码的重用和维护更加困难。

Visual Basic 中的变量可以有下列范围

范围 声明位置 可见位置
过程级 过程,子过程或函数过程中的 ‘Private’ 在声明它的过程中
模块级 窗体或代码模块(.frm、.bas )的声明部分中的 ‘Private’ 窗体或代码模块中的每一个过程
全局 代码模块(.bas)的声明部分中的 ‘Public’ 应用程序中的每一处

在 Visual Basic 的应用程序中,只有当没有其它方便途径在窗体之间共享数据时才使用全局变量。当必须使用全局变量时,在一个单一模块中声明它们,并按功能分组。给这个模块取一个有意义的名称,以指明它的作用,如 Public.bas。

较好的编码习惯是尽可能写模块化的代码。例如,如果应用程序显示一个对话框,就把要完成这一对话任务所需要的所有控件和代码放在单一的窗体中。这有助于将应用程序的代码组织在有用的组件中,并减小它运行时的开销。

除了全局变量(应该是不被传递的),过程和函数应该仅对传递给它们的对象操作。在过程中使用的全局变量应该在过程起始处的声明部分中标识出来。此外,应该用 ByVal 将参数传递给 Sub 过程及 function 过程,除非明显地需要改变已传递的参数值。

随着工程大小的增长,划分变量范围的工作也迅速增加。在类型前缀的前面放置单字母范围前缀标明了这种增长,但变量名的长度并没有增加很多。

变量范围前缀

范围 前缀 例子
全局 g gstrUserName
模块级 m mblnCalcInProgress
本地到过程 dblVelocity

如果一个变量在标准模块或窗体模块中被声明为 Public,那么该变量具有全局范围。如果一个变量在标准模块或窗体模块中被分别声明为 Private,那么该变量有模块级范围。

注意一致性是卓有成效地使用这种技术的关键;Visual Basic 中的语法检查器不会捕捉以 "p." 开头的模块级变量。

常量
常量名的主体是大小写混合的,每个单词的首字母大写。尽管标准 Visual Basic 常量不包含数据类型和范围信息,但是象 i、s、g 和 m 这样的前缀对于理解一个常量的值和范围还是很有用的。对于常量名,应遵循与变量相同的规则。例如:

mintUserListMax   '对用户列表的最大限制
'(整数值,本地到模块)
gstrNewLine '新行字符
'(字符串,应用程序全局使用)

变量
声明所有的变量将会节省编程时间,因为键入操作引起的错误减少了(例如,究竟是 aUserNameTmp,还是 sUserNameTmp,还是 sUserNameTemp)。在“选项”对话框的“编辑器”标签中,复选“要求变量声明”选项。Option Explicit 语句要求在 Visual Basic 程序中声明所有的变量。

应该给变量加前缀来指明它们的数据类型。而且前缀可以被扩展,用来指明变量范围,特别是对大型程序。

用下列前缀来指明一个变量的数据类型。

变量数据类型

数据类型 前缀 例子
String (字符串类型) str strFName
Integer (短整数类型) int intQuantity
Long (长整数类型) lng lngDistance
Single (单精度浮点数类型) sng sngAverage
Double (双精度浮点数类型) dbl dblTolerance
Boolean (布尔类型) bln blnFound
Byte (字节类型) byt bytRasterData
Date (日期类型) dte dteNow
Currency (货币计算与定点计算类型) cur curRevenue
Object (对象类型) obj objCurrent
Variant (变体类型) vnt vntCheckSum

描述变量和过程名

变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。

对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。

当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。

用户定义的类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 "u" 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。

4、在简单的选择条件情况下,使用IIf()函数

罗索的代码:
If nNum = 0 Then
  sName = "sancy"
Else
  sName = "Xu"
End If

简单的代码:
sName=IIf(nNum=0,"sancy","Xu")

5、尽量使用Debug.Print进行调试

在很多初学者的调试中,用MsgBox来跟踪变量值.其实用Debug.Print不仅可以达到同样的功效,而且在程序最后编译过程中,会被忽略.而MsgBox必须手动注释或删除.

通常:
MsgBox nName

应该:
Debug.Print nName

6、在重复对某一对象的属性进行修改时,尽量使用With....End With

通常:
Form1.Height = 5000
Form1.Width = 6000
Form1.Caption = "This is MyLabel"

应该:
With Form1
  .Height = 5000
  .Width = 6000
  .Caption = "This is MyLabel"
End With
这种结构程序执行效率比较高,特别在循环语句里。

7、MsgBox中尽量使用消息图标,这样程序比较有规范

vbInformation 用来提示确认或成功操作的消息
vbExclamation 用来提示警告的消息
vbCritical 用来提示危机情况的消息
vbQuestion 用来提示询问的消息

8、在可能的情况下使用枚举

枚举的格式为
[Public | Private] Enum name
membernam
e
[= constantexpression]
membername
[= constantexpression]
....
End Enum

Enum 语句包含下面部分:

部分 描述
Public 可选的。表示该 Enum 类型在整个工程中都是可见的。Enum 类型的缺省情况是 Public
Private 可选的。表示该 Enum 类型只在所声明的模块中是可见的。
name 必需的。该 Enum 类型的名称。name 必须是一个合法的 Visual Basic 标识符,在定义该 Enum 类型的变量或参数时用该名称来指定类型。
membername 必需的。用于指定该 Enum 类型的组成元素名称的合法 Visual Basic 标识符。
constantexpression 可选的。元素的值(为 Long 类型)。可以是别的 Enum 类型。如果没有指定 constantexpression,则所赋给的值或者是 0(如果该元素是第一个 membername),或者比其直接前驱的值大 1。

说明
所谓枚举变量,就是指用 Enum 类型定义的变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。例如:

Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum

Enum 语句只能在模块级别中出现。定义 Enum 类型后,就可以用它来定义变量,参数或返回该类型的过程。不能用模块名来限定 Enum 类型。类模块中的 Public Enum 类型并不是该类的成员;只不过它们也被写入到类型库中。在标准模块中定义的 Enum 类型则不写到类型库中。具有相同名字的 Public Enum 类型不能既在标准模块中定义,又在类模块中定义,因为它们共享相同的命名空间。若不同的类型库中有两个 Enum 类型的名字相同,但成员不同,则对这种类型的变量的引用,将取决于哪一个类型库具有更高的引用优先级。

不能在 With 块中使用 Enum 类型作为目标。

Enum 语句示例
下面的示例演示用 Enum 语句定义一个命名常数的集合。在本例中是一些可以选择的颜色常数用于设计数据库的数据输入窗体。

Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum
好处是加快编程速度

(转)VB编程的七个优良习惯01

2006-11-25,星期六 | 分类:未分类 | 200 views

VB编程的七个优良习惯01

作者:木子

1、"&"替换"+" 2、变量命名大小写,语句错落有秩,源代码维护方面
3、请养成以下的“对象命名约定”良好习惯 4、在简单的选择条件情况下,使用IIf()函数
5、尽量使用Debug.Print进行调试 6、在重复对某一对象的属性进行修改时,尽量使用With….End With
7、MsgBox中尽量使用消息图标,这样程序比较有规范 8、在可能的情况下使用枚举

1、"&"替换"+"
在很多人的编程语言中,用“+”来连接字符串,这样容易导致歧义。良好的习惯是用“&”来连接字符串.

不正确:
Dim sMessage As String
sMessage = "1" + "2"

正确:
Dim sMessage As String
sMessage = "1" & "2"

注意:"&"的后面有个空格

2、变量命名大小写,语句错落有秩,源代码维护方面

下面大家比较一下以下两段代码:

读懂难度很大的代码:

Dim SNAME As String
Dim NTURN As Integer

If NTURN = 0 Then
If SNAME = "vbeden" Then
Do While NTURN < 4
NTURN = NTURN + 1
Loop
End If
End If

容易读懂的代码:

Dim sName As String
Dim nTurn As Integer

If nTurn = 0 Then
   If sName = "vbeden" Then
      Do While nTurn < 4
          nTurn = nTurn + 1
      Loop
   End If
End If

3、请养成以下的“对象命名约定”良好习惯

推荐使用的控件前缀

控件类型 前缀 例子
3D Panel pnl pnlGroup
ADO Data ado adoBiblio
Animated button ani aniMailBox
Check box chk chkReadOnly
Combo box, drop-down list box cbo cboEnglish
Command button cmd cmdExit
Common dialog dlg dlgFileOpen
Communications com comFax
Control (当特定类型未知时,在过程中所使用的) ctr ctrCurrent
Data dat datBiblio
Data-bound combo box dbcbo dbcboLanguage
Data-bound grid dbgrd dbgrdQueryResult
Data-bound list box dblst dblstJobType
Data combo dbc dbcAuthor
Data grid dgd dgdTitles
Data list dbl dblPublisher
Data repeater drp drpLocation
Date picker dtp dtpPublished
Directory list box dir dirSource
Drive list box drv drvTarget
File list box fil filSource
Flat scroll bar fsb fsbMove
Form frm frmEntry
Frame fra fraLanguage
Gauge gau gauStatus
Graph gra graRevenue
Grid grd grdPrices
Hierarchical flexgrid flex flexOrders
Horizontal scroll bar hsb hsbVolume
Image img imgIcon
Image combo imgcbo imgcboProduct
ImageList ils ilsAllIcons
Label lbl lblHelpMessage
Lightweight check box lwchk lwchkArchive
Lightweight combo box lwcbo lwcboGerman
Lightweight command button lwcmd lwcmdRemove
Lightweight frame lwfra lwfraSaveOptions
Lightweight horizontal scroll bar lwhsb lwhsbVolume
Lightweight list box lwlst lwlstCostCenters
Lightweight option button lwopt lwoptIncomeLevel
Lightweight text box lwtxt lwoptStreet
Lightweight vertical scroll bar lwvsb lwvsbYear
Line lin linVertical
List box lst lstPolicyCodes
ListView lvw lvwHeadings
MAPI message mpm mpmSentMessage
MAPI session mps mpsSession
MCI mci mciVideo
Menu mnu mnuFileOpen
Month view mvw mvwPeriod
MS Chart ch chSalesbyRegion
MS Flex grid msg msgClients
MS Tab mst mstFirst
OLE container ole oleWorksheet
Option button opt optGender
Picture box pic picVGA
Picture clip clp clpToolbar
ProgressBar prg prgLoadFile
Remote Data rd rdTitles
RichTextBox rtf rtfReport
Shape shp shpCircle
Slider sld sldScale
Spin spn spnPages
StatusBar sta staDateTime
SysInfo sys sysMonitor
TabStrip tab tabOptions
Text box txt txtLastName
Timer tmr tmrAlarm
Toolbar tlb tlbActions
TreeView tre treOrganization
UpDown upd updDirection
Vertical scroll bar vsb vsbRate


推荐使用的数据访问对象 (DAO) 的前缀
用下列前缀来指示数据访问对象
数据库对象 前缀 例子
Container con conReports
Database db dbAccounts
DBEngine dbe dbeJet
Document doc docSalesReport
Field fld fldAddress
Group grp grpFinance
Index ix idxAge
Parameter prm prmJobCode
QueryDef qry qrySalesByRegion
Recordset rec recForecast
Relation rel relEmployeeDept
TableDef tbd tbdCustomers
User usr usrNew
Workspace wsp wspMine


应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。除了最前面 "mnu" 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。

推荐使用的菜单前缀
菜单标题序列 菜单处理器名称
File Open mnuFileOpen
File Send Email mnuFileSendEmail
File Send Fax mnuFileSendFax
Format Character mnuFormatCharacter
Help Contents mnuHelpContents

当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。

为其它控件选择前缀

对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。

(转)骆驼兵快攻

2006-11-25,星期六 | 分类:未分类 | 121 views

骆驼兵快攻

2004-8-25 10:49:57 帝国中文网  _帝痴_红孩 
 
轮射流行的今天,骆驼已经完全被人遗忘了。网上鲜见有关骆驼的文章。其实骆驼是有其独特的优点的,实战中应该有它的一席之地。笔者最近在网上打打骆驼,胜率还颇高呢!下面是本人对骆驼战法的总结,希望能对你有所帮助。 

    骆驼与轮射有什么不同呢?骆驼属近战兵种,靠近敌人后才能攻击。而轮射属远程攻击兵种。骆驼要想攻击轮射,难免要冒着枪林弹雨前进了。这也是骆驼最吃亏的地方。更糟糕的情况是,敌人凭借地形,只有小小的接触面厮杀,大部队躲在后面放箭,如果是大兵团作战,骆驼就难免受塞车之苦了;或者在必经之路设下埋伏,等待骆驼进入射程。 骆驼视线狭窄,鼠目寸光,敌人在身旁也不能觉察。这也是它的一个缺点。 骆驼贵,生产一匹骆驼的费用是食物70,金60。一不小心就会断粮。 当然,骆驼的优点也很突出。 骆驼的生命值是125,这可比轮射的70多多了,经的住一个轮射30多次的攻击。骆驼的攻击力为6,每分钟可以攻击50次;而轮射分别为4和40,差距明显。让两个轮射与一匹骆驼(未升级)对攻,结果胜者为骆驼。还有呢,骆驼可以升级攻击力,使其值提高4点,变为6+4。这下厉害了。骆驼每分钟的攻击值为50次×10=500,而轮射仅为40×4=160,相差三倍多矣。最痛快的事莫过于骆驼与轮射在半途相遇,攻击力为10的骆驼与轮射贴身近战,感觉就象是虎入羊群,骆驼的产出时间是30秒,轮射为40。照此推算,两分钟内骆驼出4轮,轮射只能3轮。三个骆驼兵营的产出量与四个轮射兵营的产出量是相同的。考虑骆驼的战斗力及成本,骆驼战法通常可以三兵营开局。骆驼升完铜就可以出兵,而轮射必须先升级轮子,多花费1分15秒的时间。加上出兵慢10秒,轮射总共慢了1分半。这宝贵的1分半为骆驼的快攻提供了依据,引出了以前介绍的骆驼快攻战法。

    为什么骆驼快攻不能流行开来呢?笔者认为,如按轮射通常的升级方法抢在13分左右升完铜的话,由于骆驼成本较高,食物将成问题,连续出兵很困难,以致进攻不能持续下去。所以大多数采用此种打法的人都抱有一种机会主义的心态,试图一击成功,屈敌于未成之时。在打法上,随时想转回轮射上来,造成打法上的不连贯。 本人的思路是:将骆驼提早1分半的时间用于种田,适当推迟升级时间,以保证提供足够的资源(主要是食物)。用三兵营开局,在与轮射相若的时间内连续出兵。保证三兵营连续出兵的资源可以计算如下:每分钟出兵两轮共6匹骆驼,需食物6×70=420(很多呀!),金6×60=360;大约需要16~18块田,8~9人采金(需先升级采金术)。考虑到作不一定有这么流畅,通常种14~16块田基本上能维持出兵的需要。至于出人发展,就必须靠升铜期间的积累,或适当停止一下出兵来实现。这里要注意的是,地理的因素有时会影响田的数量。在基地及一果周围种田,所能排列的数量是有限的。至于金子的获得则比较容易。升级采金术后,采金效率提高75%,8~9人即可保证三兵营连续出兵。 打骆驼需要的食物不能靠采果或狩猎获得。必须利用无限田这一bug(嘿嘿,没bug可怎么打呀),获取无尽的食物。所以种田、种田、再种田是唯一选择。 那么,什么时候开始种田呢?不能如轮射的打法那般先抢升级,升级后才开始种田。升铜的时间只有2分20秒,这时开始种田,食物不够,升完也不能连续出兵,这样抢升级就失去了意义。所以,种田应该在升完工具就开始.骆驼战法升级只需三片食物,两片食物也行,区别在于前者比后者升级快约30秒。如果一果有7堆,则用此一堆果也能升级(好酷啊!)。升工具参考时间:3片食物时8分27人、2片食物时7分24人,一片食物6分21人升级。最好是三片食物升级,一片升级慢了点。三片时要注意,第三片食物不要急于采集。等第一片食物采完后派6人左右去就行。为什么呢?因为种田需要大量木材,这时木材是焦点。具体一些的细节就不说了,大家见仁见智吧。 升铜的时间一般在12分~12:30左右比较合适。根据本人的经验,28人升铜的话,可以在12分左右,32人升级在12:30左右(都指三片3食物的情况)。这样,升完级后出兵时间基本与轮射相同。本人一般30人12~12:30升铜,15人种田,8人挖金,1人建造,6人伐木。如果种好了15块田,那么升铜期间可以生产约700~800的食物。这时首先出探马、升级采金,然后派6~8人挖金(最后要加至8~9人)、升级攻击1。升完铜后接着升级轮子、出人、出兵、升级攻击2、伺机升级伐木1、建弓兵营、建研究所。后面的不说了。 

——————————————————————
公告栏
———————————
留言板
———————————
看广告玩游戏送QQ币

关于TLB文件

2006-11-23,星期四 | 分类:未分类 | 154 views

 关于TLB文件
TLB是一种OLE(或ActiveX)定义文件,它包括常数、接口(Interface)、类等的定义。你可以在VB的集成环境的Project|Reference中将TLB文件加入项目,然后在Object Browser中看到该文件中包括哪些常数、接口、类,而每个类又包括什么方法和属性。微软提供的各种SDK中通常包括一个或数个TLB文件以方便编程。你也可以制作TLB文件,首先编写一个ODL文件(在VC++的帮助中有语法说明),然后使用MKTYPLIB(在VB光盘上有)编译生成TLB文件。类似的文件,还有Office所提供的OLB文件。

——————————————————————
公告栏
———————————
留言板
———————————
看广告玩游戏送QQ币

 

(原)删除windows服务

2006-11-23,星期四 | 分类:综合分类|经典收藏 | 128 views

(原)删除windows服务
1.如果能正确停止服务,先停止,再找到文件,删除
2.在注册表中
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root
这两个位置找到要删除的服务删除即可

——————————————————————
公告栏
———————————
留言板
———————————
看广告玩游戏送QQ币

Pages: 1 2 3 4 5 6 Next