乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 88|回复: 5

功能这个!!

[复制链接]

46

主题

118

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2008-3-5 06:28:37 | 显示全部楼层 |阅读模式
嗨,
我有下面的代码,我想知道如何使它成为一个从10个不同的按钮调用它的函数-唯一改变的是块名所在的文本框引用(pick ),但它将被放入每个按钮的click sub。我只是想避免每个按钮都包含这些代码代码0]
.....我以前从未做过函数,当我试图为此设置一个函数时,我试图通过简单地输入函数名从每个按钮调用它,但是它标记了一个错误..

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-3-5 09:59:58 | 显示全部楼层
嗨,
正如我所说,我对功能并不热,因为我以前从未创建过一个,只是不时地复制一些表单源,所以请耐心等待,并让我知道如果我编码不正确:
  1. Public Function GETFIXINGBLOCK(FixBlock As AcadObject, PickPoint As Variant)
  2. On Error Resume Next
  3. PICK:
  4. ThisDrawing.Utility.GetEntity FixBlock, PickPoint, "Please select a fixing.."
  5. If Err  0 Then
  6.     Err.Clear
  7.     Exit Function
  8. Else 'Else for error..
  9.     If FixBlock.ObjectName = "AcDbBlockReference" Then 'If block..
  10.         If FixBlock.Name Like "A$C*" Then 'If the block name is "A$C......." (A copied and pasted block)..
  11.             MsgBox "This isn't a true fixing block - It appears to be a copied / pasted block.." & vbCr & "Please pick another instance of it", vbExclamation, "Fixings Chart Creator.."
  12.             GoTo PICK
  13.         Else
  14.             ' Other code to go here later for getting the block attribute values but for now, just the block name..
  15.             GoTo PICKED
  16.         End If
  17.     ElseIf FixBlock.ObjectName  "AcDbBlockReference" Then 'If NOT block..
  18.         ThisDrawing.Utility.Prompt "You may only select a block: "
  19.         GoTo PICK
  20.     End If 'End If for objectname..
  21. End If 'End if for error..
  22. End Sub

....按钮点击的调用如下所示:
  1. Private Sub blockpick1BTN_Click()
  2.     FixingsChartFRM.Hide 'Hide the form..
  3.     GETFIXINGBLOCK
  4. PICKED:
  5.     fx1descTXT.text = FixBlock.Name & ": " & FixBlock.Handle 'Put the block name in the text box..
  6.     FixingsChartFRM.Show 'Show the form..
  7. End Sub

回复

使用道具 举报

46

主题

118

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2008-3-5 12:20:56 | 显示全部楼层
据我所知,你不需要函数,你需要一个带有参数的 Sub,其中参数是 TextBox。我用了你的第一个代码:
  1. Sub ForButton(ByRef TB As TextBox)
  2. FixingsChartFRM.Hide 'Hide the form..
  3. On Error Resume Next
  4. PICK:
  5. Dim FixBlock As AcadEntity
  6. Dim PickPoint As Variant
  7. ThisDrawing.Utility.GetEntity FixBlock, PickPoint, "Please select a fixing.."
  8. If Err  0 Then
  9.     Err.Clear
  10.     Exit Sub
  11. Else 'Else for error..
  12.     If FixBlock.ObjectName = "AcDbBlockReference" Then 'If block..
  13.         If FixBlock.Name Like "A$C*" Then 'If the block name is "A$C......." (A copied and pasted block)..
  14.             MsgBox "This isn't a true fixing block - It appears to be a copied / pasted block.." & vbCr & "Please pick another instance of it", vbExclamation, "Fixings Chart Creator.."
  15.             GoTo PICK
  16.         Else
  17.             'ENTER ATTRIBUTE CODE HERE GETTING "FIXDESC" STRING..
  18.         End If
  19.     ElseIf FixBlock.ObjectName  "AcDbBlockReference" Then 'If NOT block..
  20.         ThisDrawing.Utility.Prompt "You may only select a block: "
  21.         GoTo PICK
  22.     End If 'End If for objectname..
  23. End If 'End if for error..
  24. PICKED:
  25. TB.Text = FixBlock.Name & ": " & FixBlock.Handle 'Put the block name in the text box..
  26. FixingsChartFRM.Show 'Show the form..
  27. End Sub

你可以把这个代码放在每个按钮上,只改变TB参数
回复

使用道具 举报

9

主题

59

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2008-3-5 12:57:46 | 显示全部楼层
所以,我必须将代码复制到每个按钮单击事件,只需将TB更改为TB1或TB2等...?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-3-5 19:30:38 | 显示全部楼层
对,现在找到你了,它就像一个梦——不像我昨晚做的那个,那太奇怪了,哈哈
谢谢乔罗
回复

使用道具 举报

46

主题

118

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2008-3-6 04:28:34 | 显示全部楼层
我很高兴这就是你需要的!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 05:23 , Processed in 0.924795 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表