乐筑天下

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

esc键结束循环?

[复制链接]

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-8-24 09:36:33 | 显示全部楼层 |阅读模式
我有一个简单的sta/off多行文字标签测试,我似乎无法通过ESCAPE键或空格键重新加载表单。
测试标签从路线中选择了拾取的点。我不能去做的是如何按escape键或scape栏退出循环并重新加载表单,以便从另一条路线标记新点
是否有人有链接显示我如何按下esc键或空格键来结束循环并显示表单。
我有“如果Chr(vbkeyscape)=27,则
此绘图。SendCommand“ESC”&vbCr
'Exit Do
'UserForm1。如果
感谢
John Coon
执行
basePnt=ThisDrawing.Utility,则显示
结束。GetPoint(,“选择要标记的位置:”)
o对齐。点位置basePnt(0)、basePnt(1)、testStax和testStay<br>OAalignment。StationOffset basePnt(0)、basePnt(1)、StatValue、OffValue<br>strOFF=格式(OffValue、strFormat)<br>strStation=OAalignment。GetStationStringWithEquations(StaValue)
如果StaValue0,则
设置mtxtLabel=ThisDrawing.ModelSpace。添加mtext(basePnt、dblWidth、strext)
mtxtLabel。高度=dblHeight
mtxtLabel。旋转=dblRot
如果
mtxtLabel,则结束。更新
循环

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

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

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2011-8-24 09:50:40 | 显示全部楼层
Matt,
谢谢你的帮助。
如果我添加了
If Err。number  0 Then
Exit Do
end if
它标记了一个标签,然后重新加载表单,在它标记为许多提货位置之前,但从未在没有崩溃的情况下退出循环。约翰
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-8-24 10:33:37 | 显示全部楼层
您还可以使用GetAsyncKeyState
http://www.theswamp.org/index.php?topic=9301.msg119833#msg119833
这是一个很好的例子http://www.theswamp.org/index.php?topic=26302.msg317417#msg317417
这是一个很好的例子http://www.theswamp.org/index.php?topic=18104.msg219595#msg219595
。。。
回复

使用道具 举报

jgr

3

主题

22

帖子

3

银币

初来乍到

Rank: 1

铜币
34
发表于 2011-8-24 10:46:19 | 显示全部楼层
我会看看我是否可以加入Matt或jgr的帖子
只是看看jgr的帖子,我想这可能会超出我的能力范围
谢谢各位
John
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-8-24 11:09:19 | 显示全部楼层

  1. Option Explicit
  2. Dim SomePoint As Variant
  3. Public Sub GetPointLoop()
  4.     On Error Resume Next
  5.     Do
  6.         SomePoint = ThisDrawing.Utility.GetPoint(, "Select a point...")
  7.         If Err.Number  0 Then
  8.             Exit Do
  9.         Else
  10.             AddText
  11.         End If
  12.     Loop
  13.    
  14.     MsgBox "Show form"
  15. End Sub
  16. Private Sub AddText()
  17.     Dim ptEN(0 To 2) As Double
  18.     Dim objText As AcadText
  19.    
  20.     ptEN(0) = SomePoint(0)
  21.     ptEN(1) = SomePoint(1)
  22.     ptEN(2) = 0
  23.    
  24.     Set objText = ThisDrawing.ModelSpace.AddText("THIS IS A TEST", ptEN, "12")
  25.     objText.Update
  26. End Sub
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2011-8-24 11:43:17 | 显示全部楼层
马特,
好的...我想我从这篇文章中得到了它。有趣的是......我发现了一个旧的陆地桌面例程,它的功能与C3D基本相同,并且运行良好,它所拥有的只是On Error GoTo再见。
我会从您的上一篇文章中更改以添加格式。
谢谢您的帮助!
John
'旧的陆地桌面
在错误上转到再见

dim varDataPnt1 As Variant
varDataPnt1=ThisDrawing.Utility.GetPoint(Prompt:=vbCrLf&"Select Next Point to Label:")
objAlign.StationOffsetvarDataPnt1(0), varDataPnt1(1), dblSta, dblOff, dblDir
strStaFormat="#0.00"
strOffFormat="#0.00"
strSta=左(Format(dblSta, strStaFormat), Len(Format(dblSta, strStaFormat))-5)_
& "+" & 右(Format(dblSta, strStaFormat),5)
如果dblFF>0然后
stroff=Format(d(格式(dblOff, strOffFormat))-1))_
& "' LT"
结束如果
strText="STA: " & (strSta)&"\P"_
&"OFF: " & (strOff)&"\P"_
设置mtxtLabel=ThisDrawing.ModelSpace.AddMText(varDataPnt1, dblWidth, strText)
mtxtLabel.Height=dblHeight
mtxtLabel.Rotation=dblRot
mtxtLabel.Update
循环
再见:
显示
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-8-24 11:56:56 | 显示全部楼层
我能够添加马特帖子中的一些信息来处理我的小例程。我调整了一个现有的简单的x、y标签例程,该例程工作正常,右键单击或esc时产生错误,然后按照我想要的方式重新加载表单,但是我仍然无法在不崩溃绘图的情况下将民用3D对齐例程设置为esc到用户表单的错误。今天早上从飓风中返回工作后,我又看了一遍。
我添加了
如果StaValue=0,那么
转到再见
结束如果
会产生错误,因为所选位置不在对齐范围内,它会像我需要的那样重新加载表单
感谢您的所有帮助Matt W
John
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-30 21:51 , Processed in 1.294131 second(s), 66 queries .

© 2020-2025 乐筑天下

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