AutoCAD VB VS_2010 Lab4 - PaletteSet and Database Events

Embed Size (px)

DESCRIPTION

AutoCad VB VS_2010 Lab4 - PaletteSet and Database Events

Citation preview

Lab 4 PaletteSet and Database Events

Trong phng th nghim ny, chng ta s thm mt PaletteSet v thm cc s kin c s d liu. Trong s kin chng ti s b sung thm d liu v thc th thm vo cc bn v vi mt iu khin TreeView trong mt paletteSet.M d n Lab3 ca bn v thm mt UserControl. Ti menu Project v chn "Add User Control". (Hoc m cc d n Lab4 m c cc UserForm v cc bc cho phng th nghim).

Chp nhn tn mc nh (UserControl1.vb)

Hin th Toolbox (Ctrl + Alt + X) v thm mt iu khin TreeView cc UserControl.

Neo tt c cc mt ca iu khin TreeView bng cch s dng ca s thuc tnh nh thy trong nh chp mn hnh ny:

Sao chp cc bc di y d n ca bn. t cc bc sau Sub End ca th tc "addAnEnt" trong Lab3. Lm vic qua cc bc to ra PaletteSet v thm cc s kin C s d liu.

'1. Thm mt tham kho n PresentationCore. (S dng cc tab trn NET'Hp thoi Add Reference. iu ny l cn thit cho cc PaletteSet'Chng ta s khai bo bc 3.

'2. S dng Tuyn b Nhp khu Autodesk.AutoCAD.Windows namespace

'3. Khai bo mt bin PaletteSet (ton cu) l mt PaletteSet. (N s'Ch c th c to ra mt ln). Thm tuyn b ny sau khi AddAnEnt End Sub'T Lab 3.

'4. Khai bo mt bin nh UserControl1. y l s kim sot to'Trong cc bc trong ti liu Lab4. Vic kim sot ny s c t'Do PaletteSet to bc 3.

'5. Thm mt lnh mi c tn bng. S dng cc CommandMethod"Thuc tnh v to Sub s chy khi lnh c chy'Trong AutoCAD."Lu : Cho End Sub sau khi bc 10.

'6. Thm mt "nu th" bo co v kim tra xem cc'PaletteSet tuyn b trong bc 3 l bng g. N s l'Khng c g ln u tin lnh c chy.'Ch : t "End If" sau khi bc 9

'7. PaletteSet l g y chng ti to ra aa PaletteSet mi'Vi mt GUID duy nht. S dng cc t kha mi. Hy Tn Parameter'"Palette ca ti". i vi cc tham s ToolID to ra mt GUID mi.'Trn menu Tools chn "Create Guid". Trn To GUID'Dialog chn "Registry Format" Chn New GUID v bn sao."Dn GUID s dng nh l cc Guid mi. Thay Curley'Ning rng vi du ngoc kp. (Cc tham s cho New Guid l mt chui k t)

'8. Khi to cc bin UserControl1 to trong'Bc 4. S dng cc t kha mi. (New UserControl1)'iu khin ny cha cc iu khin cy.

'9. Thm cc UserControl n PaletteSet. S dng phng thc Add'Ca PaletteSet khi to bc 7. S dng "Palette1" choTham s tn v iu khin khi to bc 8 choTham s th hai.

'10. Hin th paletteset bng cch lm cho cc ti sn nhn thy ca'PaletteSet bng ng s tht. Ln th hai lnh c chy'Ny l m duy nht trong quy trnh ny s c x l.

'11. Thm mt lnh c tn l "addDBEvents. S dng cc thuc tnh CommandMethod'V thm cc th tc m s chy khi commmand c chy trong AutoCAD"Lu : Cho End Sub sau khi bc 20

'12. Tin s dng mt "" Nu Sau , "tuyn b v xem cc bng mu'To bc 4 l Khng c g.'Ch : t "End If" sau khi bc 15

'13. Khai bo mt intantiate mt i tng bin tp vin. S dng cc bin tp vin'Ti sn ca Application.DocumentManager.MdiActiveDocument

'14. S dng cc phng php WriteMessage ca bin bin tp'To bc 13. S dng ny cho cc tham s thng ip'VbCr + "Xin gi' bng 'lnh u tin"

'15. Exit Sub

'16. Khai bo mt bin Database v nhanh chng n bng cch lm cho n"Ngang hng vi cc ti sn c s d liu ca'Application.DocumentManager.MdiActiveDocument

'17. S dng cc tuyn b AddHandler c mt c s d liu ObjectAppended'S kin. S dng cc s kin ObjectAppended ca bin c s d liu'To bc 16 cho tham s u tin (Event). Cho phn th hai'Tham s (Delegate) s dng cu lnh mi v to ra mt ObjectEventHandler.'S dng cc tuyn b AddressOf v tn ca mt th tc (callback_ObjectAppended)'Bn s to ra trong bc 21.

'18. S dng cc tuyn b AddHandler c mt c s d liu ObjectErased'S kin. S dng cc s kin ObjectErased ca bin c s d liu'To bc 16 cho tham s u tin (Event). Cho phn th hai'Tham s (Delegate) s dng cu lnh mi v to ra mt ObjectErasedEventHandler.'S dng cc tuyn b AddressOf v tn ca mt th tc (callback_ObjectErased)'Bn s to ra bc 24.

'19. S dng cc tuyn b AddHandler c mt c s d liu ObjectReappended'S kin. S dng cc s kin ObjectReappended ca bin c s d liu'To bc 16 cho tham s u tin (Event). Cho phn th hai'Tham s (Delegate) s dng cu lnh mi v to ra mt ObjectEventHandler.'S dng cc tuyn b AddressOf v tn ca mt th tc (callback_ObjectReappended)'Bn s to ra bc 32.

'20. S dng cc tuyn b AddHandler c mt c s d liu ObjectUnappended'S kin. S dng cc s kin ObjectUnappended ca bin c s d liu'To bc 16 cho tham s u tin (Event). Cho phn th hai'Tham s (Delegate) s dng cu lnh mi v to ra mt ObjectEventHandler.'S dng cc tuyn b AddressOf v tn ca mt th tc (callback_ObjectUnappended)'Bn s to ra bc 35.

'21. To mt Sub Private tn callback_ObjectAppended. y l Chi m'S c gi khi mt i tng c ni vo c s d liu. (Tn cn phi c'Tn c s dng trong cc tham s i biu bc 17). Tham s u tin l mt'i tng. (S dng ByVal v ngi gi l tn ca i tng). Tham s th hai l'Mt ObjectEventArgs. (S dng ByVal v e nh tn ca ObjectEventArgs)"Lu : Cho End Sub sau khi bc 23

'22. Khai bo mt bin TreeNode. (System.Windows.Forms.TreeNode)."Lu : Bn c th tit kim mt s cch g bng cch s dng nhp khu v nhp khu cc khng gian tn"Nhanh chng n bng cch s dng phng thc Add ca cc nt thuc tnh ca TreeView trn'UserForm () to ra bc 4. S dng cc ObjectEventArgs truyn vo phng php cho'Tham s chui v s dng cc "Type" ca DBObject. (e.DBObject.GetType (). ToString ())

'23. Lm cho sn Tag ca nt to bc 22 bng vi ObjectId ca'Cc i tng ph thm. iu ny s cho php chng ti ghi li n ObjectId cng nhn trong'Cc s kin khc. S dng e.DBObject.ObjectId.ToString ()

'24. To mt Sub Private tn callback_ObjectErased. y l Chi m'S c gi khi mt i tng c xa khi c s d liu. (Tn cn phi c'Tn c s dng trong cc tham s i biu ca bc 18). Tham s u tin l mt'i tng. (S dng ByVal v ngi gi l tn ca i tng). Tham s th hai l'Mt ObjectErasedEventArgs. (S dng ByVal v e nh tn ca ObjectErasedEventArgs)"Lu : Cho End Sub trc khi bc 32

'25. s dng mt "Nu Else" tuyn b v kim tra ti sn ca cc b xa'ObjectErasedEventArgs truyn vo hm. (e.Erased)'Ch : t "Else" stament trc khi bc 30 v "End If" sau khi bc 31

"26. y chng ta s tm kim mt i tng trong iu khin TreeView n c th c g b.'To mt bo ng cho tng tuyn b. S dng nt cho cc tn phn t v cc loi l'Forms.Treenode. Paramater nhm l cc nt trong TreeView.'(MyPalette.TreeView1.Nodes)'Ch : t cu lnh tip theo di bc 29. (trc khi "Else" tuyn b) "

'27. S dng mt "Nu Sau ," tuyn b. Kim tra xem cc nt Tag l ObjectId'Ca cc i tng b xa. S dng cc ti sn ca cc DBObject'ObjectErasedEventArgs thng qua vo s kin ny. (e.DBObject.ObjectId.ToString)'Ch : t "End If" trn "Next" tuyn b ni thm trong bc 23

'28. Hy b cc nt bng cch gi phng thc Remove. (Thc th l'B xa khi bn v).

"29. Thot khi i vi loop. (Thot i)

'30. Nu iu ny c x l th c ngha l cc i tng c unerased. (e.Erased l sai)'Khai bo mt System.Windows.Forms.TreeNode s dng newNode nh tn. Nhanh chng n bi"Bng cch s dng phng thc Add ca b su tp cc nt ca TreeView to ra trong bc trc.'S dng cc Loi i tng cho cc tham s.'E.DBObject.GetType (). ToString ()

'31. Lm cho sn Tag ca nt to bc 30 bng vi ObjectId ca'i tng unerased. iu ny s cho php chng ti ghi li n ObjectId cng nhn trong'Cc s kin khc. S dng e.DBObject.ObjectId.ToString ()

'32. To mt Sub Private tn callback_ObjectReappended. y l Chi m'S c gi khi mt i tng c ReAppended n c s d liu. (Tn cn phi c'Tn c s dng trong cc tham s i biu ca bc 19). Tham s u tin l mt'i tng. (S dng ByVal v ngi gi l tn ca i tng). Tham s th hai l'Mt ObjectEventArgs. (S dng ByVal v e nh tn ca ObjectEventArgs)"Lu : Cho End Sub sau khi bc 34

'33. Thm tn lp ca i tng xem cy'Khai bo mt bin TreeNode. (System.Windows.Forms.TreeNode). nhanh chng' bng phng thc Add ca ti sn Nodes ca TreeView trn UserForm1'To ra bc 4. S dng cc ObjectEventArgs truyn vo phng php cho chui'Tham s v s dng cc "Type" ca DBObject. (e.DBObject.GetType (). ToString ())

34. Ghi id ca n cng nhn sau'Lm cho sn Tag ca nt to bc 33 bng vi ObjectId ca'i tng unerased. iu ny s cho php chng ti ghi li n ObjectId cng nhn trong'Cc s kin khc. S dng e.DBObject.ObjectId.ToString ()

'35. To mt Sub Private tn callback_ObjectUnappended. y l Chi m'S c gi khi mt i tng l UnAppended t cc c s d liu. (Tn cn phi c'Tn c s dng trong cc tham s i biu ca bc 20). Tham s u tin l mt'i tng. (S dng ByVal v ngi gi l tn ca i tng). Tham s th hai l'Mt ObjectEventArgs. (S dng ByVal v e nh tn ca ObjectEventArgs)"Lu : Cho End Sub sau khi bc 39

"36. y chng ta s tm kim mt i tng trong iu khin TreeView n c th c g b.'To mt bo ng cho tng tuyn b. S dng nt cho cc tn phn t v cc loi l'Forms.Treenode. Paramater nhm l cc nt trong TreeView.'(MyPalette.TreeView1.Nodes)'Ch : t "Next" tuyn b sau khi bc 39

'37. S dng v "Nu Sau ," tuyn b v xem nu nt ny l iu chng ta mun.'So snh node.Tag n ObjectId. (s dng e.DBObject.ObjectId.ToString)'Ch : t "End If" sau khi bc 39

"38. Nu chng ti c y th y l nt cho cc i tng unappended.'Gi phng thc Remove ca nt.

"39. Thot khi i vi loop.