二十四史简介——魏书

《魏书》,一百二十四卷,其中本纪十二卷,列传九十二卷,志二十卷。因有些纪、列传和志篇幅过长,又分为上、下、或上、中、下三卷,实共一百三十卷。
北齐魏收撰。
鲜卑族是我国古代东北大兴安岭东麓一个古老的民族。公元一世纪末,随着匈奴帝国的解体,鲜卑族逐渐向西迁徒,成为大漠一个强大的民族集团,公元三世纪初,鲜卑拓跋部首领猗卢在塞北建立了代国,公元376年,代政权被氐族建立的前秦消灭。公元386年,拓跋鲜卑各部复拥拓跋为代王,重建政权。拓跋解散了拓跋鲜卑原有的部落组织,定居农耕,迁都平城,于公元398年改称魏,史称北魏。由于吸收先进的汉族文化,北魏国力日益强盛,终于在公元439年统一中国北方,结束了十六国时期的动荡局面。公元493年,孝文帝拓跋宏迁都洛阳,改姓元氏,推行了一系列汉化改革措施。到宣武帝元恪时,北魏达到鼎盛时期,在西边夺取汉中,进窥巴蜀,在东边巩固了洛阳周边的防御,并与梁朝争夺淮南,但不久就由于政治腐败和人民的反抗而崩溃,分为东魏和西魏两个对峙的政权。《魏书》记载了鲜卑拓跋部早期至公元550年东魏被北齐取代这一阶段的历史。
拓跋时就曾命令邓渊撰《代记》十卷,按年月编次本朝史事。太武帝拓跋焘神嘉二年,诏撰《国记》,由崔浩定为编年体,成书三十卷。
《魏书》在流传过程中亡佚甚多,本纪缺二卷,列传缺二十二卷,此外又有三卷残缺不全,分别由后人取其它史书补足。
魏收,北齐钜鹿下曲阳人,字伯起,小字佛助。他机警能文,与温子升、邢子才号称三才子,但生性轻薄,人称“惊蛱蝶”。他奉命著《魏书》时曾声称:
“何物小子,敢共魏收作色,举之则使上天,按之则使入地。”书成之后,众口喧嚷,指为“秽史”,魏收三易其稿,方成定本。

二十四史简介——陈书

《陈书》是南朝陈的纪传体断代史著作,记载了自陈武帝陈霸先即位至陈后主陈叔宝被隋文帝灭国首尾三十三年间的史事,由姚察及其子姚思廉两代人撰写的。
姚察,字伯审,吴兴武康人,姚思廉,字简之,陈亡后,迁家关中,为万安人。两人事迹已于本书《梁书》前言中作了介绍,可以参阅。
《陈书》中的帝纪六卷,列传三十卷,共三十六卷,无表志。
陈朝封建政权只存在了三十三年,在政治、经济、文化方面没有特别的建树,或许与此有关。《陈书》内容比不上《梁书》那样充实,本纪和列传都过于简略。

面向对象编程(OOP)

对象(Object)

对象代表应用程序中的元素,类似于汽车中的轮子、发动机等,抑或汽车本身。AutoCAD中有许多对象,例如:文档、模型空间、直线、图层、字典等。Excel中也有许多对象,例如:工作簿、工作表、单元格、图表、窗体,或是一份报告。程序中调用对象的任一方法或改变它的属性之前,必须先声明对象如,Dim oDraw As Object或Dim Workbooks As Object。

对象集合(Collection)

对象集合是一个包含几个相同性质的对象的集合。例如,在AutoCAD中的Documents 对象包含了所有已打开的Document(文档)对象,这当然指多文档环境(MDI)。在Excel中的Workbooks 对象包含了所有已打开的Workbook(工作簿)对象,Worksheets对象集合包含了某个工作簿中的所有工作表Worksheet。

集合中的项目可以通过索引号或名称来做识别。例如,Documents(1) 指的是索引号是1的文档对象。Workbooks(1) 指的是索引号是1的工作簿对象。需要注意的是AutoDesk是从0开始,而MicroSoft则是从1开始。

父对象与子对象(Parent Object And Subobject)

汽车可以包含轮子和发动机,这就是典型的父对象与子对象。

在AutoCAD中,文档对象可以包含直线对象、圆弧对象等。在Excel中,Worksheet对象可以包含单元格对象和图表对象等。

方法(Method)

方法指的是对象能执行的动作。例如,Add是下拉列表控件ComboBox对象的一个方法,因为它会增加一个新项目到下拉式列表框中。

下面的程序调用 Add 方法,增加一个新的项目到下拉列表控件“Combo1”项目中。

Sub AddEntry(newEntry as String) ‘ newEntry作为过程的参数被传入过程AddEntry

Combo1.Add newEntry ‘ newEntry作为一个项目增加到下拉列表框中

End Sub

某文档oDraw另存为AutoCAD 2000版,SaveAs就是文档的一个方法。oDraw.SaveAs sFullName, 12 ‘ac2000_dwg = 12, AutoCAD 2000 DWG (*.dwg)

如果对象共享共同的方法,则可以操作整个对象集合。例如,下列的过程会预览本工作簿所有的工作表。oWorkbook.Worksheets.PrintPreview

事件(Event)

事件是一个对象可以识别的动作,像单击鼠标或按某键等,在系统捕捉到对象的事件后,执行该事件对应的程序代码,从而实现相应控制。

不同的对象具有不同的事件。例如,文档拥有的事件:Activate、Deactivate、ObjectModified、Save等。工作簿拥有的事件:Open、Activate、BeforeClose、BeforePrint、BeforeSave、NewSheet、SheetChange等,工作表拥有的事件:SelectionChange、Change、Activate等。

在事件模块中写入需要的代码,当对象可识别的事件发生时,这些代码将被执行。

简要示例如下:

Private Sub oWorkbook_Open()

MsgBox “您打开了当前的工作簿!”

End Sub

属性(Property)

一个对象的属性定义了对象的特征,诸如大小、颜色或屏幕位置,或某一方面的行为,诸如对象是否激活或是否可见。可以通过修改对象的属性值来改变对象的特性。

若要设置属性值,则在对象的引用后面加上一个表达式,它是由属性名加上等号(=) 以及属性值所组成的。

例如,oDraw(0).Name = “test11″设置了0号文档名为test11。下面的语句设置“test”工作表的名称而改变工作表的标签名称。oWorkbook.Worksheets(“test”).Name = “test11”

有些属性并不能设置,只能读取。通过检索每属性的帮助主题,可以看到是否可以设置此属性(读与写),或只能读取此属性(只读),还是只能写入此属性(只写)。

可以通过属性的返回值,来检索对象的信息。

Debug.Print oDraw(0).FullName

AutoCAD 的样条曲线(Spline)

‘绑定 AutoCAD
Dim I As Integer, J As Integer
Dim oAutoCAD As Object
Call BindAutoCAD(True)

‘打开并绑定文件 D:/Test.dwg
Dim oDraw As Object ‘AutoCAD 多文档之一
Set oDraw = oAutoCAD.Application.Documents.Open(“D:/Test.dwg”)

‘spline 起止点切向
Dim StartTan(0 To 2) As Double
Dim EndTan(0 To 2) As Double
StartTan(0) = 0#
StartTan(1) = 0#
StartTan(2) = 0#
EndTan(0) = 0#
EndTan(1) = 0#
EndTan(2) = 0#
‘FitPoints 赋值
ReDim FitPoints(0 To 14) As Double ‘5 个拟合点
FitPoints(0) = 1
FitPoints(1) = 2
FitPoints(2) = 0
FitPoints(3) = 4
FitPoints(4) = 5
FitPoints(5) = 0
FitPoints(6) = 7
FitPoints(7) = 8
FitPoints(8) = 0
FitPoints(9) = 12
FitPoints(10) = 2
FitPoints(11) = 0
FitPoints(12) = 19
FitPoints(13) = -4
FitPoints(14) = 0
‘creates a spline Object in model space
Set oSpline = oDraw.ModelSpace.AddSpline(FitPoints, StartTan, EndTan)
oSpline.Color = 1 ‘Red

利用注册表(Registry)与初始化文件(Initialization File)函数读写信息

‘ 利用初始化文件读写信息
lRet = WriteIniFile(“General”, “Name”, “wyrcad”, “D:\Test.ini”)
lRet = WriteIniFile(“General”, “Age”, “36”, “D:\Test.ini”)
sRet = ReadIniFile(“General”, “Name”, “D:\Test.ini”)
Debug.Print sRet
sRet = ReadIniFile(“General”, “Age”, “D:\Test.ini”)
Debug.Print sRet

‘ 利用注册表读写信息
Call SaveString(HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Name”, “wyrcad”, “General”, “D:\Test.ini”)
Call SaveString(HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Age”, “36”, “General”, “D:\Test.ini”)
sRet = GetString(HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Name”, “General”, “D:\Test.ini”)
Debug.Print sRet
sRet = GetString(HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Age”, “General”, “D:\Test.ini”)
Debug.Print sRet

‘ 删除注册表或初始化文件信息
DelSetting HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Name”, “General”, “D:\Test.ini”
DelSetting HKEY_CURRENT_USER, “Software\Yager\WCAD”, “Age”, “General”, “D:\Test.ini”